Computer Science 50
schedule and notes

We plan to use all x-hour periods for demos, recitations, quizzes and project tutorials and lectures. 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  March 30-April 3 

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

Lecture 2     Wednesday       
The Linux Shell and Commands

Lecture 3     Friday                The Linux Shell and Commands  

Week 2  April 6-10

Lecture 4  Monday                Shell Programming 

***Monday complete Lab 1 (not graded, no need to submit)

***Lab2  (Shell Programming) goes out

Lecture 5   Wednesday          Shell programming 

x-hour clinic                          Subversion Versions System (SVN)

Lecture 6    Friday                 Shell programming 

Week 3 
April 13-17
  

Lecture 7  Monday               Introduction to C

***Monday before 11.59 PM  Lab2 in

***Lab3  (C Programming) goes out

Lecture 8   Wednesday         Preprocessor, Functions, Data Structures, Arrays, and Strings 

Lecture  X  Thursday           Standard IO Lib and C/OS Interface

Lecture 9    Friday                C Functions for CS50 Hackers

-- 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 20-24

Lecture 10    Monday           C Functions for CS50 Hackers

***Tuesday before 11.59 PM  Lab3 in

Lecture 12    Wednesday      Searching the Web and Design Methodology

***Lab4  (Crawler) goes out

 Xhour          Thursday          Pesky Pointers 

Lecture 13     Friday              Debugging using gdb  and  Dynamic Memory Allocation

More chapters over the weekend read:

-- Chapter 11: Arrays, Address, Pointers
-- Chapter12: Structures
-- Chapter 10: Data files
   
Week  5 April 27-May 1    

Lecture 14      Monday           TinySearch Engine: Crawler Data Structure Design

Lecture 15     Wednesday       TinySearch Engine: Crawler Design
                                                       
Lecture 16     Thursday          TinySearch Engine:  Getting Started Coding and Debugging the Crawler

Lecture 17     Friday               The Make Utility


Week  6 May
4-8

Lecture 16    Monday              TinySearch Engine: Indexer Design      

***Monday midnight  Lab4 in

***Lab5  (Indexer) goes out

Lecture 17   Wednesday          The Art of Debugging
                                               
x-Lecture   Thursday              Pizza and Pointers by section leaders/ TA
                                               The CS50 famous pointers quiz  - so you think you know pointers, hey -  come puzzle the wonders of ptrs
                                              
pesky pointers quiz and solution
                                               
Lecture 17 Friday                    The Art of Testing (and Writing Good Code)


Week  7 May 11-15

Lecture 18    Monday              The Art of Testing: Unit Testing and Building your very own C library

***Monday midnight  Lab5 in

***Lab6  (Query engine) goes out               

Lecture 19   Wednesday         Socket Programming

x-Lecture   Thursday              Project demo (Rui Wang) in Lan 001 Sudikoff

Lecture 20 Friday                   Processes, threads, mutex          

***Sunday midnight  Lab6 in

****END OF LABS****

***Lab 7 goes out.

****PROJECTS START******
 
Week  8  May 18-22

Project    Monday                    PROJECT Tutorial

TBA                                       Talk by our very own Doug McIlroy     
                                               His beautful code example of sieve and slide
                                               Thank you Doug!

Friday   Each team will meet for a design/code review and partial demo with their section leaders
                     
Week  9 May 25-29
      
May 25, Monday -- Memorial Day

Week  10 June 1

4-6 PM Monday DEMO day

Tuesday
midnight final report and code port due in SVNs;

-------------------------------------------------------------
Dartmouth Academic Calendar Spring 2015

March 30, Monday -- Spring term classes begin
May 25, Monday -- Memorial Day
June 2, Tuesday -- Spring term classes end
June 3-4, Wednesday - Thursday -- Pre-Examination Break
June 5, Friday -- Final examination period begins
June 8, Monday -- Scheduled final examinations end
June 9, Tuesday -- Final Examination period ends
June 14, Sunday -- Commencement