ECE 209 Syllabus -- Section 602

Lectures, Problem Sessions, and People

The course instructor is Dean Brock. The course lectures will be delivered on Tuesday and Thursday from 4:30 PM to 5:45 PM in Ramsey 011.

ECE 209 will also have occasional one-hour problem session on Tuesday from 6:00 PM to 6:50 PM in the Robinson 223 computer lab.

Class home page

All class handouts, including homework assignments, can be found through the following URL:

Textbooks and CodeLab

The required textbooks for the course will be C Primer Plus (5th edition) written by Stephen Prata and published by SAMS Publishing (ISBN 0-672-32696-5) and Introduction to Computing Systems: From Bits and Gates to C (2nd edition), written by Yale N. Patt and Sanjay J. Patel and published by McGraw-Hill (ISBN 0-07-246750-9), The Prata book is available online from the NCSU library, and you used the Patt and Patel book in ECE 109. So, you shouldn't need to purchase any textbooks!

The classic C programming book The C Programming Language (2nd edition), written by Brian Kernighan and Dennis Ritchie and published by Prentice Hall (ISBN 9780131103627), is also a recommended textbook for the course. (At UNCA, this book has been placed on reserve in Ramsey Library.)

Students will also need to purchase a subscription, at a cost of $25, to CodeLab to complete the homework assignments required in this course.

Course Content and Student Learning Outcomes

This course continues your introduction to computing systems by focusing on programming. In particular, you will learn more about the C programming language, how its features can be implemented using a processor's instruction set, and how to use data structures in C to write programs to solve complex problems.

By the end of this course, you will be able to:

This class also includes an associated problem session, in which you will be given significant programming assignments. The problem sessions are designed to give you hands-on experience with C programming tools.


In order to take this class, you must have completed ECE 109 (Introduction to Computer Systems), with a grade of C- or better. There will be very little review of ECE 109 material. In particular, you should be very comfortable with the LC-3 instruction set and LC-3 assembly language before taking this class.

Grading Policy


Grades will be based on points earned from two in-class exams, one final exam, homework, and programming assignments using the weights given in the following table.

Two in-class exams 30%
One final exam 30%
Programming assignments 20%
Homework 20%


The following numerical scale will be used in assigning grades based on Score, the weighted score computed using the preceding table.

Score ≥ 97A+
Score ≥ 92 & Score < 97A
Score ≥ 90 & Score < 92A-
Score ≥ 87 & Score < 90B+
Score ≥ 82 & Score < 87B
Score ≥ 80 & Score < 82B-
Score ≥ 77 & Score < 80C+
Score ≥ 72 & Score < 77C
Score ≥ 70 & Score < 72C-
Score ≥ 66 & Score < 70D+
Score ≥ 60 & Score < 66D
Score ≥ 55 & Score < 60D-
Score < 55F

There will no "rounding-up" in computing the final grade. A score of 68.8 is less than 69 and results in a grade of D+.


All exams will be closed book and closed notes. Often, a "reference sheet" will be provided which lists detailed information, such as the LC/3 instruction set or C programming language syntax.

Attendance at all exams is mandatory. Only University-approved excuses will be accepted, provided that they are accompanied by the appropriate official documentation. Makeup exams may be given for excused absences, at the discretion of the instructor. If you miss an exam without an acceptable excuse, you will receive a zero for that exam.

Do not ask for permission to take the final exam early or late because of family travel plans. These requests will not be granted.


There will be frequent small homework assignments. Many homework assignments will consist of a few problems similar to those given in the textbook. Many others will be assigned using CodeLab.

Programming assignments

There will be approximately five programming assignments during the semester. Each programming assignment must represent your own individual work. It is acceptable to talk with another student about approaches to the assignment or to discussing a particular programming problem that you are having with another student. It is not acceptable to modify someone else's program and submit it as your own or to submit a solution "found" on the Internet. If two (or more) students turn in an assignment with trivial differences, such as variable names, the students will be asked to justify the similarities of their submitted programs before the assignment will be graded.

The last programming assignment will be due during NCSU "Dead Week," but will be assigned early enough for you to complete it before Dead Week.

All submitted programs should follow the NCSU ECE 209 Coding Style Requirements.

Email Communication

The Director of Distance Education Programs at NCSU has told instructors that all "information about classes" sent via email should be sent to an official email address. This will be your address as listed on either NCSU or UNCA class registration rolls.

This policy is particularly pertinent for any email regarding information protecting by the federal Family Educational Right to Privacy Act, such as recorded grades on assignments or quizes. Your official email is the only account I will use to send legally protected information to you.

For more information

The best way to get in touch with me is to send email to If you need to see me, send me email to arrange an appointment.