Computer Systems Programming

Course numbers

This course is being taught under the numbers
ECE 209.602 and ECE 209.604 through NCSU and as
ECE 209.602 and CSCI 373.002 through UNCA.

Lectures, Problem Sessions, and People

The course instructor is
Dean Brock.
The course lectures will be delivered on Tuesday and Thursday
from 10:50 AM to 12:05 PM in Ramsey 011.
Class lectures will be videotaped and available for review on-line.

ECE 209/CSCI 373 will also have occasional and optional
help session
on Wednesday from 1:00 PM to 1:40 PM in
the RH 223 computer lab.
Often brief discussions related to the help session will also
be videotaped and available on-line.

Class home page

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

Textbooks

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 for
students enrolled at NCSU.
The Patt and Patel book was used in ECE 109 and CSCI 255.
You should not need to purchase a copy of it.

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.)

CodeLab

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

Prerequisites

In order to take this class, NCSU students 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.

UNCA students should have completed CSCI 255 and, by transitivity,
CSCI 201.

Grading Policy

Components

Grades will be based on points earned from
two in-class exams, one final exam,
and homework (which includes programming assignments) as
given in the following table.

Two in-class exams

30%

One final exam

30%

Homework

40%

Scale

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

Score ≥ 97

A+

Score ≥ 92 & Score < 97

A

Score ≥ 90 & Score < 92

A-

Score ≥ 87 & Score < 90

B+

Score ≥ 82 & Score < 87

B

Score ≥ 80 & Score < 82

B-

Score ≥ 77 & Score < 80

C+

Score ≥ 72 & Score < 77

C

Score ≥ 70 & Score < 72

C-

Score ≥ 66 & Score < 70

D+

Score ≥ 60 & Score < 66

D

Score ≥ 55 & Score < 60

D-

Score < 55

F

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+.

Exams

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.

Homework

There will be frequent small homework assignments.
Many homework assignments will consist of a few problems similar
to those given in the textbook.
Others will be programming assignments.

Students will be given different homework according to the
department prefix of their enrollment, ECE or CSCI.
The following links will provide more detail about the
ECE 209 and CSCI 373 homework.

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.

Email Communication

The Director of Distance Education Programs at NCSU
and the Dean of Students at UNCA has
told instructors that all email protected by
the federal Family Educational Right to Privacy Act (FERPA)
must be sent to your
official university email address.
FERPA protected information includes not only recorded grades,
but any information that would reveal that you are a student in this class.

For more information

The best way to get in touch with me is to send email to
brock@cs.unca.edu.
Please include the course number in the subject line.
If you need to see me, send me email to arrange an appointment.