Computer Science 23
lab assignments 

Lab                                              Assigned Date               Dute Date
  
Lab1 - Shell Commands                           Wednesday, April 1                    Not graded but complete  Sunday April 5

Lab2 - Shell Programming                        Monday April  6                      Sunday, April  12  (12 midnight 

Lab3 - C Programming                             Monday,  April  13                    Sunday, April  19  (12 midnight

Lab4 - Crawler                                         Monday,  April  20                    Sunday, April  28  (12 midnight

Lab5 - Indexer
                                          Monday April  27                    Sunday,  May 3  (12 midnight)

Lab6 - Query Engine                                Monday, May 4                         Tuesday,  May 12  (12 midnight

-- note, longer time given to Lab6.

Lab7 - Socket Programming                     Wednesday, May 13                   Sunday,  May 17 (12 midnight

-- note, shorter time give for Lab7.

This is an initial schedule that might change. You will be informed in advance if that is the case. All assignments
are due at 12 midnight.

Typically, labs are given out on Monday at class and are due midnight Sunday. There are a couple of exceptions
with Lab6 (which is hard) and Lab7 (which challenging but a breeze in comparison to Lab6). There are TA hours
on Wednesday, Saturday, and Sunday in support of these assignments - we provide a lot of support at the weekend.
You can mail the TA anytime - he is mostly always around and available.

Labs 4-6 are the TinySearchEngine set. You will code the crawler and indexer.
We will design these components in class together. You will do the design for the query engine and code it. Then
you will put  all three components together and you'll have your TinySearchEngine. Now you are
ready to take on google! This is an extremely cool set of assignments. It is, however, very
challenging but you will learn how to design, implement, test and debug a complex software system.
You will gain significant coding chops doing this. It will be painful but we promise you will get there.

You will write a lot of C code in this course: approximately 500 lines of bash scripts and 3000 lines of C
for the assignments and 1000 lines for the joint project - these are counts of C code, excluding comments.
Note, there is some code reuse/ refactoring between the TinySearchEngine set of labs.

Lab 2 (Shell): 
445
Lab 3 (C): 387
Lab 4 (Crawler): 692
Lab 5 (Indexer): 1002
Lab 6 (Query Engine): 587
Lab 7 (Sockets): 389
Project: 1063


One more item before you get your cs23 hackers medal:

Embedded linux programming, network programming - now for robots ..... and project time.

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