Department of Computer Science
Pomona College
CS 51 - Introduction to Computer Science
Fall 2010

instructors: Dave Kauchak
e-mail: [first_initial][last_name]@cs.pomona.edu
office hours: Edmunds 221
  Mon. 4-5pm, Tue. 10:30am-12 and Th. 10am-11
  and by appointment

Kim Bruce
e-mail: [first_name]@cs.pomona.edu
office hours: Edmunds 222
  MWF 11 - 11:50am and MWThF 2-3pm
  and by appointment.

TAs: Evan Fields, Trevor Flynn, Sam Konowitch and Michael Stock-Matthews
office hours: Edmunds 229
  Sun. 8:30-10:30pm, Monday 8-10pm

time: M/W 11am-12:15
location: Edmunds 114
lab: Thu 7-9:50pm or Fri 1:15-4pm
lab location: Edmunds 229
web page: http://www.cs.pomona.edu/classes/cs051/

textbook:

general information:
Computer Science 51 is an introduction to programming using the Java programming language. By the end of this course you should have a good basic understanding of how to develop (design, code, and debug) medium-sized programs in Java, and have a basic understanding of how one might analyze programs for correctness and efficiency.

We do not assume you have had any previous programming experience for this course. If you have had extensive previous experience, cs52 or cs62 might be more appropriate. Feel free to discuss this with myself or any of the other CS faculty.

administrivia


Announcements

I've added links below (under "Reading" on 9/1) to the first two chapters of the book for those still tracking down a copy of the book. These are only accessible on campus.

Schedule

Note: This is a tentative schedule and is subject to change
DateTopicReadingProblemsComments
9/1admin, java basics, instance variables, parametersCh. 1, 2  
9/2 : 9/3Lab 1 (pdf)  Due 11 pm 9/6
9/6numbers, constants, conditionalsCh. 3, 41.9.3, 1.6.3 
9/8conditionals, random nums, booleans, colorsCh. 52.7.7 
9/9 : 9/10Lab 2 (pdf) - design_example  Due 11pm 9/13
9/13classes, constructorsCh. 64.2.2, 4.8.6 
9/15more classesCh. 75.7.6, 5.7.2 
9/16 : 9/17Lab 3 (pdf)  Due 11pm 9/20
9/20control constructs, active objectsCh. 8, 9
---
 
9/22more active objects, complex loops 8.6.2, 9.10.1 
9/23 : 9/24Lab 4 (pdf)  Due 11pm 9/27
9/27interfacesCh. 10, 11.78.1.1, 9.11.2 
9/29keyboard input, GUIsCh. 1110.5.1, 10.5.2 
9/30 : 10/1Lab 5 (pdf)  Due Tuesday
11pm 10/5
10/4more GUIs, sample midterm 
---
TP1 (pdf)
Due 6pm 10/15
10/6GUIs, review 11.4.2, 11.4.3 
10/7 : 10/8Lab 6 (pdf)   
10/11midterm   
10/13recursionCh. 12  
10/14 : 10/15No Lab - TP1 due 10/15   
10/18Fall break   
10/20more recursion 12.1.8, 12.1.9 
10/21 : 10/22Lab 7 (pdf)   
10/25recursion, inheritanceCh. 1712.1.10, 12.1.13 
10/27inheritence, arraysCh. 1417.8.1, 17.5.1 
10/28 : 10/29Lab 8 (pdf)   
11/1more arrays 
---
 
11/3multidimensional arraysCh. 1514.2.2, 14.9.3 
11/4 : 11/5Lab 9 (pdf)   
11/8multidimensional arrays 15.4.4 
11/10multiD arrays, stringsCh. 16
Optional: article
15.4.1 
11/11 : 11/12Lab 10 (pdf)  Due Tuesday
11pm 11/16
11/15more strings 16.5.2TP2 (pdf)
11/17exceptionsCh. 1816.5.9 
11/18 : 11/19Lab 11 (pdf)   
11/22file I/OCh. 1918.9.3 
11/24NO CLASS  TP2 design due 11am
11/25 : 11/26Thanksgiving   
11/29streams/network 19.7.2, 19.7.3 
12/1network
Sample Final
Ch. 2019.7.5 
12/2 : 12/3Lab 12 (pdf)   
12/6sorting/asymptotics 
---
 
12/8review  TP2 due at midnight

Final exam on Wednesday, Dec. 15 at 9:00am.


Resources

The following documents provide information on the standard Java libraries and additional libraries developed for this course: