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