CS @ CU Logo  Computer Science at Columbia University

COMS W1004

Introduction to Computer Science
and Programming in Java

Announcements

The "Unix for Java Programming" tutorials schedule and registration can be found here.

Online CUNIX tutorials can be found here and here.
A tutorial for writing Java programs on your own computer and then submitting them (basic Mac instructions at bottom) can be found here.

Here is the vocabulary list for the midterm.

A Turing Machine Interpreter: readme and download.

Here is the vocabulary list for the final.

Graduate Student Presentations (slides, paper, and video links)

Teaching Staff and Office Hours

Name E-mail Office Hours Location
Prof. Adam Cannon cannon@cs.columbia.edu Mondays and Tuesdays 10:00AM - 12:00PM 459 CSB
Gaurav Prabhu Gaonkar (TA) ggp2109@columbia.edu Mondays 12:00PM - 2:00PM 122 Mudd
Himanshu Kumar (TA) hk2409@columbia.edu Wednesdays 11:00AM - 1:00PM 122 Mudd
Swati Kumar (TA) sak2144@columbia.edu Wednesdays 11:00AM - 3:00PM 122 Mudd
John Gallagher (TA) jmg2016@columbia.edu Thursdays 11:00AM - 1:00PM 122 Mudd
Matt Chu (TA) mwc2110@columbia.edu Thursdays 12:00PM - 4:00PM 122 Mudd
Sahar Hasan (TA) sh2503@columbia.edu Thursdays 3:00PM - 5:00PM 122 Mudd
 
Getting Help: All TA office hours are held in the Mudd building (map to Mudd).
TAs hold office hours in the TA room (map to TA room once in Mudd).
When emailing staff, please include your UNI!

Course Overview

This course is an introduction to computer science for computer science and other science and engineering majors having little or no prior programming experience. The goals of this course are to teach students
  • fundamental Java programming skills
  • knowledge of the fundamental concepts in computer science
  • algorithmic program-solving capabilities
The course will have biweekly homework assignments consisting of problems and programming exercises.

Prerequisites

None.

Schedule Spring 2008 (tentative)

Date Lecture Reading
Jan 23 Introduction S&G Chapter 1
Jan 28 A first look at Algorithms S&G Chapter 2
Jan 30 More on Algorithms S&G Chapter 2-3
Feb 4 Your first Java Program L&L Chapter 1-2
Feb 6 The Java Programming Language L&L Chapter 2
Feb 11 Iteration and Conditionals in Java L&L Sections 5.2, 5.5 and 5.8
Feb 13 Representing Information S&G Chapter 4
Feb 18 Boolean Logic and Circuit Construction S&G Chapter 4
Feb 20 Object Oriented Programming L&L Sections 3.1-3.5
Feb 22 Methods and constructors L&L 3.6, 4.4-4.5
Feb 27 Intro to Computer Organization S&G 4.1-4.4 (4.5 suggested)
Mar 3 Von Neumann Architecture S&G 5.1-5.3
Mar 5 Von Neumann Architecture S&G 5.1-5.3
Mar 10 Arrays in Java L&L 7.1-7.6
Mar 12 Arrays in Java L&L 7.1-7.6
Mar 24 Midterm Review
Mar 26 MIDTERM EXAM
Mar 31 Assemblers and assembly language S&G 6.1-6.4
April 2 Comparable interface;
Recursion; Merge sort
L&L 6.5, 11.1
April 7 Java odds & ends
April 9 Reading & Writing text files; Exceptions L&L 5.6, 10.1-10.6
April 14 Graduate student research presentations
April 16 Turing Machines S&G 11.1-11.5
April 21 Turing Machines S&G 11.1-11.5
April 23 Network protocols S&G 7.1-7.6
April 28 Network protocols S&G 7.1-7.6
April 30 Complexity Classes S&G 3.1-3.3
May 5 Final Exam Review

Assignments

There will be 6 homework assignments each consisting of a theory portion and a programming portion.
Homework 1 (Theory Due: Wed Feb 6 4:10 PM, Programming Due: Wed Feb 13 4:10 PM)
Theory Coversheet, Programming Coversheet.
Theory Solutions.
Programming Solutions.
Homework 2 (Theory Due: Wed Feb 20 4:10PM PM, Programming Due: Wed Feb 27 4:10 PM)
Theory Coversheet, Programming Coversheet.
Theory Solutions.
Programming Solutions.
Homework 3 (Theory Due: Wed March 5 4:10 PM, Programming Due: Wed March 12 4:10 PM)
Theory Coversheet, Programming Coversheet.
Theory Solutions, Programming Solutions.
Homework 4 (Both Theory and Programming Due: Mon April 7 4:10PM)
Theory and Programming Coversheet.
Theory Solutions, Programming Solutions.
Homework 5 (Theory Due Mon April 14, 4:10PM, Programming Due Mon April 21, 4:10PM)
Theory Coversheet, Programming Coversheet.
Theory Solutions, Programming Solutions.
Homework 6 (Theory Due Mon April 28, 4:10PM, Programming Due Mon May 5, 4:10PM)
Theory Coversheet, Programming Coversheet.
Theory Solutions, Programming Solutions.

Required Texts

G. Michael Schneider and Judith L. Gersting
Invitation to Computer Science, Java Version, Third Edition
Thomsom Course Technology, 2006
ISBN: 1418836540
Available at the Columbia Bookstore or Amazon

John Lewis and William Loftus
Java Software Solutions: Foundations of Program Design, 5th edition
Addison-Wesley, 2006
ISBN: 0321409493
Available at the Columbia Bookstore or Amazon

Additional References

Mary Campione, Kathy Walrath, and Alison Huml
The Java Tutorial (third edition)
Addison Wesley, 2001

David Reed
A Balanced Introduction to Computer Science
Pearson Prentice Hall, 2005

Lawrence Snyder
Fluency with Information Technology: Skills, Concepts, & Capabilities, 2nd edition
Addison-Welsey, 2005

Class Policies

Exams There will be an in-class midterm examination, and a final exam (place and time TBD).
Grading Grades will be assigned using the following guideline:
  • 40% Homework
  • 25% Midterm Exam
  • 35% Finial Exam
Late Policy All assignments can be handed in up to one week after they are due for 75% credit.
Academic
Honesty
Please familiarize yourself with the Computer Science Department's academic honesty policy