EECS 121: Coding for Digital Communication and Beyond, Fall 2013

Lecture is cancelled on Tuesday Sep 10th. A make-up lecture will be scheduled.

Instructors, Lecture, and Discussions


Homeworks are always due at 5pm. Each student should submit using their instructional account.

Notes (these will update)

There is no textbook for this class. Instead, the class lecture notes will be prepared by the students.

Students are expected to use the 121 LaTeX Style File while preparing their notes. See the contents of this directory to see an example of how to scribe a lecture taken from a previous term.


The new version of 121 has its focus on exploiting the nature of information and wrangling it within the physical world. Communication ideas are widely applicable within EECS, not just because communication is a very important application (arguably the most important) for people [how often do you use a computing device to communicate vs using it to compute something?], but also because communication is the foundation for our networked world and for most interesting other applications as well. This class is a mixture of theory and practical engineering. The ideas are powerful because they lead to nonobvious algorithms and techniques.

This course is divided into a few units, each with applications and for which theory will be developed/enhanced:




Homeworks will be assigned every other week or so. NO late homeworks will be accepted.

Your lowest homework score of the semester will be dropped.

Homework Submission

Homeworks will be submitted electronically, as pdfs. Details of the online submission system are on Piazza. Homeworks may be prepared by hand, in LaTeX, or even using Microsoft Word (with equation editor --- but you're much better off learning LaTeX). If by hand, you will need to scan your work. Please see scanning instructions to scan to pdf.

Note that you will need to name your file "hwX.pdf" (e.g. "hw2.pdf") in order to submit it.

Homework Solution Nomination

After the homework is due, there will be a mad dash on Piazza as students try to claim certain problems to nominate their solution as the candidate base for the official solution. This needs to be well-written using LaTeX and figures as external files. Each HW group should have one official solution to get full credit on that HW.

Homework Grading

The primary way that the homework will be graded is by yourselves. Solutions will be posted online and then you will be expected to read them and enter your own scores for every problem in the homework on a simple coarse scale (0 = didn't attempt or very very wrong, 1 = off in the wrong direction or no clear direction, 2 = half-way there, 3 = mostly right but a few things missing or wrong, 4 = 100% correct). Your grades will be due by the next homework deadline and if you don't enter any grades by the deadline, you are giving yourself a zero on that assignment.

The instructors are going to grade a randomly selected subset of problems and so we will catch any attempts at trying to inflate your own scores. This will be considered cheating and is definitely not worth the risk.


There will be two midterms.

Grade Breakdown

Extra credit will be available for many creative activities. (For example: translate the key ideas in a lecture into Internet Memes, make a web demo for a particular concept, create your own YouTube video explaining a concept in a way that is complementary to the way it had been discussed in class, creating practice problems with solutions, etc...) Talk with us in person or post on Piazza if you want to get feedback from the entire class.

Course Communication

The instructors will post announcements, clarifications, hints, etc. on Piazza. Hence you must check the EECS121 Piazza page frequently throughout the term. (You should already have access to the EECS121 Fall 2013 forum. If you do not, please let us know.) If you have a question, your best option is to post a message there. The staff will check the forum regularly, and if you use the forum, other students will be able to help you too. When using the forum, please avoid off-topic discussions, and please do not post answers to homework questions before the homework is due.

If your question is personal or not of interest to other students, you may mark your question as private on Piazza, so only the instructors will see it. If you wish to talk with one of us individually, you are welcome to come to our office hours. Please reserve email for the questions you can't get answered in office hours, in discussion sections, or through the forum.

We always welcome any feedback on what we could be doing better. If you would like to send anonymous comments or criticisms, please feel free to use an anonymous remailer like this one to avoid revealing your identity.


20, 70, Math 54, and Programming at the level of 61ABC or so.


You are encouraged to work on homework problems in study groups of two to four people. You can submit copies of one writeup for the group if you want, or have write the problems up on your own. It is probably better for you to write them up on your own. Similarly, you may use books or online resources to help solve homework problems, but you must always credit all such sources in your writeup and you must never copy material verbatim. We believe that most students can distinguish between helping other students and cheating. Explaining the meaning of a question, discussing a way of approaching a solution, or collaboratively exploring how to solve a problem within your group is an interaction that we strongly encourage. You must explicitly acknowledge everyone whom you have worked with or who has given you any significant ideas about the homework. Not only is this good scholarly conduct, it also protects you from accusations of being a jerk or free-rider regarding your colleagues' ideas.

Warning: Your attention is drawn to the Department's Policy on Academic Dishonesty. In particular, you should be aware that copying or sharing solutions, in whole or in part, from other students (not in your own group) in the class or any other source without acknowledgment constitutes cheating. Any student found to be cheating risks automatically failing the class and being referred to the Office of Student Conduct.

Don't Be Afraid to Ask for Help

Are you struggling? We'd rather you approached us for help, rather than falling behind gradually over the semester until things become untenable. Sometimes this happens when students are afraid of an unpleasant conversation with a professor if they admit to not understanding something. We would much rather deal with your misunderstanding early than deal with its consequences later. Even if you are convinced that you are the only person in the class that doesn't understand the material, and that it is entirely your fault for having fallen behind, please overcome your feeling of guilt and ask for help as soon as you need it. Remember that the other students in the class are working under similar constraints--they are taking multiple classes and are often holding down outside employment. Don't hesitate to ask us for help -- we really do care that you learn!

Accommodations for Students with Physical, Cognitive, or Psychological Disabilities

If you have been issued a letter of accommodation from the Disabled Students Program (DSP), please contact Professor Sahai as soon as possible to work out the necessary arrangements. If you need an accommodation and have not yet seen a Disability Specialist at the DSP, please do so as soon as possible.

If you would need any assistance in the event of an emergency evacuation of the building, the DSP recommends that you make a plan for this in advance. (Contact the DSP accest specialist at 643-6456.)


If you have a fever, do not come to lecture or discussion or office hours or to the problem set party until at least 24 hours after the fever has passed. Email us to let us know. If this forces you to miss a homework, we will drop an extra homework for you.

Similarly, do not attend a midterm if you have a fever. Please let us know a short time in advance if this is going to happen, and we will make appropriate accomodations.

For non-contagious illnesses, use your good judgement. But spreading contagious disease is just horrible manners if you can prevent it.


The following tips are offered based on our experience with this course.

Don't fall behind! In a conceptual class such as this, it is particularly important to maintain a steady effort throughout the semester, rather than hope to cram just before homework deadlines or exams. This is because it takes time and practice for the ideas to sink in. Make sure you allocate a sufficient number of hours every week to the class, including enough time for reading and understanding the material as well as for doing assignments. (As a rough guide, you should expect to do at least one hour of reading and two hours of problem solving for each hour of lecture.) Even though this class does not have any major projects, you should plan to spend as much time on it as your other technical classes.

Do the homeworks! The homeworks are explicitly designed to help you to learn the material as you go along. Although the numerical weight of the homeworks is not huge, there is usually a strong correlation between homework scores and final grades in the class. (The most common denominator among people who do poorly in the class is that they skipped several homework assignments or multiple homework problems.)

Also, you must read the sample solutions. You may well learn a different way of looking at the problem, and you may also benefit from emulating the style of the solutions. (In science people learn a lot from emulating the approach of more experienced scientists.)

Don't wait until the last minute to start homeworks! A good practice is to read through the homework problems as soon as they are available, and let them percolate in your brain. Think through possible approaches while you are waiting in line, or stuck in an elevator, or whatever. Sleeping on a problem has often helped people to come up with a creative approach to it. Definitely do not wait until the night before it is due to start working on the homework.

Take part in discussion sections! Discussion sections are not auxiliary lectures. They are an opportunity for interactive learning. The success of a discussion section depends largely on the willingness of students to participate actively in it. As with office hours, the better prepared you are for the discussion, the more you are likely to get out of it.

Form study groups! As stated above, you are encouraged to form small groups (two to four people) to work together on homeworks and on understanding the class material on a regular basis. In addition to being fun, this can save you a lot of time by generating ideas quickly and preventing you from getting hung up on some point or other. Of course, it is your responsibility to ensure that you contribute actively to the group; passive listening will likely not help you much. You are strongly advised you to spend some time on your own thinking about each problem before you meet with your study partners; this way, you will be in a position to compare ideas with your partners, and it will get you in practice for the exams. Make sure you work through all problems yourself. Some groups try to split up the problems ("you do Problem 1, I'll do Problem 2, then we'll swap notes"); this ensures you will learn a lot less from this course.