Skip to content

Instantly share code, notes, and snippets.

@jacklowrie
Last active April 3, 2023 03:17
Show Gist options
  • Save jacklowrie/68af8cf07bf27939db9b22f24b318c6b to your computer and use it in GitHub Desktop.
Save jacklowrie/68af8cf07bf27939db9b22f24b318c6b to your computer and use it in GitHub Desktop.
Project descriptions from my coursework at Tufts

Below are descriptions of the projects I worked on during my PostBac at Tufts. I can't publish the code publicly due to academic integrity concerns for current students, however I can share privately with prospective employers.

CS 121 Software Engineering

Concurrent MBTA Simulation

Java

  • Developed a multi-threaded simulation of a train system, with one thread per passenger and one thread per train.
  • Loaded simulation config from a JSON file specifying train lines and stops, and passenger journeys.
  • Coded a simulation verifier to ensure that, given an initial state and a log of events, the simulation follows all rules.

JRails

Java

A simple MVC framework for Java. For this assignment, only Java Standard Libraries were allowed. Models are saved to a file in csv format, while views allow a fluent api for generating html (for example, p("foo").p("bar") will generate two adjacent paragraphs). We also wrote the router ourselves, though the server was provided.

CS 40 Machine Structure & Assembly (C)

Universal Machine

co-author | C, GDB, Valgrind, KCachegrind, simulated Assembly (UM-ASM)

  • Teamed with a classmate to Design and pair-program an emulator for the Universal Machine, a 32 bit, 14 instruction machine with 8 registers.
  • Analyzed and fine-tuned the performance of the UM, reducing the execution time on a 2 billion instruction benchmark from 193.84ms to 10.75ms, resulting in a 94% improvement.
  • Coded a reverse-polish notation calculator in the UM’s instruction set to run on the UM.

Arith

co-author | C, Valgrind Developed a lossy image compressor and decompressor using bitpacking, quantization and discrete cosine transformations.

CS 15 Data Structures (C++)

MetroSim

C++

A CLI simulation of a single train station. MetroSim takes in a file of station names, as well as a file of passengers and their journeys, and runs a simulation while printing all events (in order) to a specified output file.

RPNCalc

C++

A CLI reverse-polish notation calculator. In addition to the usual calculator operations, it also handles files of commands with the file command, basic conditional logic with the if command, and "RStrings", which are sequences of commands rounded by braces. entering one will push the string onto the stack, while the command exec will execute the commands in the RString. For example, { 2 3 + { 5 5 + } exec + } will evaluate to 10 (once exec is called on it).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment