icom 4015 fall 2008 big java by cay horstmann copyright © 2008 by john wiley & sons. all rights...

46
ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading: Chapter One: Introduction

Upload: whitney-chase

Post on 18-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

ICOM 4015 Fall 2008

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

ICOM 4015: Advanced Programming

Lecture 1

Reading: Chapter One: Introduction

Page 2: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Chapter One: Introduction

Page 3: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• To understand the activity of programming

• To learn about the architecture of computers

• To learn about machine code and high level programming languages

• To become familiar with your computing environment and your compiler

• To compile and run your first Java program

• To recognize syntax and logic errors

Chapter Goals

Page 4: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Computer savvy (file management, text editing)

• Problem solving skills

• Time management

• High school math (algebra, trigonometry)

• No prior programming background required

Prerequisites

Page 5: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Computers are programmed to perform tasks

• Different tasks = different programs

• Program • Sequence of basic operations executed in succession • Contains instruction sequences for all tasks it can execute

• Sophisticated programs require teams of highly skilled programmers and other professionals

What Is Programming?

Page 6: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What is required to play a music CD on a computer?

Answer: A program that reads the data on the CD and sends output to the speakers and the screen.

Self Check 1.1

Page 7: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Why is a CD player less flexible than a computer?

Answer: A CD player can do one thing – play music CDs. It cannot execute programs.

Self Check 1.2

Page 8: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Can a computer program develop the initiative to execute tasks in a better way than its programmers envisioned?

Answer: No – the program simply executes the instruction sequences that the programmers have prepared in advance.

Self Check 1.3

Page 9: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Central processing unit • Chip • Transistors

• Storage • Primary storage: Random-access memory (RAM) • Secondary storage: e.g. hard disk • Removable storage devices: e.g.: floppy disks, tapes, CDs

• Peripherals

• Executes very simple instructions

• Executes instructions very rapidly

• General purpose device

The Anatomy of a Computer

Page 10: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

                        Central Processing Unit   

Page 11: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

                                            A Memory Module with Memory Chips

Page 12: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

          A Hard Disk    

Page 13: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

                                                                                                                  A Motherboard 

Page 14: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

                                                                     Schematic Diagram of a Computer    

Page 15: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

The ENIAC

Page 16: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Where is a program stored when it is not currently running?

Answer: In secondary storage, typically a hard disk.

Self Check 1.4

Page 17: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Which part of the computer carries out arithmetic operations, such as addition and multiplication?

Answer: The central processing unit.

Self Check 1.5

Page 18: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Java Virtual Machine (JVM) – a typical sequence of machine instructions is: 1. Load the contents of memory location 40. 2. Load the value 100. 3. If the first value is greater than the second value, continue with the

instruction that is stored in memory location 240.

• Machine instructions are encoded as numbers: 21 40 16 100 163 240

• Compiler translates high-level language to machine code

Machine Code

Page 19: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What is the code for the Java virtual machine instruction "Load the contents of memory location 100"?

Answer: 21 100

Self Check 1.6

Page 20: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Does a person who uses a computer for office work ever run a compiler?

Answer: No – a compiler is intended for programmers, to translate high-level programming instructions into machine code.

Self Check 1.7

Page 21: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Simple

• Safe

• Platform-independent ("write once, run anywhere")

• Rich library (packages)

• Designed for the internet

The Java Programming Language

Page 22: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Applets on a Web Page

Page 23: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Version Year Important New Features

1.0 1996  

1.1 1997 Inner classes

1.2 1998 Swing, Collections

1.3 2000 Performance enhancements

1.4 2002 Assertions, XML

5 2004 Generic classes, enhanced for loop, auto-boxing, enumerations

6 2006 Library improvements

Java Versions

Page 24: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What are the two most important benefits of the Java language?

Answer: Safety and portability.

Self Check 1.8

Page 25: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

How long does it take to learn the entire Java library?

Answer: No one person can learn the entire library – it is too large.

Self Check 1.9

Page 26: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Log in

• Locate the Java compiler

• Understand files and folders • Programs are kept in files • File: a collection of items of information that are kept together • Files have names, and the rules for legal names differ from one system

to another • Files are stored in folders or directories; these file containers can be

nested

• Write a simple program (later)

• Save your work • Develop a strategy for keeping backup copies of your work

Becoming Familiar with your Computer

Page 27: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

A Shell Window  

Page 28: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

  An Integrated Development Environment

Page 29: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Nested Folders 

Page 30: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

How are programming projects stored on a computer?

Answer: Programs are stored in files, and files are stored in folders or directories.

Self Check 1.10

Page 31: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What do you do to protect yourself from data loss when you work on programming projects?

Answer: You back up your files and folders.

Self Check 1.11

Page 32: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

1: public class HelloPrinter2: {3: public static void main(String[] args)4: {5: // Display a greeting in the console window6: 7: System.out.println("Hello, World!");8: }9: }

Output: Hello, World!

ch01/hello/HelloPrinter.java

Page 33: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

                                                    HelloPrinter in a Console Window

Page 34: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

HelloPrinter in an IDE 

Page 35: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• public class ClassName

• public static void main(String[] args)

• // comment

• Method call

System class System.out object println method

A Simple Program

Page 36: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

object.methodName(parameters)

Example:

System.out.println("Hello, Dave!");

Purpose:

To invoke a method of an object and supply any additional parameters.

Syntax 1.1 Method Call

Page 37: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

How would you modify the HelloPrinter program to print the words "Hello," and "World!" on two lines?

Answer: System.out.println("Hello,"); System.out.println("World!");

Self Check 1.12

Page 38: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Would the program continue to work if you omitted the line starting with //?

Answer: Yes – the line starting with // is a comment, intended for human readers. The compiler ignores comments.

Self Check 1.13

Page 39: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What does the following set of statements print? System.out.print("My lucky number is"); System.out.println(3 + 4 + 5);

Answer: The printout is

My lucky number is12

It would be a good idea to add a space after the is.

Self Check 1.14

Page 40: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

• Syntax errors

System.ouch.print(". . ."); System.out.print("Hello);

• Detected by the compiler

• Logic errors System.out.print("Hell");

• Detected (hopefully) through testing

Errors

Page 41: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Suppose you omit the // characters from the HelloPrinter.java program but not the remainder of the comment. Will you get a compile-time error or a run-time error?

Answer: A compile-time error. The compiler will not know what to do with the word Display.

Self Check 1.15

Page 42: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

How can you find logic errors in a program?

Answer: You need to run the program and observe its behavior.

Self Check 1.16

Page 43: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

The Compilation Process

Page 44: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

   The Edit-Compile-Test Loop

Page 45: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

What do you expect to see when you load a class file into your text editor?

Answer: A sequence of random characters, some funny- looking. Class files contain virtual machine instructions that are encoded as binary numbers.

Self Check 1.17

Page 46: ICOM 4015 Fall 2008 Big Java by Cay Horstmann Copyright © 2008 by John Wiley & Sons. All rights reserved. ICOM 4015: Advanced Programming Lecture 1 Reading:

Big Java by Cay HorstmannCopyright © 2008 by John Wiley & Sons. All rights reserved.

Why can't you test a program for run-time errors when it has compiler errors?

Answer: When a program has compiler errors, no class file is produced, and there is nothing to run.

Self Check 1.18