Source: http://www.cs.carleton.edu/faculty/dlibenno/old/cs117-winter06/
Timestamp: 2019-04-25 18:50:22+00:00

Document:
Lecture: 3a (MW 11:10a–12:20p, F 12:00–1:00p), CMC 210.
Office Hours: Tuesday 10–11a; Wednesday 1–2:30p; Friday 9:40–10:40a.
Prefector: Paul Sanderson-Cimino (sandersp). Prefecting sessions: Tuesdays and Thursdays, 9–11pm, CMC 304/306.
Catalogue description: This course introduces the fundamentals of computer science through problem solving. Students will learn the Java programming language by writing programs to solve interesting problems, such as processing images. The design and implementation of more extensive projects will introduce students to computer science through such topics such as data representation, graphics, recursion, and object-oriented design. No previous programming experience is necessary.
Please use this anonymous feedback form to give me feedback on the course. What would you change? What would you leave the same?
Week #1: intro to computer science and computers. Chapter 1.
Week #2: basic Java, data types, classes, objects. Chapters 1–3.
Week #3: writing classes, conditionals. Chapters 4 and 5.
Week #4: loops and arrays. Chapters 5 and 7.
Week #5: object-oriented design. Chapter 6. Midterm exam!
Week #6: inheritance. Chapter 8. Midterm break!
Week #7: file input and output, searching, complexity. Chapters 10 and 9.
Week #8: sorting, recursion. Chapters 9 and 11.
Week #9: more recursion, linked lists. Chapters 11 and 12.
Week #10: more linked lists. Chapter 12. Midterm exam!
4 January 2006 (W): overview of CS/CS117. For Friday: read §1.1–1.5, hand in PS0 (survey), complete Lab 1 (Intro to Linux and the CS labs).
6 January 2006 (F): very simple Java, how computers work, and the word "prefector". For Monday: read §1.6, §2.1–2.6, and some information on pair programming.
9 January 2006 (M): object-oriented programming and Lab 2 (Intro to Java). Due by 11:59p on Tuesday, 10 January 2006. For Wednesday: reread §1.6, §2.3–2.6.
11 January 2006 (W): objects, data, methods, and Lab 3 (using classes). Due by 11:59p on Thursday, 12 January 2006. For Friday: read §3.1–3.5.
13 January 2006 (F): classes and objects. For Monday: read §4.1–4.4 and work on PS1.
16 January 2006 (M): methods, writing classes (Calculator.java, CalcTester.java). For Tuesday night: finish PS1. For Wednesday: catch up on old reading!
18 January 2006 (W): writing classes (AuctionLot.java, AuctionTester.java), Lab 4. Due by 11:59p tonight: PS1 peer evaluation. For Friday: read Appendix I, this style guide.
20 January 2006 (F): programming style, writing classes (HomeSecuritySystem.java, SecurityTester.java), and more Lab 4 (due Sunday, 11:59p). For Monday: read §5.1–5.4.
23 January 2006 (M): conditionals (Grade.java). For Wednesday: read §5.5, §5.8, and §7.1–7.2.
25 January 2006 (W): loops (Input.java). For Friday: read §7.1–7.6 and submit a peer evaluation for PS2. Don't forget PS2 for Thursday!
27 January 2006 (F): loops and arrays. PS3 distributed. For Monday: PS2 peer eval, PS3 question -1, and review §7.1–7.6.
30 January 2006 (M): more on loops and arrays (TicTacToe.java). For Wednesday: review Chapters 1–5, 7.
1 February 2006 (W): image processing (and arrays).
3 February 2006 (F): Exam #1.
6 February 2006 (M): midterm break!
8 February 2006 (W): midterm post mortem: lab5. For Friday: read §6.1–6.4. Don't forget PS3!
13 February 2006 (M): thinking about style, algorithms, and implementations : lab6. For Wednesday: start reading Chapter 8 (we'll cover most of that material on Friday).
15 February 2006 (W): Netflix implementation (Subscriber.java, Movie.java, Netflix.java, Tester.java). For Friday: read §8.1–8.5.
17 February 2006 (F): inheritance. For Monday: Read §9.5, §9.4; finish PS4(II).
20 February 2006 (M): searching. For Wednesday: reread §9.4, write binary search (submit via hsp in a directory called binarysearch; see announcements for details).
22 February 2006 (W): insertion sort, selection sort (ArrayUtils.java). For Friday: start to read Chapter 11.
24 February 2006 (F): sorting (applet for insertion/selection sort). For Monday: read §11.1–11.3.
27 February 2006 (M): recursion (factorials, fibonacci numbers, mergesort). For Wednesday: review Chapter 11. Don't forget PS5!
1 March 2006 (W): recursion (mergesort, palindromes: Recursion.java). For Friday: read §10.1–10.6.
3 March 2006 (F): file i/o, exceptions. For Monday: read §12.1–12.2.
6 March 2006 (M): file i/o (Dictionary.java), linked lists (Node.java, List.java, Tester.java). Don't forget PS6!
8 March 2006 (W): Exam #2.
10 March 2006 (F): Tetris (with donuts and coffee).
15 March 2006 (W), 5:00p: final project due!
Skeleton.java, from which you can get started.
Sun's Java documentation (another copy cached at mathcs.carleton).

References: §1
 §1
 §2
 §1
 §2
 §3
 §4
 §5
 §5
 §5
 §7
 §7
 §7
 §6
 §8
 §9
 §9
 §9
 §11
 §10
 §12