Software and programming 1
1 / 42

SOFTWARE AND PROGRAMMING 1 - PowerPoint PPT Presentation

  • 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:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
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


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)


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

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


    • 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


    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.


    • 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, 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 command line

    • 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: command linejavac

    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

    produces file NicTe.class

    Compiling with JDK

    Execution in jdk

    “java” starts the Java virtual machine: command line

    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

    Jdk problem execute what

    How does the system know which of the methods in a class to execute?

    JDK Problem: Execute what?

    Main method in jdk

    BlueJ executes what the user says; to execute?

    The JDK java system always executes a method called main, it should have a certain 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) to execute?


    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:


    -class (with modifiers)

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

    Bluej coding
    BlueJ coding to execute?

    • 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 to execute?


    project: calculator












    The bluej file structure
    The BlueJ file structure to execute?

    • 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 to execute?

    • 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

      • Then download BlueJ from

      • Run “bluejsetup-202.exe” and follow the given instructions

    Objects and classes
    Objects and classes to execute?

    • 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 to execute?

    • 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 to execute?

    • 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 to execute?

    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) to execute?

    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) to execute?

    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 to execute?

    Output’s type


    modifiers return-type name ( parameter-list )



    return variable/expression;

    //if return type is not void



    • 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 to execute?

    // 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 to execute?

    Why dots in

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



    • 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 to execute?

    • 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 to execute?

    • 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

    In memory: to execute?

    int p;

    p = 4;



    Scope of a variable
    Scope of a variable: to execute?

    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 to execute?

    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


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

    Loop for
    Loop to execute?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 to execute?{ } in for-loop in HelloN


    Let us add { }: where?

    Is there any difference

    between before and after “ok”?

    Arithmetic expressions
    Arithmetic Expressions to execute?

    • 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 to execute?

    The outer wrapper

    of TicketMachine

    public class TicketMachine


    Inner part of the class omitted.


    public class ClassName






    The contents of a


    Concepts considered overview
    Concepts considered: overview to execute?

    • 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