Computer Systems I (CSC 373)
Sections 501 and 510, Winter 2014
Overview
This course is the first of a two-course sequence covering the
concepts underlying all computer systems and how they affect the
correctness, performance, and utility of application programming.
This course focuses
on C programming and machine representation of information and
programs.
Preconditions
You must have taken CSC 300, CSC 383, CSC 393 or an equivalent
course that covers basic data structures such as arrays, linked
lists, stacks and queues. You must also have taken MAT 140 or an
equivalent course that covers mathematical logic. I will assume
that:
- You know how to create, debug, compile and run programs in a
general-purpose language (Python, Java, C++,...) and use a
reasonable programming style (i.e. your code is easy to read and
concise).
- You know how to use basic data types (integer, boolean, and
string) including fundamental container data types (arrays or
lists).
- You are familiar with basic formal logic.
Postconditions
After the
successful completion of this course:
- you will have basic C programming skills;
- you will understand how integers, strings, arrays and other
structures are represented and manipulated at the machine level;
- you will understand how programs are
represented at the machine-level;
- you will be able to read, understand, and
debug Intel Assembly code in GAS (Gnu ASembler) format;
- you will know how to take advantage of the
parallelism in modern CPUs to optimize program performance;
- you will be able to take CSC 374, the follow-up systems
course.
Course Calendar
[subject to change]
Instructor
Please send me email if you need an appointment at another time.
Class Hours
Section 501 |
TTh
|
11:50am-1:20pm |
CDM 226
|
Section 510 (Online section)
|
TTh
|
Lecture posted after 1:20pm
|
|
Texts
-
Bryant & O'Hallaron, Computer
Systems:
A
Programmer's
Perspective,
2nd
Edition, Prentice Hall/Pearson, 2011.
ISBN: 978-0136108047
-
Kernighan
& Ritchie, The C Programming Language, 2nd Edition, Prentice
Hall, 1988. ISBN: 978-0131103627
Course web page
This syllabus, as well as the class lecture notes, homework
assignments, lab assignments, discussion forum links, homework
submission link and other links can be found on the course web page
at
http://reed.cs.depaul.edu/lperkovic/csc373. Please check this
site and the discussion forum regularly.
Grading
The course grade will be apportioned as follows:
homeworks |
20% |
labs
|
30%
|
midterm exam |
25% |
final exam |
25% |
There will be a
total of 5 homeworks, but only your best 4 count toward the final
grade, so you may miss one homework with no penalty. Each homework
assignment will consist of several short programming assignments,
and/or conceptual problems. There will also be a total of 3 labs,
each a major assignment involving
long hours of technical work. All homeworks and labs must be
submitted by the deadline and no later. Any homework or lab not
handed in by the deadline will receive 0 points, without any
exceptions.
To do well in this course, you
should follow the class regularly, participate in the discussion,
read the chapters in the book each week as indicated in the
homework assignments, start working on the homework and labs
early, and talk to me promptly if you have any problems. The
answers to the homework and exam questions, as well as your code,
should be written in a way that is rigorous, clear and concise.
Policies
Lateness and Absence
No late homework or lab will be accepted. If you don't hand in a
homework/lab in time, you will receive 0 points for the
homework/lab. Midterm and final exams makeups must be arranged at
least one week in advance, barring extreme situations.
Deadlines for adds, drops, and withdraws
See the deadlines here.
Changes to Syllabus
This syllabus is subject to change as necessary during the quarter.
If a change occurs, it will be thoroughly addressed during class,
posted under Announcements in COLWeb and sent via email.
Online Course Evaluations
Evaluations are a way for students to provide valuable feedback
regarding their instructor and the course. Detailed feedback will
enable the instructor to continuously tailor teaching methods and
course content to meet the learning goals of the course and the
academic needs of the students. They are a requirement of the course
and are key to continue to provide you with the highest quality of
teaching. The evaluations are anonymous; the instructor and
administration do not track who entered what responses. A program is
used to check if the student completed the evaluations, but the
evaluation is completely separate from the student’s identity. Since
100% participation is our goal, students are sent periodic reminders
over three weeks. Students do not receive reminders once they
complete the evaluation. Students complete the evaluation online
in CampusConnect.
Academic Integrity and Plagiarism
This course will be subject to the university's academic integrity
policy. More information can be found at http://academicintegrity.depaul.edu/.
If you have any questions be sure to consult with your professor.
Academic Policies
All students are required to manage their class schedules each term
in accordance with the deadlines for enrolling and withdrawing as
indicated in the University Academic Calendar.
Information on enrollment, withdrawal, grading and incompletes can
be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.
Students who feel they may need an accommodation based on the impact
of a disability should contact the instructor privately to discuss
their specific needs. All discussions will remain confidential. To
ensure that you receive the most appropriate accommodation based on
your needs, contact the instructor as early as possible in the
quarter (preferably within the first week of class), and make sure
that you have contacted the Center for Students with Disabilities
(CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296