Software and programming 1
Download
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 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 NicTe.java

    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:

    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?

    /* 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 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?

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

    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 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");

    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 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
    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;

    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

    go();

    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

    Why?

    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

    {

    Variables

    Constructors

    Methods

    }

    The contents of a

    class


    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


    ad