Yes, doing a project is an essential part of ECE 477. The limitations as to what you can choose for a project are minimal, i.e., it must involve the use of C programming and it must not be identical to a lab we’ve already done. It is not limited to X where X is some arbitrary other constraint that you can think up.
The project goal is information transfer to the rest of the class, that is, as part of the project you can/will/should develop knowledge and skills not shared by the majority of the class. The goal of project is to share your new-found knowledge and skills with the rest of the class. Certainly I want you to demonstrate the project working, but sharing HOW the project works is far more important.
You do not need to build hardware for your project. For example, great projects could involve graphics, network communication, using the sound card, or other PC hardware. You do not have to build (nor would it be a good use of your time to build) your own sound card.
You do not need to (you should not) shun all tools to make life easier. If there is a library (especially if it is free) you should use it. I’d rather you teach the class the right way to do something rather than the wrong way.
Now mind you, your project has to be SOMETHING. You can’t (despite what the previous paragraph says) download a package, compile a sample program, and claim that THAT is your project. Your project has to be something that you have done, but I would rather that you do something the right way using available tools rather than the wrong way simply because it is harder.
Project ideas (you do NOT need to choose from this list)
Obviously people have microcontrollers on the brain...equally obviously, there are a million good project ideas involving microcontrollers and (fill in the blank). This includes controlling hardware, gathering data, communicating, talking to gizmos, etc.
Sound, graphics, networking.
USB
Video game controllers to PC or microcontroller
Linux on a wireless router
driving a roomba
encryption/decryption
Nerual nets, genetic algorithms, particle swarm optimization, or other cool algorithm
MIDI
PS2 keyboard/mouse to a microcontroller
barcodes
RFID