Microprocessors and Music:
An Introduction to Computing Systems
Engineering 100 (section 700), Winter 2009
| Peter Chen | ![]() |
4640 CSE |
| Erik Hildinger | ![]() |
323 EPB |
| Kenneth Alfano | ![]() |
320 EPB |
| Paul Kominsky | ![]() |
318 EPB |
| Joshua Smith | ![]() |
2431 EECS |
| John Dydo | ![]() |
2431 EECS |
| Ben Kempke | ![]() |
2431 EECS |
| |
Monday | Tuesday | Wednesday | Thursday | Friday | |||
| 10:30-11 | office hours (Hildinger) 323 EPB |
|||||||
| 11-11:30 | office hours (Hildinger) 323 EPB |
|||||||
| 11:30-12 | ||||||||
| 12-12:30 | office hours (Alfano) 320 EPB |
|||||||
| 12:30-1 | lab 702 2431 EECS 2331 EECS |
|||||||
| 1-1:30 | lab 704 2431 EECS 2331 EECS |
|||||||
| 1:30-2 | lab 701 2431 EECS 2331 EECS |
|||||||
| 2-2:30 | lab 703 2431 EECS 2331 EECS |
|||||||
| 2:30-3 | lecture 1500 EECS |
lecture 1500 EECS |
||||||
| 3-3:30 | ||||||||
| 3:30-4 | ||||||||
| 4-4:30 | office hours (Chen) 4640 CSE |
|||||||
| 4:30-5 | ||||||||
| 5-5:30 | ||||||||
| 5:30-6 | office hours (Kominsky) 318 EPB |
office hours (Kominsky) 318 EPB |
||||||
| 6-6:30 | ||||||||
| 6:30-7 | ||||||||
The lab (2431 EECS) is used by ENGR 100 and EECS 270 and is open during many (but not all) hours of the week (see lab hours for 2431 EECS). You are welcome to use the lab any time it is open. ENGR 100 students have priority when the lab is staffed by an ENGR 100 instructor; EECS 270 students have priority when the lab is staffed by an EECS 270 instructor. GSIs are able to provide support only for students in the class they are teaching.
Engineering 100 (section 700) introduces first-year students to engineering in general and computer engineering in particular. Our goal is for you to experience the life cycle of a substantial engineering project. Over the course of the semester, your team will propose, design, build, and demonstrate a microprocessor-based music synthesizer.
To carry out this project, you will learn the basics of a broad sweep of computer engineering, including number representation, digital logic, CPU architecture, assembly-language programming, I/O devices, general-purpose computers, and digital audio. You will also learn aspects of technical communication that are integral to any real-world engineering project, such as working on teams, understanding your audience and purpose, organizing your ideas, structuring your presentation, writing memos and reports, and giving oral presentations. Finally, you will be exposed to how ethical issues can impact an engineering project and how engineering projects can impact society and the environment.
This course will emphasize a hands-on approach to learning. You will apply the concepts covered in class throughout the life cycle of your music synthesizer project. You will apply computer engineering concepts over seven laboratory sessions (culminating with a working microprocessor) and while building your music synthesizer. You will apply technical communication concepts as you write or present a memo, project proposal, progress report, and final report. You will apply concepts on teamwork as you work in a team of students to propose, design, build, and demonstrate your music synthesizer.
Students must have prior programming experience to enroll in this course. Specifically, you should have written programs that used variables, arithmetic operations, if-then-else statements, loops, functions, and arrays. You may have gained this experience through classes in high school or college (e.g., ENGR 101), or you may have learned programming on your own. You should be generally comfortable with using computers.
We will post all assignments, lecture notes, and supplementary readings on the course web page, which is http://www.eecs.umich.edu/~pmchen/engr100/.
The required textbook for this course is A Practical Guide to Technical Reports and Presentations for Scientists, Engineers, and Students, by Pauline Bary-Khan, Elizabeth Hildinger, and Erik Hildinger (Pearson Custom Publishing, ISBN 978-0-555-01787-6).
Students are expected to work diligently on team assignments to the benefit of their entire team. All team members should be familiar with all aspects of an assignment, irrespective of their role. We expect all team members to contribute their fair share, and we expect to give the same assignment grade to all members of a team.
Team members will evaluate periodically the contributions of other team members. Members who contribute less than their share may receive a lower grade on the project; non-contributing members will receive a zero.
Managing team dynamics and using each team member's time and talents effectively can be as difficult as solving the project. If there are problems with your team, please see us as soon as possible. Be open and candid with your team about problems early on so that your team can address these issues before it's too late.
Your interactions with your teammates should be honest, respectful, and considerate. Disagreements should focus on the technical problem rather than the people who are disagreeing. Do not engage or permit others to engage in personal harassment. Consider the safety of your teammates when selecting group meeting times and locations.
Most labs will be turned in by demonstrating your circuit or program to the GSI during your lab section. You must demonstrate your work by the end of your lab section, then submit your work through a web form.
Assignments that require you to submit a document (e.g., written report, oral presentation file, homework answers) will be submitted through a web form. Submissions are due at 6 pm but can be submitted until exactly 11:59 pm. In case of multiple submissions, your last submission will count as the official one.
Sometimes unexpected events (e.g., illness) make it difficult to complete an assignment on time. To deal with these events, each individual will have a total of 3 late days that can be used throughout the semester. These late days should only be used to deal with unexpected problems such as illness. They should not be used simply to start late on an assignment or because you are having difficulty completing the assignment. Once late days are used up, assignments received after the due date will receive a zero. For most assignments, weekend days are counted in the same way as weekdays (e.g., if the assignment is due Friday and you submit it Sunday, it's two days late). For in-lab demonstrations, only weekdays count (e.g., demonstrating a lab on Monday instead of the preceding Friday counts as one day late).
For team assignments, submitting the assignment late uses late days for each of the team members. E.g., turning in the final report two days late counts as two late days for each member. Thus, the number of late days available to your team is effectively the minimum of the late days of the members.
No late days may be used on exams, oral presentations, or the final project. You will receive a zero for a missed exam/presentation except in cases of documented medical or personal emergency. If you anticipate a conflict with an exam/presentation time, talk with an instructor at least one month before the exam/presentation. The exam/presentation dates are given at the beginning of the semester so you can avoid scheduling other commitments on these days. Outside commitments are not considered a valid reason for missing an exam/presentation.
If a family/personal emergency causes you to miss a significant number of days in the semester, please see an instructor to decide the best course of action. To request an extension, you must discuss your situation with an instructor before the deadline and provide written documentation.
Please contact an instructor at the beginning of the semester if you have a disability that might interfere with your ability to participate in class, turn in assignments on time or in the form requested, or take exams in the time allotted.
All assignments are to be conducted according to the College of Engineering Honor Code. Violation will result in a zero on the assignment or exam in question and initiation of the formal procedure of the Engineering Honor Council.
The main tenet of the Honor Code is that "It is dishonorable for students to receive credit for work that is not the result of their own efforts." Among other things, the Honor Code forbids plagiarism. To plagiarize is to use another person's ideas, writings, etc. as one's own, without crediting the other person. Thus, you must credit information obtained from other sources, including web sites, e-mail or other written communications, conversations, articles, books, etc..
On team assignments, the co-authors listed on the submission should include only those team members who have contributed their fair share to the assignment. If you allow a teammate's name to appear on an assignment to which he/she has not contributed fairly, then you are violating the Honor Code.
You may consult with other students to understand an assignment, but you may not consult with other students to help create the solution or document for an assignment. You may not use work done by prior students of the class. On team assignments, you may consult freely with your teammates.
Your overall course grade will be based on the total number of points earned on all assignments. The table below summarizes the assignments and their point values (TC represents a technical communication assignment). In introductory courses in the College of Engineering, the average grade is generally a B-. We reserve the right to increase or decrease the average grade of the class based on how well the class as a whole is performing.
| Assignment | Individual / team | Description | Points (total 1000) |
|---|---|---|---|
| Lab 1 | individual | Intro to DE2/Quartus | 10 |
| TC 1 | individual | Introductory essay | 5 |
| Lab 2 | individual | Combinational logic | 20 |
| Lab 3 | individual | Registers and memory | 20 |
| TC 2 | individual | Memo about music synthesizer | 20 |
| Lab 4 | team | Hardware encryptor/decryptor | 40 |
| Lab 5 | individual | E100 part 1 | 20 |
| Lab 6 | team | E100 part 2 | 40 |
| TC 3 | individual | Project proposal | 40 |
| Midterm exam | individual | Midterm exam | 150 |
| Lab 7 | individual | I/O devices | 50 |
| TC 4 | team | Oral project proposal | 35 |
| TC 5 | team | Progress report | 30 |
| TC 6 | team | Oral project presentation | 60 |
| Lab 8 | team | Music synthesizer | 180 |
| TC 7 | team | Final report | 80 |
| Final exam | individual | Final exam | 200 |
| Week | Date | Type | Topic | Assigned | Due |
|---|---|---|---|---|---|
| 1 | Wed Jan 7 | Lec | Course overview | TC 1 | |
| Thu Jan 8 Fri Jan 9 |
Disc | Memo review | |
|
|
| Lab | Data representation | Lab 1 | |
||
| 2 | Mon Jan 12 | Lec | CE: Combinational logic | ||
| Wed Jan 14 | Lec | TC: Intro to technical communications |
TC 2 TC book: Intro, Ch. 1-2 |
TC 1 | |
| Thu Jan 15 Fri Jan 16 |
Disc | Teamwork | |
||
| Lab | Intro to DE2/Quartus | Lab 2 | Lab 1 | ||
| 3 | Mon Jan 19 | Martin Luther King, Jr. Day -- no class | |||
| Wed Jan 21 | Lec | CE: Connecting components; sequential logic | |
|
|
| Thu Jan 22 Fri Jan 23 | Disc | Memoranda | |||
| Lab | Combinational logic | Lab 3 | Lab 2 | ||
| 4 | Mon Jan 26 | Lec | CE: Finite-state machines | |
TC 2 |
| Wed Jan 28 | Lec | CE: Implementing algorithms in hardware | |
|
|
| Thu Jan 29 Fri Jan 30 |
Disc | Working in teams | |||
| Lab | Registers and memory | Lab 4 | Lab 3 | ||
| 5 | Mon Feb 2 | Lec | CE: Stored-program computers | TC 3 | |
| Wed Feb 4 | Lec | TC: Clear thinking: persuasion, proposals | |
|
|
| Thu Feb 5 Fri Feb 6 |
Disc | Project planning | |||
| Lab | Hardware encryptor/decryptor | Lab 5 | Lab 4 | ||
| 6 | Mon Feb 9 | Lec | CE: E100 instruction set | |
|
| Wed Feb 11 | Lec | CE: E100 implementation | |
Lab 5 | |
| Thu Feb 12 Fri Feb 13 |
Disc | Outlining | |||
| Lab | E100 part 1 | Lab 6 | |
||
| 7 | Mon Feb 16 | Lec | CE: Assembly-language programming | |
|
| Wed Feb 18 | Lec | CE: I/O devices | TC 4 TC book: Ch. 8 |
TC 3 | |
| Thu Feb 19 Fri Feb 20 |
Disc | Teamwork and running meetings | |||
| Lab | E100 part 2 | Lab 7 |
Lab 6 | ||
| 8 | Mon Mar 2 | Lec | TC: Oral presentations; teamwork | |
Project meetings |
| Wed Mar 4 | Lec | Midterm exam | |
|
|
| Thu Mar 5 Fri Mar 6 |
Disc | Visuals | |||
| Lab | I/O devices | Lab 8 | Lab 7 | ||
| 9 | Mon Mar 9 | Lec | Midterm debrief; statistics | TC book: Ch. 3 | |
| Wed Mar 11 | Rehearsals of oral project proposals | ||||
| Thu Mar 12 Fri Mar 13 |
Lab | Oral project proposals | Peer evaluations | TC 4 | |
| 10 | Mon Mar 16 | Lec | TC: Progress reports | TC 5 | Peer evaluations |
| Wed Mar 18 | Lec | TC: Organization and plain language | TC book: Appendix A | |
|
| Thu Mar 19 Fri Mar 20 |
Lab | Project work | |
|
|
| 11 | Mon Mar 23 | Lec | CE: Implementing digital logic | Ethics presentations | |
| Wed Mar 25 | Lec | CE: General-purpose computers | |
|
|
| Thu Mar 26 Fri Mar 27 |
Lab | Project work | |
|
|
| 12 | Mon Mar 30 | Lec | TC: Visuals | TC 6 TC 7 |
TC 5 |
| Wed Apr 1 | Lec | TC: Final reports | TC book: Ch. 6 | |
|
| Thu Apr 2 Fri Apr 3 |
Lab | Project work | |||
| 13 | Mon Apr 6 | Lec | Ethics and environment | |
Ethics presentations |
| Wed Apr 8 | Lec | Organize mock oral presentation | |
|
|
| Thu Apr 9 Fri Apr 10 |
Lab | Project work | |||
| 14 | Mon Apr 13 | Lec | CE: Computer science and engineering preview | |
|
| Wed Apr 15 | Rehearsals of oral project presentations | ||||
| Thu Apr 16 Fri Apr 17 |
Lab | Oral project presentations | |
TC 6 Lab 8 |
|
| 15 | Mon Apr 20 | Lec | Project showcase | Peer evaluations | TC 7 Peer evaluations |
| 16 | Tue Apr 28 | Final exam (10:30 am - 12:30 pm) | |||