S1007 - Introduction to Computer Science: Java

Summer 2003

Discussion Board Useful links

Announcements

6/17/2003 - Input has a minor bug in it that prevents it from working correctly on Windows computers. The version below and in ~cs1007/util have been updated to fix the problem.
5/29/2003 - I am fixing "bugs" in the lecture notes as I find them. If you intend to use the slides for studying, I recommend that you download the newer versions. I'll try to proof them more carefully in the future!
5/20/2003 - Important!!! You will need to have a CUNIX account for this course. Even if you intend to do all of the course work on your own computer, all homework must be submitted from a CUNIX account. For more information go to the AcIS home page.

What did we do to deserve this?

Course Overview

This course is a rigorous introduction to computer science intended for majors. We will use Java as an example language for learning program writing skills. There will be five Java programming projects.

Instructor:
Christopher Conway
conway@cs.columbia.edu
(212) 939-7069
Office: 521 Computer Science Building
Office Hours: 3:30-5:00 Tuesday and Thursday

TA:
Bogdan Caprita
bc2008@columbia.edu
Office: 251 Engineering Terrace (In Mudd, left out of the second-floor elevators)
Office Hours: 3:30-5:00 Monday and Wednesday

Grading:
Homework  40%
Final exam  30%
Midterm exam  20%
Quiz  10%

Textbook:  
Java Software Solutions: Foundations of Program Design, Third Edition.
John Lewis and William Loftus.
Addison Wesley, 2003.

The textbook is available at Papyrus Books on Broadway at 114th.

Recommended Reading:  
The Java Programming Language, Third Edition.
Ken Arnold, James Gosling and David Holmes.
Addison Wesley, 2000.

This book is the final word on what Java is and does. If you intend to continue on after this course, The Java Programming Language is a must-have shelf item.

Schedule

Date  Lecture  Notes  Reading  Due 
May 27   Introduction: Computation   PDF: Intro, full-screen  PDF: Intro, 9 per page  
Updated
5/29/2003
   
May 29   Objects and Types   PDF: Objects and Types, full-screen  PDF: Objects and Types, 9 per page  
Updated
5/30/2003
Ch. 1, 2    
June 3   Quiz, Control Flow   PDF: Control Flow, full-screen  PDF: Control Flow, 9 per page Ch. 3   HW 1 PDF: Homework #1 
June 5   Object-Oriented Programming   PDF: Object-Oriented Programming, full-screen  PDF: Object-Oriented Programming, 9 per page Ch. 4, 5    
June 10   Arrays, Midterm Review   PDF: Arrays, full-screen  PDF: Arrays, 9 per page Ch. 6   HW 2 PDF: Homework #2 
Keyboard.class
June 12   Midterm, Inheritance and Polymorphism  PDF: Inheritance and Polymorphism, full-screen  PDF: Inheritance and Polymorphism, 9 per page   Practice Midterm
(solutions
June 17   Interfaces and Abstraction  PDF: Interfaces and Abstraction, full-screen  PDF: Interfaces and Abstraction, 9 per page  Ch. 7   HW 3 PDF: Homework #3 
Input.class
June 19   Applets and GUIs   PDF: Applets and GUIs, full-screen  PDF: Applets and GUIs, 9 per page  Ch. 8, 9    
June 24   Input, Output and Exceptions   PDF: Input, Output and Exceptions, full-screen  PDF: Input, Output and Exceptions, 9 per page  Ch. 10   HW 4 PDF: Homework #4 
AutomatonApplet.java 
auto.html 
Applet image 
June 26   Recursion   PDF: Recursion, full-screen  PDF: Recursion, 9 per page  Ch. 11    
July 1   Data Structures, Final Exam Review   PDF: Data Structures, full-screen  PDF: Data Structures, 9 per page  Ch. 12   HW 5 PDF: Homework #5 
July 3   Final Exam       Vocabulary list 
Practice Final
(solutions

Course Policies