This course website is for the Spring 2024 offering of ECE 220 - Computer Systems & Programming, which is shared between all sections. ECE 220 is a sophomore-level course taken by both the Computer Engineers and Electrical Engineers at the University of Illinois. Below, you will find the course syllabus, objectives, and other details.
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 ideas in object-oriented programming. Such a bottom-up understanding of computing systems has proven more successful in helping students understand advanced computing concepts that follow in the ECE curriculum.
Again, this course requires that you take ECE120 first. Concurrent enrollment is not acceptable. If you do not meet this requirement but think you should still enroll, speak with the instructor.
After completing this course, students should
be familiar with basic data organizations such as arrays, structures, lists, trees, and jump tables, and how they are laid out in memory,
be able to write assembly language programs that make use of these data structures to accomplish simple tasks,
understand the transformation between programming constructs in languages such as C and their implementation on a modern microprocessor,
be able to write C programs to accomplish simple tasks, such as functional simulation of a processor,
understand the importance of structuring code in a way that it can be tested, be able to write effective tests for code, and be familiar with tools for aiding in this process, and
be familiar implementation of basic data structures and operations on them.
Since this is a sophomore course, we also have explicit objectives for providing students with an understanding of the profession. In particular, students who have completed this course should
understand the expectations of the engineering discipline in terms of effort, quality, and objectivity,
recognize that self-motivation and lifelong learning are necessary to success in engineering,
be able to articulate the importance of understanding tradeoffs, and
be able to recognize and identify basic design tradeoffs.
This course is mostly based on the textbook listed below, but we will provide different examples, additional reading materials, and a somewhat different viewpoint in the lectures.
Introduction to Computing Systems: from bits and gates to C and beyond, Yale N. Patt and Sanjay J. Patel, 2nd Edition, McGraw-Hill, 2003.
Introduction to Computing Systems: from bits and gates to C and beyond, Yale N. Patt and Sanjay J. Patel, 3rd Edition, McGraw-Hill, 2019.
You can purchase online textbook here 🔗.
There will be programming assignments (MPs) roughly every week worth 100 points each. MPs will be distributed on Thursday and due (by computer hand-in via Github) the following Thursday at 10.00 pm . If you are working in a group, each member must turn in their copy of the code in Github. We cannot grade your partner's copy as yours. Note that it's your responsibility to ensure the latest code submission is the version you want to be graded. These assignments will use the EWS laboratory environment. The first two will require you to write LC-3 assembly language, while the remaining will require you to write C code. Some of the assignments may build from week to week.
James Scholar students who wish to earn honors credit in this course can do one of the following:
complete additional MPs & labs (~ four more) that introduce parallel programming to the curriculum
contact their instructors to conduct individual projects to receive honors credit
There will be weekly programming studios or Labs in which we work together as a class on a piece of code related to that week's programming assignment and concepts.
You will receive 10-point extra credits for completion of each week's lab worksheet to make up for lost points in the MPs.
Each lab worksheet should be submitted to Gradescope by its respective deadline. Labs are considered extra credit opportunities: we do not accept late submissions for them.
There will be six CBTF quizzes that test your mastery of the materials covered in the previous weeks. A mock quiz is offered at the beginning of the semester for you to get familiar with the testing environment and earn extra credits to make up for lost points in the quizzes.
You can schedule each quiz 10 days in advance with CBTF.
If you are experiencing technical difficulty in the testing center, it's recommended to file an incident report with a proctor so that your issue is properly documented. Work with the proctor to resolve the issue at the time before logging off. If you do not inform a proctor of a problem during the test then you forfeit all rights to addressing the problem you experienced during your exam. The quiz schedule can be found under Evaluation on the sidebar to the left.
A second extra credit opportunity may be offered via a take-home quiz towards the end of the semester.
There will be two midterm exams and a final exam. The midterm exam dates are:
All exams are in-person on campus and paper based. Conflict exams will be provided strictly as per policy and reasons for conflicts must be well documented within the set deadlines for each exam.
The contribution of each course component towards the final grade is as follows:
Note that, the labs only garner bonus points, which helps offset points lost in other assignments, but they receive no weightage in the final grading.
To do well in this class, attendance of lectures is crucial in the sense that exams will be based on both lectures and assigned reading materials. You are responsible for all lecture materials and for any announcements made in class, whether or not you are present. If you miss a class, you should ask a classmate to review their notes from that day. If you have to miss classes for a prolonged period due to serious illness, you should speak to the teaching assistant and/or the instructor as soon as possible. See important information regarding absence letters.
We take cheating very seriously.
The Student Code defines cheating as:
Using or attempting to use in any academic exercise materials, information,study aids, or electronic data that the student knows or should know is unauthorized (§1-402(a))
and notes that:
Substantial portions of the same academic work may not be submitted for credit more than once or by more than one student without authorization. (§1-402(a)(4))
The student code also disallows facilitation of cheating, prohibiting
Helping or attempting to help another to commit an infraction of academic integrity, where one knows or should know that through one’s acts or omissions such an infraction may be facilitated. (§1-402(c))
Cheating is an offense to the entire academic ecosystem: you, your classmates, and the course staff. It creates extra work for the course staff, it creates grading imbalances for your classmates, and it prevents you from learning the material that the rest of your academic career is built on.
We will take cheating very seriously. If we catch you cheating, or helping someone cheat, the penalty will not be less than a zero on the applicable assignment and the incident will be reported to the College.
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 study group members, can often unravel concepts to the benefit of all group members much better than one person working alone can.
You may work in groups of up to three for MPs. Within your declared groups, you can do anything you want. However, you must turn in your own MP assignment in your repository; we cannot use your group mate's submission for grading. Your submission can otherwise be bitwise identical to your group mate's.
Copying code from old MPs is NOT allowed. This is the most common reason we have to report academic integrity violations. Outside your declared group, any specific discussion about the MPs is discouraged until past the late submission deadline.
Specifically prohibited are:
carrying any notes out of a meeting with non-group members,
working on the MP while any short-term memory remains from your discussions with non-group members,
discussing specific approaches with non-group members.
You will be required to declare your group members for each MP. You may change groups for each MP or retain the same group throughout the semester. If we detect evidence of collaborations on MPs outside of the declared groups, we will deem any such inter-group assistance to be unauthorized.
Exams are individual assessments. Students are not authorized to give or receive assistance. Neither electronic nor mechanical devices are permitted while taking the exam, except those that are medically necessary.
If you are confused about what exactly is or is not permitted, you should ask the course coordinator (Dr. Abraham, itabrah2 [at] illinois [dot] edu) for clarification. Confusion or ignorance of the rules is not an excuse.
To ensure that disability-related concerns are properly addressed from the beginning, students with disabilities who require assistance to participate in this class should apply for services with DRES and notify the instructor as soon as possible. If you are concerned you have a disability-related condition that is impacting your academic progress, there are academic screening appointments available that can help diagnose a previously undiagnosed disability. Please find resources available by visiting the DRES website.
Illinois law requires the University to reasonably accommodate its students’ religious beliefs, observances, and practices in regard to admissions, class attendance, and the scheduling of examinations and work requirements. You should examine this syllabus at the beginning of the semester for potential conflicts between course deadlines and any of your religious observances. If a conflict exists, you should notify your instructor of the conflict.
Students who need DRES accommodation at CBTF should follow the instructions on the CBTF website.
Significant stress, mood changes, excessive worry, substance/alcohol misuse or interferences in eating or sleep can have an impact on academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings which are covered through the Student Health Fee. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below.
Counseling Center (217) 333-3704
McKinley Health Center (217) 333-2700
National Suicide Prevention Lifeline (800) 273-8255
Rosecrance Crisis Line (217) 359-4141 (available 24/7, 365 days a year)
*This statement is approved by the University of Illinois Counseling Center.