Skip to content

snknikolov/mit-6.005

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

MIT 6.005 (Elements of Software Construction)

My solutions to MIT's 6.005 assignments.

Pi poetry ✔️

Find English words in the digits of Pi.

Midi piano ✔️

Implement a simple midi keyboard - play notes, change instruments, change octaves and record/play recording.

Calculator parser ✔️

Implement a calculator parser.

  1. Define a grammar:
    Symbols:
+, -, *, /  
scalar, in (inches), pt (point)  
( )  

Grammar:

calculator ::= (regular | parenthesised)+  
parenthesised = OPEN_P (regular | parenthesised)+ CLOSE_P  
regular ::= (unit operator unit)+  
unit ::= scalar | IN | PT  
operator ::= PLUS | MINUS | MUL | DIV  
scalar ::= [\d]  
  1. Implement the lexer to tokenize the input.
  2. Implement the parser to evaluate the expressions.
  3. Put it all together.
Build a Sudoku solver with SAT ✔️

Implement the DPLL algorithm and use it to solve sudoku puzzles.

Finding prime factors with networking ✔️

Make a server to do prime factor searching. Create a client that makes requests to servers it is connected to. The client's connected servers must perform its operations concurrently.

Multiplayer minesweeper ✔️

Implement a server and thread-safe data structure for playing a multiplayer variant of "Minesweeper".

Jotto client GUI ✔️

Make a simple Jotto playing client that communicates with a server.

About

MIT 6.005 (Elements of Software Construction)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published