Computer Science 23
schedule and notes


We plan to use all x-hour periods for demos, recitations, quizzes and project tutorials and lectures. Note, all x-hour periods will be in Sudikoff Lab 01. The last two weeks of the course are held over for group projects - there will be no lectures during this period but there will be group design reviews and code reviews. See the initial schedule below. Things may change.

Week 1  Jan 3-7 

 
Lab              Tuesday                  No lab

Lecture 1     Wednesday             Getting Started                           
                     
***Lab1  (Shell Commands)  goes out

Lecture 2     Friday      
             The Linux Shell and Commands


Week 2  Jan 10-14

Lecture 3     Monday                The Linux Shell and Commands (continued)    

***Lab2  (Shell Programming) goes out

x-Lecture 4  Tuesday                The Linux Shell and Commands (continued) 

Lecture 5    Wednesday            Shell Programming 

Lecture 6    Friday                    Shell Programming (continued)

Week 3  Jan 17-21

Holiday     Monday                  Martin Luther King Jr. day

 


***Lab3  (C Programming) goes out

x-Lecture 7  Tuesday                Introduction to C

Lecture 8    Wednesday            Introduction to C

Lecture 9    Friday                    Preprocessor, Functions, Data Structures, Arrays, and Strings 

-- 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  Jan 24-28

Lecture 10    Monday                Standard IO Lib and C/OS Interface

x-Lecture 11  Tuesday               Standard IO Lib and C/OS Interface

Lecture 12    Wednesday           Pesky Pointers

***Wednesday midnight Lab3 in
***Lab4  (Crawler) goes out

Lecture 13     Friday                  Pesky Pointers and Dynamic Memory Allocation

More chapters over the weekend read:

-- Chapter 11: Arrays, Address, Pointers
-- Chapter12: Structures
-- Chapter 10: Data files
   
-- Two gdb clinics-  This will help you with debugging your crawler segfaults!

Tutorial repeated at two sessions by Xiaochao
Please attend. Go to both if you like.

Lab               Friday       5-6 PM    notes-2010 and code

Lab               Saturday   5-6 PM    Repeat of the recitation.

Week  5 Jan 31 - Feb 4  

Lecture 14     Monday          Searching the Web and Design Methodology  

x-Lecture 15  Tuesday         TinySearch Engine: Crawler Design
                                                         
Lecture 16 Wednesday         TinySearch Engine:  Crawler Data Structure Design

Lecture 17 Friday                TinySearch Engine:  Getting Started Coding and Debugging the Crawler and The Make Utility
                                                  


***Sunday midnight  Lab4 in

*** Well done - this is a major milestone in the course. Now you have
*** the crawler under your belt lets look at the design of of the next component
*** of the TinySearch Engine


Week  6 Feb 7-11
  

Lecture 16    Monday              TinySearch Engine: Indexer Design      

***Lab5  (Indexer) goes out

x-Lecture   Tuesday                Pizza and Pointers by Xiaochao
                                                The CS23 famous pointers quiz  - so you think you know pointers, hey -  come puzzle the wonders of ptrs
                                                
pesky pointers quizz and solution

Lecture 17   Wednesday         Subversion Versions System (SVN) - source code management
                                                The Art of Debugging
                                               
Lecture 17 Friday                    Carnival holiday

***Sunday midnight  Lab5 in

Week  7 Feb14-18  

Lecture 18    Monday              The Art of Debugging     

***Lab6  (Query engine) goes out               

Lecture 19   Wednesday          The Art of Testing (and Writing Good Code)
                        
Lecture 20 Friday                    The Art of Testing: Unit Testing and  Building your very own C library

***Sunday midnight  Lab6 in

Week  8 Feb 21-25

Lecture 22    Monday               Socket Programming 
 
***Lab7 (Socket Programming) goes out                 

x-Lecture 23  Tuesday             Processes, threads, mutex

-- Projects kickoff
-- Announce groups members for the projects.

 ***Wednesday midnight  Lab7  in

****END OF LABS***PROJECTS START******

Lab            Wednesday         PROJECT: Garcia Tutorial Part I by Xiaochao  
        
Lab            Friday                 PROJECT: Garcia Tutorial Part II by Xiaochao  

Lab            Sat. 
5-7 PM        PROJECT: GTK Tutorial notes and  slides by Xiaochao      

Week  9 Feb 28 - March 4 

No class: project

-- 9-2 PM Monday  Design review.                      

Week  10  March 7-9

No class: project

-- 4-7 PM Monday     Code review. 

-- 4-6 PM Wednesday March 9 demo or die day.

-- Final project report deu Thursday March 10 midnight.

See the project page for the remaining schedule and for important milestones and what is needed for those
milestones.


-------------------------------------------------------------
Dartmouth Academic Calendar Winter 2011

January 4, Tuesday --    Winter term classes begin at 7:45 a.m.

January 17, Monday --    Martin Luther King Jr. day - classes moved to x-periods except 3A classes to 3B on Tuesday; laboratories meet as scheduled

February 11, Friday --    Carnival holiday (Classes moved to x-periods)

March 9, Wednesday --    Winter term classes end at 5:50 p.m.; start of Pre-Examination Break

March 12, Saturday --    Final examinations begin

March 16, Wednesday --    Final examinations end