The final project consists of finishing our work on the Pippin Simulator for the semster. I have provided the final version of the Pippin Simulator, as well as a Graphical User Interface to run that simulator. At the beginning of the project, there is only one major missing piece - an Assembler to convert man readable Pippin Assembly files into Pippin Executable files that contain the binary representation of Pippin programs that can be run on the Pippin Simulator.
The final project will be divided into two parts. The first part consists of writing the Java code to implement an Assembler for Pippin. You will have two weeks to work on this project in teams. The second part consists of providing an enhancement to the Graphical User Interface provided with the Pippin simulator. You will again have two weeks to work on the second part of the project with your team.
During the finals week, I will also schedule 5 minute oral exams with each student. One of the goals of the oral exam is to make sure that you understand all of the work your team has done on the project.
The following table summarizes the final project parts
| Part | Topic | Invitation | Value | Due Date |
|---|---|---|---|---|
| Part 1 | Assembler | Invitation | 50 points | May 12 |
| Part 2 | GUI enhancement | Invitation | 30 points | May 26 |
| Oral | Part 1 review | N/A | 20 points | May 12-26 |
The project may be done in teams of 1, 2, or 3 students.
The team creator should accept the Project part 1 invitation first. When accepting the invitation, GitHub Classroom will ask you if you want to join an existing team, or create a new team. The creator should create a new team, using the agreed team name.
Once the creator has successfully accepted the invitation, the remaining team members can accept the project 1 invitation. The remaining members should join an existing team, and select the team name.
I realize this is a difficult time of the semester, which lots of papers due and exams to study for and travel plans to organize. The Project Part 1 is due on Wednesday, May 12, 2021 at 11:59 PM. I am willing to be somewhat flexible with this deadline, but this flexibility comes with some responsibility on your part.
The project part 2 invitation is available, as of Sunday, May 9. You may start working on part 2 of the project whenever you would like to, but it makes most sense to start working on the project part 2 after submitting your part 1 results.
You will be working on part 2 of the project with the same teams you used for part 1 of the project. A new proj02 repository will be created for your team when the first member of your team accepts the GitHub proj02 invitation. Other team members will get access to that repository when they accept the invitation. All team members must accept the invitation.
Please feel free to ask questions about part 2 of the project during office hours, durling lab sessions, via email, or on Piazza, or any other established communication mechanism.
The second part of the project is due at the very end of the semester, so no extensions can be allowed for the project part 2.