Homework for UCLA Computer Science 131, winter 2021

[131 home]

Submit your homeworks electronically on CCLE.

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 that you submit must be your own work; do not share your homework code with others, and do not look for previous solutions by using a search engine or visiting sites like GitHub. Please see Grading for more details. Consult a TA or the instructor if you have any questions about this policy.

Your programs 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 Java 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:55 on the specified date (i.e., five minutes before midnight).

Assignments and the schedule are tentative and may be adjusted as the quarter progresses.

due assignment
2021-01-15 Homework 1 (OCaml)
2021-01-28 Homework 2 (OCaml)
2021-02-05 Homework 3 (Java)
2021-02-19 Homework 4 (Prolog)
2021-02-26 Homework 5 (Scheme)
2021-03-08 Project (Python)
2021-03-12 Homework 6 (D, Odin or Zig) – no late submissions

The midterm is scheduled for Tuesday, 2021-02-09. It will be a two-hour online midterm, and must start no sooner than the start of lecture, and must end no later than 24 hours later. That is, you get at must 22 hours to start the midterm.

The final exam is scheduled with starting time as per the registrar and finishing time at most 24 hours later, with similar rules as the midterm except that it is three hours instead of two (and so must start it within 21 hours).

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