E15: Fundamentals of Digital Systems
Fall 2011 Labs
Lab 1 - Old school digital design
Lab 2 - Combinational logic: traffic light and seven segment display
Lab 3 - Sequential logic: traffic light redux
Lab 4 - C Programming for Real World Interfacing
This lab was developed by Prof. Erik Cheever.
Final Project - C Programming
The last few weeks of E15 you will be working on a C
programming project of your own choosing.
Guidelines
- The scope of the project should be something that is
equivalent to about 1.5 to 2 regular labs, but not too
complicated.
- You may work alone or in groups of up to four students.
- You may work with anybody in the class (i.e., you are
not restricted to people in your lab period).
- You may pick a topic from the list below, or choose your
own. All project topics not on the list must be approved
by Professor Moreshet or Professor Zucker.
Deadlines
- Friday, November 18, 4:30 PM: Discuss a project idea
with Professor Moreshet or Professor Zucker, and get it
approved verbally.
- Monday, November 21, 9:30 AM: Project proposal is
due. This is a one to three paragraph description of the
project. It should be sent via email to Professor
Zucker.
- Wednesday, December 14, 4:30 PM: Project report is due
online (you will receive notification about a Swatfiles
dropbox a few days prior). See below for details about
the report.
Project Report
We are not looking for a full formal lab report, but your
report shuld include at least the following:
- Abstract - a single paragraph describing what you
did.
- Introduction and background - What is the goal of
your project? Why is it interesting? What technical
details does your reader need to understand what you
did?
- Project design - How did you implement your
project? Start with a high-level description, and work up
to a full description that would explain to one of your
peers, for instance, how the project works. Including
snippets of "tricky" source code here would be
useful, but you shouldn't list your entire program.
- Results and conclusion - How well did the project work?
Did you achieve your goals? What would you do next if you had
time?
- Acknowledgements - Which group members did what?
Separately, you should also upload the entire source code for your
project, as well as any example input or output that would help
illustrate your results
Example Project Ideas
- Learn how to control the LCD character display on the
E15 I/O Board screen and use the A/D converter with the
MSP430. See here
for details.
- Implement a Connect Four PC game for two players that
draws the board using ASCII characters. Advanced
programmers: create a computer player so a single player can
play versus the computer. Starter code is here.
- Write a PC program implementing the Quine-McCluskey
algorithm to simplify arbitrary logical expressions with any
number of variables. Your program should take as input
either a sum of minterms or a product of maxterms. Advanced
programmers: your program should also take as input an
arbitrary Boolean expression composed of variable names, and
the operators (, ), ', *, +.
See here
and here
for an introduction to the algorithm.
- Write a program to output simple WAV audio files to
produce music, morse code messages, or to
synthesize touch
tone dialing sounds. Professor Zucker can provide you
with code to get started. Starter code is here. (Unzip and type "make" from the shell to get started).
- Write a program that can
output Scalable
Vector Graphics format files containing fractal imagery.
Start out by trying the
famous Koch
Snowflake fractal.
- Write a program to help generate or solve word search puzzles.
- Or, come up with your own idea...