Computer Science 112 Spring 2014
Gregory M. Kapfhammer
Introduction to Computer Science II
Compiler
Inputs?
Outputs?
Purpose?
Virtual Machine
Inputs?
Outputs?
Purpose?
Opportunities
Challenges
Halting Problem
Iteration Constructs
Let's try it!
http://goo.gl/TZUn32
Browser
Terminal
Weee.java
http://goo.gl/qahIGg
Browser
Terminal
Hooray.java
Return to your team
Discuss the outputs
Limited Resources
Conclusions?
More about iteration
git pull
WhileLoopExample.java
Does this program halt?
Can you fix it?
How did you fix it?
Chaos Theory
LogisticMap.java
Compile
java LogisticMap 0
java LogisticMap 0.825250
Split points?
Investigate
Discuss iteration
How does it work?
Greatest Common Divisor
IterativeGCD
How does this program work?
Timing Experiment
RecursiveGCD
How does this program work?
Timing Experiment
Which one is faster?
Why?
Factorial
IterativeFactorial
How does this program work?
Timing Experiment
RecursiveFactorial
How does this program work?
Timing Experiment
Which one is faster?
Why?
Compare and Contrast
Random
Import Statements
Data Types
Primitives
Objects
Numbers
Memory Addresses
Testing
Debugging
java junit.textui.TestRunner TestKinetic
java junit.swingui.TestRunner TestKinetic
Defect?
Fix It!
Understand
Start from Scratch!
Count off by sixes
Sorting
Swapping
swap(int a, int b)
swap(Integer a, Integer b)
What?
Why?
Impossible?
Possible?
How?