Columbia University 
High School Science Honors Program 
Computer Programming in Java 
2008 Spring

General Information

Instructor: Matt Chu

Email: mwc2110@columbia.edu (Prepend “[shp]” to the subject)

Homepage: http://www.cs.columbia.edu/~mwc2110/shp

Classroom: 222 Pupin

Lab: 251 Mudd


News and Announcements

·       Username assignments


Useful Programs and Links

·       Programs

o   Windows

§  PuTTY

§  WinSCP

o   Mac OS X (Instructions)

§  Fugu

·       Two useful CUNIX tutorials here and here.

·       Java 1.6 API Documentation

·       Previous Semesters

o   2007 Fall

o   2007 Spring


Schedule

Week

Date

Topics

Files/Links

1

Feb 02

Lecture

·       Introduction and Logistics

o   What is: Java, Java Virtual Machine

o   Model of Computation

o   Intro to data types

Lab

·       UNIX/CUNIX

·       WinSCP

·       javac and java

Lecture Notes

Assignments

Hello.java

InteractiveHello.java

Calculator.java

DegreeConverter.java

ToSeconds.java

FromSeconds.java

2

Feb 09

Lecture

·       Basic Java, Part 1

o   Data types & Variables

o   Comparison Operators

o   Arithmetic Operators

o   Control Flow

o   Variable Scope

o   Arrays

Lab

·       See Assignment Notes

Lecture Notes

Assignments

Prime.java

Grades.java

RockPaperScissors.java

3

Feb 16

Lecture

·       Basic Java, Part 2

o   Functions/Methods

o   Comments & Style

o   Random Numbers

o   User I/O

o   Common compiler errors

o   String manipulation

Lab

·       See Assignment Notes

Lecture Notes

Assignments

ArraysExample

FindMax.java

Sieve.java

Frequencies.java

4

Feb 23

Lecture

·       Basic Java, Part 3

o   Programs

Lab

·       See Assignment Notes

Lecture Notes

Assignments

MethodExample

GuessingGame

Even Odd Simulation

5

Mar 01

Lecture

·       Analysis of Algorithms, Part 1

o   Asymptotic analysis, Big-Oh

o   Sequential Search

o   Binary Search

o   Insertion Sort

o   Selection Sort

Lab

·       See Lecture Notes

Lecture Notes

Search.java

unsorted-set.txt

sorted-set.txt

6

Mar 08

Lecture

·       Analysis of Algorithms, Part 2

o   Bubble Sort

o   Merge Sort

Lab

·       See Lecture Notes

Lecture Notes

Sorting.java

InsertionSort.java

SelectionSort.java

BubbleSort.java

MergeSort.java

small1.txt

small2.txt

small3.txt

small4.txt

big1.txt

big2.txt

7

Mar 15

 


 

Mar 22

No Classes! Easter Weekend


8

Mar 29

Lecture

·       Object Oriented Programming, Part 1

o   Classes, objects/instances

o   Member variables and methods

o   Getters and setters

o   Constructors

Lab

·       See Assignment Notes

Lecture Notes

Assignments

Circle.java

Square.java

Triangle.java

Die.java

9

Apr 05

Lecture

·       Object Oriented Programming, Part 2

o   Inheritance

o   Polymorphism

Lab

·       See Assignment Notes

Lecture Notes

Assignments

10

Apr 12

Lecture

·       Introduction to Artificial Intelligence

o   Turing Test

o   Chat bots

Lab

·       See Assignment Notes

Lecture Notes

Assignments

chatbot.zip

chatbot-src.zip

 

Apr 19

No Classes! Passover Weekend


11

Apr 26

Lecture

·       Introduction to Machine Learning

o   Naïve Bayes Classification

Lab

·       See Assignment Notes

Lecture Notes

Assignments

virus-classifier.zip

12

May 03

Lecture

·       Introduction to Cryptology

Lab

·       See Assignment Notes

Lecture Notes

Assignments

package.zip


Last Updated: 2008 May 03 Sat 01:43 EDT