Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Brandeis Uniersity COSI 12b Assignments

This repository contains Java programming assignments suitable for second semester undergraduate computer science students. Each problem (except the Twitter problem) comes with a set of unit tests that have fairly good coverege of possible errors. It is recommened that instructors release these unit tests to students and invent another, hidden set of tests to ensure that students do not over-fit the given tests.

Assignment listing (E)asy, (M)edium, (H)ard

  1. (M) PA1: warmup with some "balancing" problems, like checking parenthesis
  2. (E) PA2: Game of 15. Basic interaction with other people's code / libraries
  3. (E) PA3: leaky abstractions, string injection, and timing attacks
  4. (M) PA4: Statistics. Covers interfaces, abstract classes, and mathematical reductions and mappings
  5. (H) PA5: Routing. Use Map and List to represent a graph and execute common graph algorithms on them.
  6. (E) PA6: make a word cloud of tweets from Twitter using the Twitter API
  7. (M) PA7: make a very basic question-answering system using "is-a" relations
  8. (M) PA8: learn data compression techniques (APIs, data manipulation) competitively
  9. (E) PA9: model a library system using object oriented approaches and save the resulting representation to JSON.
  10. (H) PA10: compilation and interpretation. Build an interpreter and a compiler for a simple arithmetic expression language

This order is the order that assignments were given out in Spring 2016 at Brandeis. It would probably make sense to swap PA7 and PA5, as PA5 was a bit more difficult.

To "compile" any given assignment, just run make in the appropriate directory. This requires Pandoc.

Terms and Conditions

Creative Commons License
Cosi12b Assignments by Ryan Marcus is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.


Programming assignments suitable for 2nd semester undergraduates






No packages published