Computer Science 23
schedule and notes
Week 1 March 25-28, 2008
Lecture 1 Wednesday, March 26 Getting Started
Lab
Thursday, March 27 Work through "Getting
Started", demo of Garcia robot
Lecture 2 Friday, March 28 The Linux Shell and Commands
Week 2 March 31-April 4, 2008
Lecture 3 Monday, March 31 The Linux Shell and Commands - Continued
Lecture 4 Wednesday, April 2 Shell Programming
Lab
Thursday, April 3 Complete shell programming lecture. Work on shell programming
excercises (Lab2)
Lecture 4* Friday, April 4 Shell Programming (continued)
*continued
Week 3 April 4-11, 2008
Lecture 5 Monday, April 4 Introduction to C
Lecture 6 Wednesday, April 6 Preprocessor, Functions, Data Structures, Arrays, and Strings
Lab(Lecture 6) Thursday, April 7 Continuation of lecture 6 (discussion on assignmnet)
Lecture 7 Friday, April 8 Standard IO Lib and C/OS Interface
-- I see the book as a reference that you can dig into for the details and examples but we will not work
-- through the book in the classic sense of a textbook. But I would like to point to a number of chapters
-- that if you read closely will help with your programming - I guarantee they will improve your software.
--
-- Please read these over the weekend:
--
-- Chapter 9: Strings
-- Chapter 10: Data files
--
-- A good understand of how to manage strings and files will be of great help to you. Please read these
-- chapters even if it is a cursory read (detailed read is better of course, but I know you are loaded).
-- Do your best to read as much as you can.
Week 4 April 14-18, 2008
Lecture 8 Monday, April 14 Pesky Pointers
Lecture 9 Wednesday, April 16 Pointers Continued and Dynamic Memory Allocation
Lab Thursday, April 17 The CS23 famous pointers quiz (ungraded - fun, come puzzle the wonders of ptrs)
2008 - Quiz and recitation on pesky pointers
2007 - Quiz and recitation on pesky pointers
-- OK now you have some C and Unix chops, we kick of the hard part of the course, the three lab series
-- on building TinySearch.
Lecture 10 Friday, April 18 Seacrching the Web
Week 5 April 21-25, 2008
Lecture 11 Monday, April 21 Design Methodology and the TinySearch Crawler
Lecture 12 Wednesday, April 23 TinySearch Crawler Design
Lab Thursday, April 24 Crawler Data Structure Design
Lecture 13 Friday, April 25 Crawler Data Structure Design (continued)
Week 6 April 28-May 2, 2008
Lecture 15 Monday, April 28 TinySearch Indexer Design
Lecture 14 Wednesday, April 30 The Make Utility, and the GNU Debugger
Lecture 16 Friday, May 2 The Art of Debugging
Week 7 May 5-9, 2008
Lecture 17 Monday, May 5 The Art of Testing
Announce groups members for the project which kicks off.
The fabulous teams with terms.
Lecture 18 Wednesday, May 7 Unit Testing
Lab
Thursday May 8 Garcia Tutorial by Wei Pan (Part I)
Handout baseline
project description
Lecture 19 Friday, May 9 Concurrent Versions System
Week 8 May 12-16, 2008
Lecture 20 Monday, May 12 Socket Programming
Lecture Wednesday, May 14 Socket Programming
Lab: Session #1: 12.00-12.50 pm Thursday May 15
Lab: Session #2: 3.00-5.00 pm Thursday May 15
Garcia Tutorial by Wei Pan (Part I)
Handout baseline
project description
Lecture 22 Friday, May 16 Processes, threads, mutex
Week 9 May 19-23, 2008
No class: project
Week 10 May 26-28, 2008
No class: project
Important Project Milestones
The following set of deadlines are important for the progress of the
project. Please note that you need to provide documentation for the
design and code reviews and the final project submission.
4-7 PM Wednesday May 21 design review.The
project review should include requirements, Design Spec
(inputs/outputs, data flow, data structures, pseudo-code) and
functional decomposition; How the project implementation breaks down
who is doing what. The project review material is due 10 PM Tuesday
February 20. Send tarball documentation to cs23@cs.dartmouth.edu
4-7 PM Monday May 26 code review. The
code review should include the Implementation Spec, unit tests and
whatever code is written up until the review point. The code review
material is due 12 PM Tuesday March 4. Send tarball documentation and
source tree to cs23@cs.dartmouth.edu
4-7 PM Wednesday May 28 demo or die day. Project presentation (design overview, lessons learnt, etc) and demo of project.
24.00 Hrs Wednesday May 28 project reports due.
The report written in latex includes description of the project, the
Design Spec, functional decomposition of the system, Implementation
Spec, lessons learnt. The appendix includes all code and unit tests.
All materials should be signed into the teams cvs project page. The PDF
of the project report should be sent to cs23@cs.dartmouth.edu