Transcript Chapter1
Chapter 1 - Introduction
Ch 1Goals
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
1.1 What is Programming?
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
How do we produce this program?
1.2 Anatomy of a Computer
A computer is a machine that can do
certain tasks
Stores data
Interacts with devices
Executes programs
CPU
Central Processing Unit (CPU) - Heart of the
computer
Made of a chip (AMD, Intel, etc), millions of transistors
Executes instructions given by a program
1.2 Anatomy of a Computer
Storage – where data is kept
3 types – primary, secondary, removable
1.2 Anatomy of a Computer
Computers communicate through a network
Peripheral devices allow interaction with
humans
Speakers, screen, printer, scanner
RAM, Disks, peripherals connected to CPU
via the bus
Where is a program stored when it is not
currently running?
Which part of the computer carries out
arithmetic operations, such as addition
and multiplication?
1.3 Translating Human-Readable
Programs to Machine Code
There are actually multiple levels upon which
a program can be written
Machine Instructions
Assembly
High Level Language
Machine Code
The most basic level of instructions
Everything is represented with numbers (read
in binary)
Looks like this:
00010101 00101000 (binary)
21 40 (decimal)
This is the only language the CPU knows
What’s the problem?
CPUs perform very primitive operations only
Add, subtract, load from memory
Leads to coding of several hundred lines to
perform one simple operation
Not Intuitive
Can you look at 1000 numbers and tell what the
program is doing?
Each CPU uses a different set of instructions
Each CPU translates different digits to mean
different things
Assembly
A slight step up from machine
Uses words and numbers
load 40
Still needs as many instructions as machine
language, but is slightly easier to read.
High Level
High level is much more expressive
One statement is converted into several
machine code instructions
The conversion is done by the compiler
Very complicated and sophisticated, not the
focus of this course
1.4 The Java Programming Language
Simple
Safe – more secure, easier to catch
errors
Platform-independent ("write once, run
anywhere") – operating system and
architecture
Rich library (packages)
Designed for the Internet
Java Virtual Machine
Unique to Java
Instead of compiling for a particular
processor, Java compiles to a virtual
processor that is the same for every
computer
Lesson: The code is the same no matter
what computer you are on, so you don’t
have to make a Mac version and a PC
version, etc.
Flaws
Fully object-oriented nature can be
confusing to beginning programmers
Many revisions made – make sure you
update if you work from home to Java 5.0
(1.5)
Rich libraries So much to learn
1.5 Becoming Familiar w/ your
Computer
Very important to familiarize yourself with your
computer
Understand how to find files, what they are, how do
you move them around and name them
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
Files are stored in folders or directories
1.6 Compiling a Simple Program
So how do we actually make a program?
In this course, we will use an IDE
(Integrated Development Environment)
called Eclipse
This will help us find mistakes more
quickly.
Simple Program
Most simple program
Outputs a sentence to the console screen
public class FirstProgram
{
public static void main(String[] args)
{
//display a greeting in the console window
System.out.println(“My First Program!”);
}
}
Essential Components
What does each line mean?
public class ClassName
A class is an essential part of a java program,
all instructions are contained within a
class
We create a class called FirstProgram, the file
must be called FirstProgram.java
Method
public static void main(String[] args)
{
// Code goes here
}
Classes contains methods – specific
instructions that can be called
Ex. Robot needs method called walk
public void walk() {
}
Every program must have a method called
main – it is the method called first
Parameters
public static void main(String[] args)
is a parameter – input given
to a method (will learn about more later
on)
String[] args
Body
The instructions are the body of a method
System.out.println(“My First Program!”);
An instruction to print a message to the
screen
Each instruction ends in a ;
Comments
//display a greeting in the console window
System.out.println(“My First Program!”);
“//” signifies not to execute this line of code
Has many uses – here it is to explain what
the code is supposed to do
Another type of comments:
/* Multiple lines
of comments about
what is going on
*/
Method Call
Here, we are calling the method println() on the
object System.out
Notes
Java is case sensitive
class FirstProgram ≠ class firstprogram
It is free form – the amount of white space
is irrelevant to the computer (although it is
important for readability)
You could have all instructions on one line,
but not very useful to a human
We will grade on it!
1.7 Errors
Two types of errors
Compile Time Errors – Syntax errors
These are caught when you ask Java to convert
your program to machine code
Your program must follow a set of rules (just like a
sentence in English)
Run Time Errors
Not problems in the syntax, but problems in logic
Program does not accomplish what the
programmer intended
1.8 Compilation Process
The code a programmer creates is called
the source code
Written in Java
Saved as a .java file
Must have the same name as the class
When converted by the compiler, a class
file is created
Machine instructions
Saved by compiler as .class file
Coding loop
Edit-compile-test loop
Your programming begins with editing a
file by writing instructions
When done, compile the program.
If no compile errors, test the program. If
compile errors, go back to editing
If there are runtime errors, go back to fix
them
Object Oriented Programming
What is the point of this course?
Not Java – its just a tool
Methodology of programming – OOP
Objects & Classes – 2 Main
Concepts
Object – an entity, something we can
imagine (typically a noun)
Consists of data values and operations for
manipulating those values
Interactions between objects is the heart of
OO style
Ex. Bank accounts – need Customer,
Account, Bank, etc.
Classes
Class – Instructions for creating objects
Defines what objects can and cannot do –
how they behave and what info they hold
Like a mold, template, or blueprint
Objects are instances of classes
Ex. Class is Student, instance is Eric Lantz
Ex2. Class is University, instances could be
University of Wisconsin and Cornell
Messages and Methods
In order to use objects and classes, coder
needs to communicate with them Messages
Ex. Tell Robot to move forward 1 foot
Can you send any message to any object?
No, the object must understand the message
The class defines the messages that the
object can understand