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.