ECE 3574 Fall 2018 - Semester Project

Each semester I develop a project that requires you to use many of the design patterns and APIs discussed in class. This is where much of your learning occurs. The project for this semester is a notebook-style interpreter of a language we will call Plot Script. It will allow the user to enter blocks of code that is displayed with interleaved output such as numerical results and plots -- similar to, but much less complex than, systems like Mathematica and Jupyter. The heart of the application is the kernel, a tree-walking interpreter that accepts input in Plot Script and produces output resulting from execution of the script.

You will be given starter code that implements a base version of Plot Script, documented here. You are free to modify this code however needed or even discard it all together. As the semester progresses you will gradually modify and extend it through a series of milestones.

The milestones will be used for grading (see the syllabus) and thus are motivation to not procrastinate. They correspond roughly to the schedule of material that we will be covering in class with due dates spaced throughout the semester. Your project final version will be due on December 5th and evaluated based on the milestone 4 functionality.

Your progress will be tracked through a version control system (see meeting 2). It is important that you complete each milestone, even if after the due date, as they build on one another and you will not be given solutions to earlier milestones.

Grading

There are 45 course percentage points allocated to the final project.

Correctness Tests 25 points
Testing 10 points
Code Quality 5 points
Good Development Practices 5 points

Grading Notes: