Assignments for UCLA Computer Science 35L, Winter 2012

Assignments are divided into two parts: laboratory exercises and homeworks. After an assignment is due, you may be asked to give a brief presentation to the class about your lab and/or homework, which will be a separate part of your grade.

Submit your assignments electronically on CourseWeb @ HSSEAS.

Laboratory exercises are expected to be done in the lab session, that is, the week before the assignment is due. You are expected to take lab notes in the form of a log of your actions that contains enough information so that others can reproduce your work.

You are expected to do your homeworks by yourself. You can share ideas and discuss general principles with others in the class, but all the code and writings that you submit must be your own work; do not share them with others. Please see Grading for more details. Consult a TA or the instructor if you have any questions about this policy.

Typically, labs and homeworks are done on the lab computer, or on GNU/Linux based systems running on your own computer. In some cases, though, they are done on the SEASnet GNU/Linux servers. In these cases, take care to not run commands like su and sudo that would make it appear to the system administrators that you might be trying to break into the system.

Any programs that you write must behave robustly. Among other things, this means they must avoid arbitrary limits on the length or number of any data structure, including symbols, strings, and line length. It is OK to impose a non-arbitrary limit, e.g., because your computer runs out of memory or because of the limited range of the C int type, but it is not OK to impose an arbitrary limit, e.g., a limit of at most 255 characters in a symbol.

Please stick to coding styles used in the course material rather than inventing your own style, as this saves work for the grader.

Assignments are due by 23:59:59 on the specified date (i.e., one second before midnight at the end of the day).

Assignments and their schedule are tentative. Before the week that the assignment is to be done, it might change. Any such changes will be noted in the news.

due assignment
2012-01-13 1. Getting to know your system
2012-01-20 2. Shell scripting
2012-01-27 3. Modifying programs
2012-02-03 4. Change management
2012-02-10 5. C programming and debugging
2012-02-17 6. System call programming and debugging
2012-02-24 7. SSH setup and use in applications
2012-03-02 8. Buffer overruns
2012-03-09 9. Multithreaded performance
2012-03-16 10. Research and development in computing (This is the last day to submit assignments.)

Please see the grading policy for how assignments are treated when late.


© 1999, 2003–2012 Paul Eggert. See copying rules.
$Id: assign.html,v 1.76 2012/03/01 18:27:40 eggert Exp $