comp425m introduction to programming instructor: earl labatt

39
COMP425M Introduction to Programming Instructor: Earl LaBatt

Upload: cordell-allam

Post on 14-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMP425M Introduction to Programming Instructor: Earl LaBatt

COMP425MIntroduction to Programming

Instructor: Earl LaBatt

Page 2: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 3: COMP425M Introduction to Programming Instructor: Earl LaBatt

Focus of the Course Object-Oriented Software Development

Problem solving Program design and implementation Object-oriented concepts

objects classes interfaces inheritance polymorphism

The Java programming language

Page 4: COMP425M Introduction to Programming Instructor: Earl LaBatt

Log in User Name Password

Length: 6 – 8 characters At least 1 uppercase letter [A-Z] At least 1 lowercase letter [a-z] At least 1 digit [0-9] At least 1 symbol (/ , . _ - : ? “ ‘ = +) Cannot contain any known words

(dictionary match)

Page 5: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 6: COMP425M Introduction to Programming Instructor: Earl LaBatt

Computer Organization Six logical units of computer system

Input unit Mouse, keyboard

Output unit Printer, monitor, audio speakers

Memory unit Retains input and processed information

Arithmetic and logic unit (ALU) Performs calculations

Central processing unit (CPU) Supervises operation of other devices

Secondary storage unit Hard drives, floppy drives

Page 7: COMP425M Introduction to Programming Instructor: Earl LaBatt

The Central Processing Unit

A CPU is also called a microprocessor It continuously follows the fetch-decode-execute

cycle:

Determine what theinstruction is

Carry out theinstruction

fetch

Retrieve an instruction from main memory

decodeexecute

fetch

Page 8: COMP425M Introduction to Programming Instructor: Earl LaBatt

Software Categories Operating System

controls all machine activities provides the user interface to the computer manages resources such as the CPU and

memory Windows 98, Windows XP, Unix, Linux, Mac OS

Application program generic term for any other kind of software word processors, missile control systems,

games

Page 9: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 10: COMP425M Introduction to Programming Instructor: Earl LaBatt

Some Languages JavaBASIC .NETC++C#CAdaEiffel

PascalModula2LispPrologAssemblerFORTRANCobolSmalltalk

Page 11: COMP425M Introduction to Programming Instructor: Earl LaBatt

Programming Language Levels There are four programming language

levels: machine language assembly language high-level language fourth-generation language

Each type of CPU has its own specific machine language

The other levels were created to make it easier for a human being to write programs

Page 12: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java Programming Language A programming language specifies the words

and symbols that we can use to write a program

A programming language employs a set of rules that dictate how the words and symbols can be put together to form valid program statements

Java was created by Sun Microsystems, Inc. It was introduced in 1995 and has become quite

popular It is an object-oriented language

Page 13: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java Program Structure In the Java programming language:

A program is made up of one or more classes A class contains one or more methods A method contains program statements

These terms will be explored in detail throughout the course

A Java application always contains a method called main

Page 14: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java Program Structure

public class MyProgram

{

}

// comments about the class

class headerclass header

class bodyclass body

Comments can be added almost anywhereComments can be added almost anywhere

Page 15: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java Program Structure

public class MyProgram

{

}

// comments about the class

public static void main (String[] args)

{

}

// comments about the method

method headermethod headermethod bodymethod body

Page 16: COMP425M Introduction to Programming Instructor: Earl LaBatt

Comments Comments in a program are also called inline

documentation They should be included to explain the purpose

of the program and describe processing steps They do not affect how a program works Java comments can take two forms:

// this comment runs to the end of the line

/* this comment runs to the terminating symbol, even across line breaks */

Page 17: COMP425M Introduction to Programming Instructor: Earl LaBatt

Identifiers Identifiers are the words a programmer

uses in a program

An identifier can be made up of letters, digits, the underscore character (_), and the dollar sign

They cannot begin with a digit

Java is case sensitive, therefore Total and total are different identifiers

Page 18: COMP425M Introduction to Programming Instructor: Earl LaBatt

Identifiers Sometimes we choose identifiers ourselves

when writing a program (such as MyProgram)

Sometimes we are using another programmer's code, so we use the identifiers that they chose (such as println)

Often we use special identifiers called reserved words that already have a predefined meaning in the language

A reserved word cannot be used in any other way

Page 19: COMP425M Introduction to Programming Instructor: Earl LaBatt

Reserved Words

The Java reserved words:abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble

elseenumextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceofint

interfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfpsuper

switchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile

Page 20: COMP425M Introduction to Programming Instructor: Earl LaBatt

White Space Spaces, blank lines, and tabs are

collectively called white space White space is used to separate words

and symbols in a program Extra white space is ignored A valid Java program can be formatted

many different ways Programs should be formatted to

enhance readability, using consistent indentation

Page 21: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 22: COMP425M Introduction to Programming Instructor: Earl LaBatt

Program Development The mechanics of developing a program

include several activities

Writing the program in a specific programming language (such as Java)

Translating the program into a form that the computer can execute

Investigating and fixing various types of errors that can occur

Software tools can be used to help with all parts of this process

Page 23: COMP425M Introduction to Programming Instructor: Earl LaBatt

Typical Java Development Java programs normally undergo five

phases Edit

Programmer writes program (and stores program on disk) Compile

Compiler creates bytecodes from program Load

Class loader stores bytecodes in memory Verify

Bytecode Verifier confirms bytecodes do not violate security restrictions

Execute JVM translates bytecodes into machine language

Java is considered to be architecture-neutral

Page 24: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java sourcecode

Machinecode

Javabytecode

Bytecodeinterpreter

Bytecodecompiler

Javacompiler

Java Translation and Execution

Page 25: COMP425M Introduction to Programming Instructor: Earl LaBatt

Syntax and Semantics The syntax rules of a language define how we

can put symbols, reserved words, and identifiers together to make a valid program

The semantics of a program statement define what that statement means (its purpose or role in a program)

A program that is syntactically correct is not necessarily logically (semantically) correct

A program will always do what we tell it to do, not what we meant to tell it to do

Page 26: COMP425M Introduction to Programming Instructor: Earl LaBatt

Errors A program can have three types of errors

The compiler will find problems with syntax and other basic issues (compile-time errors) If compile-time errors exist, an executable version

of the program is not created

A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors)

A program may run, but produce incorrect results (logical errors)

Page 27: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 28: COMP425M Introduction to Programming Instructor: Earl LaBatt

Problem Solving The purpose of writing a program is to solve a

problem

The general steps in problem solving are: Understand the problem (determine requirements) Dissect the problem into manageable pieces Design a solution for the problem Consider alternatives to the solution and refine it Implement the solution Test the solution and fix any problems that exist

These activities are not purely linear – they overlap and interact

Page 29: COMP425M Introduction to Programming Instructor: Earl LaBatt

Problem Solving The key to designing a solution is

breaking it down into manageable pieces

When writing software, we design separate pieces that are responsible for certain parts of the solution

An object-oriented approach lends itself to this kind of solution decomposition

We will dissect our solutions into pieces called objects and classes

Page 30: COMP425M Introduction to Programming Instructor: Earl LaBatt

Object-Oriented Object-oriented design (OOD)

Models real-world objects Models communication among objects Encapsulates attributes and operations

(behaviors) Information hiding Communication through well-defined interfaces

Object-oriented language Programming in object-oriented languages

is called object-oriented programming (OOP) Java

Page 31: COMP425M Introduction to Programming Instructor: Earl LaBatt

Object-Oriented Programming Java is an object-oriented programming

language

As the term implies, an object is a fundamental entity in a Java program

Objects can be used effectively to represent real-world entities

For instance, an object might represent a particular employee in a company

Each employee object handles the processing and data management related to that employee

Page 32: COMP425M Introduction to Programming Instructor: Earl LaBatt

Objects Objects

Reusable software components that model real-world items

Look all around you People, animals, plants, cars, etc.

Attributes Size, shape, color, weight, etc.

Behaviors Babies cry, crawl, sleep, etc.

Page 33: COMP425M Introduction to Programming Instructor: Earl LaBatt

Objects

An object has:

state - Descriptive characteristics The state of a bank account includes its account

number and its current balance

behaviors - What it can do (or what can be done to it)

The behaviors associated with a bank account include the ability to make deposits and withdrawals

Note that the behavior of an object might change its state

Page 34: COMP425M Introduction to Programming Instructor: Earl LaBatt

Classes

An object is defined by a class A class is the blueprint of an object

The class uses methods to define the behaviors of the object

A class represents a concept, and an object represents the embodiment of that concept Multiple objects can be created from the same

class

The class that contains the main method of a Java program represents the entire program

Page 35: COMP425M Introduction to Programming Instructor: Earl LaBatt

Objects and Classes

Bank Account

A class(the concept)

John’s Bank AccountBalance: $5,257

An object(the realization)

Bill’s Bank AccountBalance: $1,245,069

Mary’s Bank AccountBalance: $16,833

Multiple objectsfrom the same class

Page 36: COMP425M Introduction to Programming Instructor: Earl LaBatt

Software Reuse Software reuse is central to object-oriented

programming Use a building-block approach to create

programs. Avoid reinventing the wheel by using existing

pieces wherever possible.

With Java, you will typically use the following building blocks:

Classes and methods from class libraries Classes and methods you create yourself Classes and methods that others create and

make available to you.

Page 37: COMP425M Introduction to Programming Instructor: Earl LaBatt

Outline Introduction / Syllabus Unix Systems Overview Computer Organization Programming Languages Program Development Object-Oriented Programming Assignments

Page 38: COMP425M Introduction to Programming Instructor: Earl LaBatt

Assignments Read: Appendix A.1 (installing Java)

Lab Hello.java Error1.java Error2.java Error3.java Error4.java Drawing.java

Page 39: COMP425M Introduction to Programming Instructor: Earl LaBatt

Java Commands Compile Command

javac Drawing.java Produces the class file: Drawing.class File name must match class name (case

sensitive)

Execute Command java Drawing

Executes Drawing (runs the main method)