software and programming 1
Download
Skip this Video
Download Presentation
SOFTWARE AND PROGRAMMING 1

Loading in 2 Seconds...

play fullscreen
1 / 42

SOFTWARE AND PROGRAMMING 1 - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

SOFTWARE AND PROGRAMMING 1. EACH student must have obtained access to Birkbeck computing by 26.01.11 – otherwise no use in the lab Instructor: Prof. Boris Mirkin DCSIS, room 744 MAL, tel. 020 7631 6746 E-mail: [email protected] Course Assistant:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' SOFTWARE AND PROGRAMMING 1' - zihna


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software and programming 1

SOFTWARE AND PROGRAMMING 1

EACH student must have obtained access

to Birkbeck computing by 26.01.11 – otherwise no use in the lab

Instructor: Prof. Boris Mirkin

DCSIS, room 744 MAL, tel. 020 7631 6746

E-mail: [email protected]

Course Assistant:

Lab/WebCT/Tests/Assignments: Mr Martin O’Shea

E-mail: [email protected]

(FROM 26 January: Lectures 6.00-7.30, Labs 7.30-9.00)

webpage
Webpage

The course web page is currently at my open web-site, with lecture notes and other relevant materials:

http://www.dcs.bbk.ac.uk/~mirkin/sp109

texts any including
Texts: Any, including
  • Quentin Charatan & Aaron Kans [CK]
      • JAVA in Two Semesters, 2nd Edition, McGraw-Hill, 2006, ISBN-10 0077108892
  • David J. Barnes & Michael Kölling [BK]Objects First with Java: A Practical Introduction using BlueJ, 2nd edition, Pearson Education, 2005, ISBN 0-13-124933-9
  • The publisher supplies a helpline in installing related software
  • 3. I. Pohl, C. McDowell [PM]
  • Java by dissection, Addison-Wesley, 2000, ISBN 0201751585
  • 4.J. Farrell [F]
  • Java Programming, 2-4 editions, Course Technology, Thompson, 2003-7, ISBN 0-619-21500-3 etc.
  • 5. Free: ON-LINE text by D. Eck (on my web site); other URLs
teaching goal coding in real
Teaching Goal: Coding in Real

FRAMEWORK:

  • the interpreter/compiler Java working;
  • classes, objects and instances;
  • variables and static variables;
  • Java data types: primitive and user-defined;
  • arithmetic and Boolean expressions;
  • for/while and if…elseif…else structures;
  • processing strings;
  • elements of input/output in Java;
  • methods and constructors;
  • arrays and their usage, including arrays of a user-defined type
teaching goal
Teaching Goal

PRACTICE:

To have developed skills in practical programming of small but real-world problems e.g. keeping transaction records,

assigning seats to customers,

managing a bus schedule, etc.

control
Control
  • Final exam: 75% of mark
  • Course-work: 25% of mark
    • 2 open-book in-class tests, 9.02 & 9.03,
    • 2 assignments for home work via WebCT, 9.02-9.03 & 23.02-23.03

Composition of CW 25% mark:

T1 5%

T2 7%

A1 5%

A2 8%

control example
Control: Example
  • Let marks of a student be as follows:
    • Exam: 50
    • T1 12
    • T2 65
    • A1 100
    • A2 0 (hasn’t submitted)
  • The total mark will be 48 because it rounds up the result:

50*0.75 + 12*0.05 + 65*0.07 + 100*0.05 + 0*0.08=

=37.5 + 0.6 + 4.55 + 5 + 0 = 47.65

teaching philosophy extracts
Teaching Philosophy (extracts)
  • Hugerespect for part-time students
  • The bulk of students to get trained
  • No student’s question is stupid sinceSoftware is invented
  • Better to have simple things learnt well rather than complex things learnt not well
  • Instructor’s small errors - a good teaching device for activation of the student’s brain
  • Learning a language in a college differs from consuming a lunch in a diner in many ways
  • Fast feedback on students’ issues if raised
oop concepts you already know of
OOP concepts you already know of
  • How a Java program works: interpret/compile
  • Variable
  • Expression
  • Data type
  • Loop
  • If/elseif/else structure
  • Class
  • Method
  • Parameter

These will be expanded to more realistic environments

two java environments
Will be using both:

Java Developer Kit JDK (currently, J2SE) (Conventional)

Blue J (A public project to make JAVA coding easier)

Two JAVA environments
conventional jdk editing
A source code can be edited in any text editor: Notepad, emacs, PFE, ...

MS Wordcaveat: by default, Word does not save in ASCII text format

Make sure to save the code before compiling! The file name: the same as that of the class, with extension:

say, class NicTe{…} must be saved as file NicTe.java, case sensitive

Conventional JDK: Editing
command line invocation
compilation and execution of Java in JDK are done from a command line

On Microsoft systems: DOS shell

On Unix: Unix shell

Must make sure that the commands for compiler and runtime (JVM) are in the command path.

Command line invocation
getting jdk on a system s path
Getting JDK on a system’s path
  • Click “Properties” on right-buttoned “My computer”
  • Click “Advanced”
  • Click “Environmental variables”
  • Enter new path (to the directory in which javac.exe and java.exe reside)
compiling with jdk
Name of the JDK compiler: javac

To invoke:javac <source name>

compiles <source name> and all classes it depends on into an executable on JVM file <source name>.class

Example: javac NicTe.java

produces file NicTe.class

Compiling with JDK
execution in jdk
“java” starts the Java virtual machine:

java NicTe

The named class is loaded and execution is started.

Other classes are loaded as needed.

Only possible if class has been compiled into a file, say, NicTe.class

Execution in JDK
main method in jdk
BlueJ executes what the user says;

The JDK java system always executes a method called main, it should have a certain signature:

Signature

_______________________public static void main(String[ ] args){ ...}

To work with JDK, such a method must be present in your program!

“main” method in JDK
a primer program class
A primer program (=class)

/* HelloWorld.java

Purpose: printing a message to the screen

*/

class HelloWorld {

// Each program is organised as a class

public static void main(String[] args) {

         System.out.println("Hello World!");

        }

} // end of class HelloWorld

/* Always Three Types of Elements ONLY:

-comments

-class (with modifiers)

-methods (with modifiers & parameters/arguments) */

bluej coding
BlueJ coding
  • BlueJ programs are organised in the so-called projects
  • A BlueJ project is stored in a project-specific directory on disk
  • Some files store the source code, some store the compiled code, some store additional BlueJ related information.
the bluej directory structure
The BlueJ directory structure

c:\bluej\calculator\

project: calculator

bluej.pkg

bluej.pkh

Calculator.java

Calculator.class

Calculator.ctxt

UserInterface.java

UserInterface.class

UserInterface.ctxt

CalcEngine.java

CalcEngine.class

CalcEngine.ctxt

Calculator

UserInterface

CalcEngine

the bluej file structure
The BlueJ file structure
  • bluej.pkg - the package file. Contains information about classes in the package. One per package.
  • bluej.pkh - backup of the package file.
  • *.java - standard Java source file (text). One per class.
  • *.class - standard Java code file. One per class
  • *.ctxt - BlueJ context file. Contains extra information for a class. One per class.
software is free
Software is free
  • Available on BBK’s network
    • Java JDK (which allows you to compile and execute your program)
    • BlueJ (Preferred editor)
  • Installing BlueJ (for home use)
    • First download the Java JDK from http://java.sun.com/j2se/1.5.2/download.jsp
    • Then download BlueJ from http://www.bluej.org/download/download.html
    • Run “bluejsetup-202.exe” and follow the given instructions
objects and classes
Objects and classes
  • Classes: program templates
    • represent all objects of a kind (example: “student”)
  • Objects === instances
    • A template copy to represent a specific element of the class (“an individual student”)
    • Instances are created with the so-called constructors, explicitly in JDK or somewhat easier in BlueJ
variables methods and parameters
Variables, methods and parameters
  • classescontain data stored in the so-called variables and operations which can be invoked (they are called methodsin Java)
  • methods may have inputs (they are called parameters in Java) to get additional data needed to have them executed
remarks
Remarks
  • Many instances can be created from a single class
  • An object has attributes/variables: values stored in fields (memory locations).
  • The class defines what fields any its object has (a template), but each object may store its own set of values (the state of the object)
  • A variable is initialised with assigning it a value, an object – with a constructor
more on method
More on Method

Method in Java is a named set of instructions that transforms some input into an output. This is, actually, a machine implementation of the concept of algorithm which itself is a computational analogue to the mathematical concept of function.

Static method: is shared by all instances.

example of a method 1
Example of a method (1)

Square function y = x2

x               y

1                1

2                4

5               25

11            121

The table can be used for invoking a specific value, like, 72 = 49 or 102 = 100.

example of a method 2
Example of a method (2)

A Java method to calculate the square function:

public int sq(int x){

return xx;}

To make it work, variables are needed:

int sevs=sq(7); //puts 49 into sevs

int tens=sq(10);// puts 100 into tens

structure of a method
Structure of a method

Output’s type

Inputs

modifiers return-type name ( parameter-list )

{

statements;

return variable/expression;

//if return type is not void

}

Modifiers:

  • static -       method/variable that belongs to class as whole and is shared by all instances
  • public -    method/variable that is accessible from anywhere
  • private -    method/variable that is accessible from only within the class
helloworld with a method
HelloWorld with a method

// Hello-world program to demonstrate BlueJ

class Hello{

// Method that does the work of printing

public void go()

{ System.out.println("Hello, world");

}

// main method for working outside BlueJ

public static void main(String[] args)

{ Hello hi = new Hello(); //instance

hi.go(); //method in instance hi

}

}

helloworld why
HelloWorld : WHY

Why dots in

System.out.println("Hello, world");

hi.go();

?

  • To take method from a specific class instance
  • To take a class from a set of classes: Java is organised as a hierarchically structured set of classes in individual files
assigning values
Assigning values
  • Values are stored into fields (and other variables) via assignment statements:
    • variable = expression;
    • price = ticketCost;
  • The value on the right is assigned to a variable on the left.
  • A variable stores a single value, so any previous value is lost.
variable
Variable
  • It provides for multiple uses of the same program
  • A variable is a name for a location in memory that can hold data.
  • Variables are declared and/or initialisedA variable declaration includes the following:
    • A data type that identifies the type of data that is stored in the variable
    • An identifier that is the variable’s name
    • An optional assigned initial value
slide34

In memory:

int p;

p = 4;

p

4

scope of a variable
Scope of a variable:

The range of statements that can access the variable.

It stretches from the declaration point to the end of the block containing the declaration

Q: WHAT is BLOCK ? (part within curly braces{…} )

Q: WHAT is DECLARATION? (type name ; 3-part command)

helloworld n times bluej
HelloWorld N times BlueJ

public class HelloN {

int number; \\ variable declared

public void go()

{ System.out.println("Hello, world"); }

public HelloN(int howmany)

{number=howmany; } \\constr to initialise object

public void prrt() \\printing number times

{ for(int i=1;i<=number;i++) \\loop

go();

System.out.println("ok"); } }

loop for
Loop for

for(int var=1;var<=st;var++){do operation depending on var}

  • Two types of parentheses: () and {}
  • The expression in () consists of three different items: initialising a variable,variable update, and stop-condition
  • Given a value of var, {} is executed, after which varis updated, then stop-condition checked and, if yes, {} is executed again; if no, the program proceeds further on
no in for loop in hellon
No { } in for-loop in HelloN

Why?

Let us add { }: where?

Is there any difference

between before and after “ok”?

arithmetic expressions
Arithmetic Expressions
  • 2 * 6 / 4 + 5 – 2 * 3 = 3 + 5 – 6 = 2
  • 2 * 6.0 / (4 + 5) – 2 * 3 = 12.0/9 – 6 = – 4.67 (note: reals, not integers)
  • 2 * 6 / 4 + (5 – 2) * 3 = 12

Java uses a natural precedence structure of arithmetic operations. If you are not sure, use parentheses!!!

basic class structure
Basic class structure

The outer wrapper

of TicketMachine

public class TicketMachine

{

Inner part of the class omitted.

}

public class ClassName

{

Variables

Constructors

Methods

}

The contents of a

class

concepts considered overview
Concepts considered: overview
  • Compiler & interpreter
  • JDK/JDS and BlueJ environments
  • Method
  • Variable; declaration and intialisation
  • Primitive variable types
  • Class type
  • Arithmetic operators and expressions
  • Class and instance
  • HelloWorld class in three versions
ad