Professional Documents
Culture Documents
Introduction to
Programming With
Java
AP Computer Science/Java I
Topics Covered
2
SWABT (Students will be able to)
3
What is computer science?
Computer Science
The study of theoretical foundations of information and
computation and their implementation and application in
computer systems. -- Wikipedia
Computer Engineering
Overlap with CS and Electrical Engineering; emphasizes hardware
4
What is programming?
program: A set of instructions
to be carried out by a computer. AKA code.
5
Original Computers
6
Original Code
AKA Punchcard
7
Original Big Data AKA Big
Deck
8
CORE PROGRAMMING CONCEPTS
• Command Statements
• Variables and Data Types
Core
• Conditionals (if..)
• Iteration (for loop, while loop)
Code • Methods (aka Procedures, Functions, Blocks)
• Input/Output
• Arrays and Lists
Data
• Object Fields
• Object Methods
Objects
9
Programming languages
FORTRAN
science / engineering
COBOL
business data
LISP
logic and AI
BASIC
a simple language
10
Some modern languages
procedural languages: programs are a series of commands
Pascal (1970): designed for education
C (1972): low-level operating systems and device drivers
11
Why Java?
Relatively simple
Widely used
Part of both AP and IB CS Programs. Get College Credit
Free development tools
Platform independent
Available libraries
Object-oriented with good procedural support
Top Programming Language
IEEE
Tiobe
12
Java vs. JavaScript
Java JavaScript
Compiled Programming Scripting Language
Language
Runs in Virtual Machine on Runs in Browser in HTML
OS (or in browser with document
Plugin)
13
Basic Java
programs with
println
statements
Part I
Compile/run a program
1. Write it.
code or source code: The set of instructions in a program.
2. Compile it.
• compile: Translate a program from one language to another.
byte code: The Java compiler converts your code into a
format named byte code that runs on many computer types.
15
Compile/Run in other
programming languages
Scripted/Interpreted Languages
Examples: JavaScript, DOS Batch, Unix Shell files
Not compiled. Interpreted and executed on demand.
Advantages & Disadvantages
16
A Java program
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
System.out.println();
System.out.println("This program produces");
System.out.println("four lines of output");
}
}
Its output:
Hello, world!
17
Structure of a Java program
class: a program
public class name {
public static void main(String[] args) {
statement;
statement;
... method: a named group
statement; of statements
}
}
statement: a command to be executed
18
System.out.println
• System.out.println("text");
Prints the given message as output.
• System.out.println();
Prints a blank line of output.
19
Names and identifiers
You must give your program a name (no spaces allowed).
20
Java Naming Conventions
Java is case-sensitive
Different parts of Java: classes, variables, methods,
constants
Classes – UpperCamelCase
Example: MyComputerProgram, StatsCalculator
Must be same as file name with same capitalization
Variables and Methods – lowerCamelCase
Example: myComputerProgram, statsCalculator
Constants – all Capitals
Example: MY_COMPUTER_PROGRAM, STATS_CALCULATOR
$ is not used, _ does not start
21
Keywords
keyword: An word that you cannot use as an identifier because it already
has a meaning in Java.
22
Syntax
23
Syntax error example
1 public class Hello {
2 pooblic static void main(String[] args) {
3 System.owt.println("Hello, world!")_
4 }
5 }
Compiler output:
Hello.java:2: <identifier> expected
pooblic static void main(String[] args) {
^
Hello.java:3: ';' expected
}
^
2 errors
The compiler shows the line number where it found the error.
The error messages can be tough to understand!
Not all errors will be shown
24
Types of programming errors
Syntax Errors
We just talked about these
No byte code created. Program does not start running
Runtime Errors
Division by zero
Trying to open a file that doesn’t exist
Program crashes and stops execution
Logic Errors
Adding two things when you should be multiplying
Infinite loops
Need to finds these out yourself
25
A Famous Computer Bug
Wikipedia
26
Basic Java programs with
println statements
Part II
27
Strings
string: A sequence of characters to be printed.
Starts and ends with a " double quote " character.
The quotes do not appear in the output.
Examples:
"hello"
"This is a string. It's very long!"
Restrictions:
May not span multiple lines.
"This is not
a legal String."
May not contain a " character.
"This also is not a "legal" String."
28
Escape sequences
Example:
System.out.println(
"\\hello\nhow\tare \"you\"?\\\\");
Output:
\hello
how are "you"?\\
29
Simple Escape Questions
System.out.println("\ta\tb\tc");
a b c
System.out.println("\\\\");
\\
System.out.println("'");
'
System.out.println("\"\"\"");
"""
System.out.println(
"C:\nin\the downward spiral");
C:
in he downward spiral
30
Leaning Toothpicks Question
31
Printing English
What println statements will generate this output?
This program prints a
quote from the Gettysburg Address.
"Four score and seven years ago,
our 'fore fathers' brought forth on
this continent a new nation."
println statements to generate the output:
System.out.println(
"This program prints a");
System.out.println(
"quote from the Gettysburg Address.");
System.out.println();
System.out.println(
"\"Four score and seven years ago,");
System.out.println(
"our 'fore fathers' brought forth on");
System.out.println(
"this continent a new nation.\"");
32
Printing Complex English
What println statements will generate this output?
A "quoted" String is
'much' better if you learn
the rules of "escape sequences."
Also, "" represents an empty String.
Don't forget: use \" instead of " !
'' is not the same as "
println statements to generate the output:
System.out.println("A \"quoted\" String is");
System.out.println("'much' better if you learn");
System.out.println(
"the rules of \"escape sequences.\"");
System.out.println("");
System.out.println(
"Also, \"\" represents an empty String.");
System.out.println(
"Don't forget: use \\\" instead of \" !");
System.out.println("'' is not the same as \"");
33
Comments
comment: A note written in source code by the
programmer to describe or clarify the code.
Comments are not executed when your program runs.
Syntax:
// comment text, on one line
or,
/* comment text; may span multiple lines */
Examples:
// This is a one-line comment.
35
Comments example
// second verse
System.out.println("diggy said the boogy");
System.out.println("said up jump the boogy");
}
}
36
Static methods
More Definitions
38
More Definitions (II)
39
Algorithm: Like a Recipe
40
A computer probably
wouldn't understand this:
To Make a PB&J Sandwich:
1. Put peanut butter on a slice of bread.
2. Put jelly on another slice of bread.
3. Put the slices of bread together.
4. Eat.
41
Closer.
if bag is closed
open bag
if loaf is already sliced
remove two slices from open end
otherwise (it isn't sliced)
remove bread from bag
cut two slices of bread from loaf
put slices on table separately
open the jar of peanut butter
if jar is sealed
unseal jar
pick up knife
put knife in peanut butter
scoop out 2 tablespoons of peanut butter
…….
mathcs.emory.edu
42
Algorithms
43
Problems with this algorithm
lack of structure: Many tiny steps; tough to remember.
44
Structured algorithms
structured algorithm: Split into coherent tasks.
1 Make the cookie batter.
Mix the dry ingredients.
Cream the butter and sugar.
Beat in the eggs.
Stir in the dry ingredients.
45
Removing redundancy
A well-structured algorithm can describe repeated tasks
with less redundancy.
46
A program with redundancy
47
Static methods
class
static method: A named group of statements.
method A
denotes the structure of a program
statement
eliminates redundancy by code reuse
statement
statement
procedural decomposition:
dividing a problem into methods method B
statement
statement
method C
Writing a static method is like
adding a new command to Java. statement
statement
statement
48
Using static methods
49
Design of an algorithm
50
Declaring a method
Gives your method a name so it can be executed
Syntax:
Example:
public static void printWarning() {
System.out.println("This product causes cancer");
System.out.println("in lab rats and humans.");
}
51
Calling a method
Syntax:
name();
You can call the same method many times if you like.
Example:
printWarning();
Output:
This product causes cancer
in lab rats and humans.
52
Program with static method
Output:
Now this is the story all about how
My life got flipped turned upside-down
53
Final cookie program
54
Methods calling methods
public class MethodsExample {
public static void main(String[] args) {
message1();
message2();
System.out.println("Done with main.");
}
Output:
This is message1.
This is message2.
This is message1.
Done with message2.
Done with main.
55
Control flow
57
Drawing complex
figures with static
methods
Static methods question
Write a program to print these figures using methods.
______
/ \
/ \
\ /
\______/
\ /
\______/
+--------+
______
/ \
/ \
| STOP |
\ /
\______/
______
/ \
/ \
+--------+
59
Development strategy
______ First version (unstructured):
/ \
/ \
Create an empty program and main method.
\ /
\______/
______
/ \
/ \
+--------+
60
Program version 1
public class Figures1 {
public static void main(String[] args) {
System.out.println(" ______");
System.out.println(" / \\");
System.out.println("/ \\");
System.out.println("\\ /");
System.out.println(" \\______/");
System.out.println();
System.out.println("\\ /");
System.out.println(" \\______/");
System.out.println("+--------+");
System.out.println();
System.out.println(" ______");
System.out.println(" / \\");
System.out.println("/ \\");
System.out.println("| STOP |");
System.out.println("\\ /");
System.out.println(" \\______/");
System.out.println();
System.out.println(" ______");
System.out.println(" / \\");
System.out.println("/ \\");
System.out.println("+--------+");
}
}
61
Development strategy 2
______
/ \
/ \
\ /
\______/ Second version (structured, with redundancy):
\
\______/
/
Identify the structure of the output.
+--------+
______
/ \
/ \
+--------+
62
Output structure
______
/ \ The structure of the output:
initial "egg" figure
/ \
\ /
______
/
/ \
\
This structure can be represented by methods:
| STOP | egg
\ /
\______/ teaCup
stopSign
______
hat
/ \
/ \
+--------+
63
Program version 2
public class Figures2 {
public static void main(String[] args) {
egg();
teaCup();
stopSign();
hat();
}
64
Program version 2, cont'd.
...
65
Development strategy 3
______
/ \
/ \ Third version (structured, without redundancy):
\ /
______
Add comments to the program.
/ \
/ \
| STOP |
\ /
\______/
______
/ \
/ \
+--------+
66
Output redundancy
______
/ \
/ \
\ /
The redundancy in the output:
\______/
eggBottom
\______/
______ line
/ \
/ \
+--------+
67
Program version 3
// Suzy Student, CSE 138, Spring 2094
// Prints several figures, with methods for structure and redundancy.
public class Figures3 {
public static void main(String[] args) {
egg();
teaCup();
stopSign();
hat();
}
...
68
Program version 3, cont'd.
...
69