Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Summer 2006 Milestone 4
DUE: Wednesday July 12th (7/12) (according to class schedule)
After Milestone 3, your Digital Logic Workbench should be working. In this milestone, you will polish it, extend it a bit, and present it to others.
For Milestone 3, we didn't care how great everything looked or how smoothly it worked. For this milestone, we will. Polish your design. Your workbench should be a useable, good-looking application at the end of this one. It should be something that you would feel comfortable having someone create digital logic circuits with. It should be easy to create and organize simple circuits. You should be able to move gates around and not have them lose their connections.
We also ask that you add one more feature to your workbench, at your discretion. You can either implement one of the features below or pick your own. If you want to implement your own, you do have to get it approved by the instructor by Friday, July 7th.
- Gate Builder: So far, you have provided pre-established gates for the user to use. Logically, you can use these basic gates to design new gates. Logically, a NAND gate is just an AND gate and a NOT gate in series. For this extension, you should create a GUI that allows users to create new gates based upon the old ones. So, the user can visually define what a NAND gate looks like and define its inner workings by hooking an AND gate and a NOT gate in series.
- Zoomable Interface: Logic circuits can be quite large, easily filling more than one monitor. A functional system would have to allow for users to navigate a large design by zooming in and out and panning across a larger canvas.
- Support for Buses: While simple circuits are useful, it is sometimes useful to have more complex circuits, such as multiplexors, that take in many input (8, 16, or 32 bits) at a time. In those cases, it would be nice to have one bus wire that represents many single wires at once. In that way, a multiplexor can just take in one bus, rather than eight simple lines. For this extension, you would provide support for buses and some circuits that work with these buses.
- Karnaugh Maps: Support for creating Karnaugh maps and moving between Karnaugh maps and circuits.
- The Other M3 Extension: You can choose to do the other extension (e-Toys or oscilloscope) that you didn't do in Summer 2006 Milestone 3.
- Dealing with Indeterminate Feedback Circuits: Some circuits that employ feedback can go into an indeterminate state that continually oscillates. For this extension, be able to deal with those circuits in a way that doesn't slow down the user interface and that is useful for the user of your program.
One of the most important skills you need as a computer scientist is being able to present your work to others. So, we want you to practice that skill here. We have reserved the Baird Lab, room 107A, on July 14 (Friday) during class time. On that day, you will present your work to your fellow students, the instructors, and the TA. Impress us! To help you do that, you should create an interesting demonstration for us to view. You may want to have an already working circuit available to show to others, rather than building something new. Try to make your example compelling. It doesn't have to show off all your features, but it should be interesting. One good approach is to give a demonstration of the system as your ideal user should use the system. By the end of your demonstration, we should have a good sense of who could use your system and how they would use it.
You should be able to talk about your project. What did you do well? How did you implement that? One of the critical rules to presenting is to focus on your audience. In this case, those are your fellow students. They've worked on the same project for some time and they've probably made some quite different design choices from your group. So, they might actually be interested in what you did in order to compare it to what they did.
During the presentation time, you will be given review forms to fill out for three other teams. These forms will be collected at the end of the period and given to the groups the following week (anonymously). 10 percent of your Milestone 4 grade will be based on completing your reviews. Since each person has to complete these reviews, it is important that more than one person is able to run your demo, so that every team member has time to do reviews. It is required that you present for the entire period, so that others have the opportunity to review your project.
Check List of Things to Complete
- Turn in your code here.
- Update your unit tests.
- You may want to turn in an example circuit to show off your design; for this, you may want to use a project to supplement your change set.
- Update your UML Class Diagrams, CRC Cards / Scenarios, and User Description and turn them in (in class).
- Be sure to attend the presentation and review three other presentations.
- Implementation (55)
- Fully implements extension idea submitted - 40
- Good object-oriented style, comments, and readable code - 5
- Unit tests are updated to cover the extension - 10
- Documentation (15)
- Update CRC Cards / Scenarios - 5
- UML - 5
- Update User Description - 5
- Presentation (30)
- Attend and review 3 other presentations - 10 (this is an individual grade)
- Your animation is entertaining and/or informative - 10
- Your presentation demonstrates your workbench features - 10
- Bonus Points (20)
- A really good presentation, with an excellent demo circuit - 10
- An extra extension - 10
Post questions to the newsgroup.
Links to this Page