Codes written for EC-556 course