This semester you will be designing and implementing a project of your own choosing, with the approval of the Design Review Board, or DRB (comprised of the TA's and the instructor). So that you have enough time towards the end of the semester to complete your project, we will begin the project in the third week of classes and some of the preliminary project work will be completed in parallel with your other hardware labs. However, you will not be required to implement any hardware until you have completed the first seven hardware experiments. To help you pace your project, to help the DRB give you feedback along the way, and to have enough data to be able to grade your work fairly, the DRB has established a number of design checkpoints that you must adhere to. If you do not, it is unlikely you will be able to complete your design and you will lose quite a few valuable project points as well.
Towards the end of the semester (after the 10th week) you must assume (1) the laboratory will be overcrowded when you need to use it, (2) you will not be able to get access to a PC or lab station when you need it, and (3) everything takes two to three times as long as you thought.
Except for the first checkpoint, each of the checkpoints are to be handed directly to your project TA at or before the time shown below. Your lab TA will look through your first checkpoint. The point is not so much to grade you on your checkpoints, but to provide you with a feedback mechanism so you will avoid disastrous dead ends. Maintain an ACCO binder or notebook within which you will keep the successive checkpoints and design notes, or a Web site. The signed checkpoints will be handed in as appendices to the projectís final report at the end of the semester. The checkpoints you will be handing in from here on will form a considerable part of your final project grade, so please donít lose them. Anything worth points is worth doing right. Details are more important than being absolutely correct. We expect you to make mistakes and to use the opportunity of TA or instructor feedback to improve your designs.
This semester, checkpoints can be submitted to your project TA in hard copy form, or a URL can be mailed to the head TA, Philip Chong, firstname.lastname@example.org, before 5pm on the date indicated. If you mail the URL, make sure to include the phrase CS150 CHECKPOINT (all caps) in the subject line of the mail or Philip will not consider your submission. For the first checkpoint, mail the URL to Philip or submit the hard copy in the homework collection box outside the Lab.
Checkpoint #1: Due in the box (or by e-mail) by 5pm, 7th Feb: Design Teams & Preliminary Project Plan.
By the third week you should have chosen your design team partners. Design teams can be two-four people. Not more, not less. In addition, you should have decided the general problem your project will address and produced an initial cut at the overall architecture of your design. Your should submit a preliminary project plan that contains the following major sections:
(1) Title of your project (e.g. Intelligent Refrigerator)
(2) Design Team: Name(s) and Lab Sections of you and your project partner(s).
(3) Problem Description: Brief summary of the problem you are trying to solve (1-2 paragraphs)
(4) Proposed Solution: Overall description of your proposed approach to solving the problem (1-4 pages)
(5) Electronics: Describe the electronics that you plan to build as the design and implementation part of your project. In particular, list the following:
(a) The inputs to your electronics: The names of the variables, the values they can take (e.g. "two bits representing north, south, east, and west," or "an 8-bit unsigned integer.") and the times at which the variables will be sampled, or changed (e.g. "while the refrigerator door is open (Open=1), the lasers will turn on (LasersOn = 1), and sensors (Sens1, Sens2) will receive barcode values.")
(b) The outputs from your electronics: List all variables that will be computed by your electronics as outputs, the values they can take, and when they will be valid.
(c) Scenarios of use: In a few paragraphs, describe in words a few scenarios of use for your system and electronics. For example:
"Scenario 1: Checking New Food. When the door is opened (Open=1), the scanning lasers are activated (LasersOn=1) and the sensors (Sens1, Sens2) are checked every 20ms (determined by the system clock) for a valid bar code value. The sensors threshold, latch, and serially load a shift-register. Combinational logic checks the value in the register for a valid bar code and once one is detected it is latched into another register. The date and type of food is extracted. The food item is checked against the inventory list. If present, the user is probably removing it (to eat) and so it is deleted. Otherwise, it is added to the inventory list. Once the..."
"Scenario 2: Setting the Refrigerator Clock. When the power is turned on, the clock is set to flash "12:00AM" just like the VCR's do. The user..."
(6) A brief summary of the details yet to be determined (e.g. "We must decide how to implement the rain counter. We could use a microprocessor or a programmable logic chip. The choice will depend on how we decide to implement the wind speed measurement electronics...")
Checkpoint #2, Due by 5pm, Friday 21st February: Final Project Plan.
By now, your initial project will have been modified and/or approved and you have discussed it with one or more lab. TA's or with the instructor. You will submit a revised and refined version of you preliminary specification for final approval and sign-off. This report should be of the same general form as the preliminary proposal but in more detail in all areas. You have checked the feasibility of your initial ideas, refined or changed them as needed, and determined availability of the major parts you will need.
Along with all of the major sections described under Checkpoint 1 above, you should also include the following:
(7) Preliminary Parts List . Be as detailed as you can so the Electronics Shop can order additional parts we may not have. Of course, you cannot be very accurate here yet so don't worry if you are not.
(8) Risk Assessment: List all the things that you can think of that could go wrong with your project, all the aspects you must consider to be sure you will be able to demonstrate a working project by 5th May. Wherever possible, describe how you intend to minimize that risk and deliver a working system on time.
Checkpoint #3, Due by 5pm, Friday 7th March: Project Evaluation Plan.
By now you should have focused on the electronics of your design and should submit the following:
(9) Block Diagrams: A block diagram of you system with all block inputs and outputs specified in detail (both values they can take and when they will be valid.)
(10) Initial State Diagrams: State transition diagram(s) (or table(s)) for any sequential machines in your system, including detailed clocking.
(11) Software Estimates: Description and estimated sizes (lines of code, languages) for any software you plan to use in the design.
(12) Initial Schematics: Detailed schematics for all combinational and sequential logic used in the design.
(13) Testing Plan: Provide a detailed description of how you propose to demonstrate that your project is working correctly. This will become a contract between you and your TA(s), so be as detailed and as clear as possible so there are no misunderstandings later. Specify all inputs and outputs, all sequences. Include error sequences to demonstrate how your project detects and handles false inputs and strange situations. Break your testing and evaluation plan into two parts:
(a) Evaluation for Maximum Normal Grade: If you complete and demonstrate all of these aspects without error and without misunderstanding, you would expect a full grade of 100 points for the project.
(b) Evaluation for Bonus Points: If you complete and demonstrate all of these additional capabilities without error and without misunderstanding, you would expect a full 10 bonus points for the project.
(14) Final Parts List: A final, detailed parts list for all of the components you believe you will need to complete the project and where you can obtain them. It should be clear from this list that you do not expect problems with parts acquisition. If you have any questions, check with your TA's and/or the Electronics Shop in Cory Hall.
17thó21st March: Begin Project in Laboratory
By now you should have all the parts you need and should begin implementing your project in the laboratory. It is essential you do the work in the laboratory and work with your project TA. Your TA will be assessing your progress along the way and getting a subjective feel for how you are doing, who in your group is doing the work, etc.
Checkpoint #4, Due by 5pm, Friday 4th April: Final Schematics and Implementation
By now you should have almost finished implementing the electronics of your design and should submit the following:
(15) Final Block Diagrams: A final block diagram of you system with all block inputs and outputs specified in detail (both values they can take and when they will be valid.)
(16) Final State Diagrams: State transition diagram(s) (or table(s)) for any sequential machines in your system, including detailed clocking. If they are identical to those submitted earlier (in (10)), simply refer to the previous submission.
(11) Software Listings: A detailed description of all software you are using and copy of the actual code you have written to date for any software you are using in the design.
(12) Final Schematics: Detailed final schematics for all combinational and sequential logic used in the design, including the logic implemented by any programmable elements (FPGAs, PLDs, EPROMs, etc.)
By 5pm, Friday 9th May: Final Project Demonstration Completed and Final Report Due
The final project must be completed and demonstrated to your TA by Friday, 9th May, 5pm. Your project report must be submitted to the TAs by Tuesday, May 13th, 5pm. If you demonstrate your project on or before Friday, May 2nd, 5pm and submit your final report on or before Tuesday, May 6th, 5pm you will receive a 10 point (~10%) bonus for completing the work early.
Please note that no late reports will be accepted or graded and no incompletes will be assigned except for serious, documented medical reasons. No exceptions, so please do not ask! Write up what you have, but of course, an incomplete design will not receive as good a grade as a completed one. The best grades will be given to project designs that are complete and have been demonstrated. If you can demonstrate a working simulation of your design, then you will be able to receive some partial credit on the project. An ambitious design is worthless if you do not complete it, or do not have sufficient confidence that it has a chance of working. The format for the final report will be provided later in the semester.
Good people have good ideas. It is important that you participate in open discussion of your ideas with your colleagues and classmates. However, sometimes people "borrow" ideas from others without citing the source and so taking credit for someone else's work. If you have a good idea and you want to get credit for it you must protect it. The Patent, Copyright, and Trade Secret laws have been established to attempt to provide such protection. In CS150 we will implement our own patent process. At the end of this document is an example of a patent application form. If you have an idea and you want to protect it, you must fill out such a form (extras available in the laboratory) and submit it to the patent office (Room 520 Cory Hall) where the patent administrator (Mr. Justin Adler-Swanberg) will date and time stamp your application. Patent applications will be discussed and approved/rejected by the TA's and instructor at their weekly meeting. Approved patents will be posted at the lab so that others can use the ideas if they wish. However, the inventors will receive most of the credit for the idea.