ECE220: Computer Systems & Programming
Fall 2020 ZJUI Section


Course Overview and Policies


Return to main course page

Together with ECE120, which you should have already taken, this course gives an introduction to the design and programming of computing systems. This course will focus on C programming, where each new C concept will be related to the fundamental concepts described in ECE120. We will start by finishing our coverage of low-level concepts such as I/O, subroutines, and stacks in LC-3 assembly language, then move on to C. We will cover basic programming concepts, functions, arrays, pointers, I/O, recursion, simple data structures, and concepts in object-oriented programming. A bottom-up understanding of computing systems has proven more successful in helping students to understand advanced concepts in computing that follow in the ECE curriculum.

Again, this course requires that you take ECE120 first. Concurrent enrollment is not acceptable. If you have not met this requirement but think that you should still enroll, speak with the instructor.

Objectives of the course

After completing this course, students should

Since this is a freshman course, we also have explicit objectives for providing students with an understanding of the profession. In particular, students who have completed this course should

Textbook

This course is mostly based on the textbook listed above (note: the softcover edition is fine), but we will provide different examples, additional reading materials, and a somewhat different viewpoint in the lectures. See the syllabus for more details on content.

What you should expect

There will be machine problems (MPs--programming assignments) every week. The first three require LC-3 assembly, while the remainder require C (and some C++ at the end of the semester). Some of the assignments may build from week to week, so be sure to keep up.

MPs will be due on Saturdays (via Git at UIUC, which you should already know how to use; the TAs will review it briefly at the first programming lab meeting). For the first few MPs, when you commit a version of your code, an automated feedback tool will attempt to identify errors for you. However, you are responsible for testing your code on the Lab machines in building~D (where you attend the weekly programming lab) to ensure that it matches the specification in the assignment. We will grade only your last submission, late or otherwise.

You may turn in MPs up to 48 hours after the deadline, with a penalty of 2 points (out of 100) for each hour late (or fraction thereof).

There will also be weekly programming labs (during your 'discusssion section' time on Tuesdays) in which we work together as a class on a piece of code related to that week's programming assignment and concepts. Labs are mandatory.

There will be two midterm exams and one final exam. The midterms will be held on Thursday evenings, 29 October and 3 December, from 6:30 to 9:30 p.m. (we design 1.5 hours of material, but you get 3 hours to take the exam). The final exam will be held in late December. All exam locations are TBD.

Grading mechanics

Your final grade will consist of the following:

Course website and resources

The website (http://lumetta.web.engr.illinois/220-F20/) will contain important announcements, lecture notes, handouts, and other material helpful for succeeding in this course.

Grades will be posted on Blackboard.

You can also use Blackboard for discussion of assignments. Please read all Blackboard posts and replies carefully to avoid duplicating existing questions.

Cheating and academic integrity

You are encouraged to study in groups, and to come to office hours in groups. Studying in groups usually will result in all of you understanding the material better. You, working with other members of your study group, can often unravel concepts to the benefit of all members of the group much better than one person can, working alone.

Although we encourage you to study together, all work products of this course must be your own individual work. Please note that you are not allowed partners for MPs. Do not, for example, exchange code with others. We will use code comparison tools to identify violations. If you cheat, you violate the soul of the University, which we take very seriously, and will not compromise. First offense will, in the least, result in a 0 on the assignment or exam. The policy for the course is based on Article 1.4 of the Student Code.

Final thoughts

Challenge assumptions: Computer Science and Engineering deals with man-made artifacts, and you may be able to invent better ways to make them. Innovation requires that someone challenge the current way of doing things.

Return to main course page