Syllabus
for CSC 2400-001 (Computer Systems I)
Instructor |
Mirela
Damian, Mendel Science Center 167A
mirela.damian@villanova.edu (preferred contact
method) |
Office Hours |
TR 2:30 pm – 3:30 pm in Mendel 167A, or by appointment |
Course Meets |
TR
4:00 pm – 5:15 pm in Mendel G87 |
Prerequisites |
CSC
1052 – Algorithms and Data Structures II CSC
1300 – Discrete Structures |
Teaching Assistant |
Jeff
Linahan, jeff.linahan@gmail.com |
Help Desk |
Office
hours online http://csc.villanova.edu/support/cscHelpDesk |
Course Description
This course is the first part of a two-semester sequence – Computer
Systems I and Computer Systems II.
The goal of this course is to bridge the gap between high-level programming
and actual computer systems -- processors, caches, operating systems, compilers
and linkers. Computer Systems I comprises three major parts: machine
organization and assembly language programming, C program design and
development, and operating system tools. Unix will be used as a running
example. Labs will be interspersed with lectures to give students hands on
experience with the C language and the Unix system.
Course Objectives
Things
you should be able to do by the end of the semester:
1. Differentiate between
different internal formats to represent numerical data.
2. Be able to explain of
the role of the basic computer system components (hardware and software) and
how they interact with one another.
3. Demonstrate programming
skills through the development, testing and debugging of C programs in Unix.
4. Appreciate the need for
security and ethics in computer use.
Resources
Website: |
http://www.csc.villanova.edu/~mdamian/csc2400/ Notes, assignments,
announcements and other course-related materials will be posted on this class
website. Please make sure you check the class page regularly. |
Texts: |
1.
David Tarnoff, Computer Organization and
Design Fundamentals (free online) 2.
Programming in C, an online
interactive text from Zyante. This is a required resource. To obtain access: a.
Sign up at zyBooks.com b.
Enter zyBook code VillanovaCSC2400DamianFall2015 c.
Subscribe ($48) using any credit card. Subscription is
valid through 06/02/16. |
Course Requirements
1. Assignments: In this course every concept builds on previous
ones, and for this reason it is important to complete assignments on time, so
that you wonÕt fall behind. Readings and zyBook
activities will count as assignments.
2. In-class Quizzes: Quizzes will be scheduled throughout the
semester (usually on Thursdays) to make sure that you are following along, and
to provide some representative questions for exams. They will be administered
at the beginning of the class, so make sure to show up on time to class. A
missed quiz will just result in a zero (no make-up quizzes).
3. Lab Projects: One
important aspect of this course will be programming lab projects, which will
enable hands-on learning while gaining valuable and practical systems
experience. We will invest significant time in class exploring hands-on
learning, so come to class prepared to write code. Labs generally need
to be completed by the beginning of the next class period.
4. Tests: one midterm and one comprehensive final exam. Tests will be closed
books, closed notes. However, you are allowed to bring one sheet of paper
(letter size) with any information you think will help you during the exam. Please note that notes may not be shared
during the exam.
Tentative Grading
Procedure
Your
grade will be computed based on home readings and activities, quizzes, lab
projects and exams, each contributing equally to your final score as follows:
Assignments: |
20% |
In-class
Quizzes: |
20% |
Lab
Projects: |
20% |
Midterm: |
20% |
Final
exam: |
20% |
With
the exception of the midterm and final exam, the lowest score in each category
will be dropped. On a 100-point scale, you can expect the following
letter grades:
|
³ 88:
B+ |
³ 78:
C+ |
³ 68:
D+ |
³ 95:
A |
³ 84:
B |
³ 74:
C |
³ 64:
D |
³ 90:
A- |
³ 80:
B- |
³ 70:
C- |
else: F |
Policies
1.
Class Attendance Policy. Mandatory. Each student
is responsible for all material, announcements, and assignments covered during
any class missed.
2.
Makeup Policy. There will be no makeup quizzes (regardless of
whether you had an excused or unexcused absence). If you need to miss an exam
due to an emergency, try to notify me in advance so we can make arrangements to
make it up. Makeup tests will not be easier than regularly
scheduled tests.
3. Late Submission Policy. All assignments are due
at the beginning of the class on the due date. No assignments will be accepted
late without the direct consent of the instructor at least 24 hours prior to
the due date of the assignment.
4. There will be no extra credit. Students
usually ask for extra credit late in the semester after they have already
squandered their original opportunities. Be sure to start your work early, so
that we can detect and solve any problems before they can affect your grade.
5. Write your own code. Programming in an
individual creative process much like composition. You must reach your own
understanding of the problem and discover a path to its solution. During this
time, discussions with friends are encouraged. However, when the time comes to
write code that solves the problem, such discussions are no longer appropriate.
The program must be your own work.
6. Academic Integrity. All students are expected to uphold
VillanovaÕs Academic Integrity Policy and Code. Any incident of academic dishonesty will
be reported to the Dean of the College of Liberal Arts and Sciences for
disciplinary action. For the
CollegeÕs statement on Academic Integrity, you should consult the
Enchiridion. You may view the
universityÕs Academic Integrity Policy and Code, as well as other useful
information related to writing papers, at the Academic Integrity Gateway site
http://library.villanova.edu/Help/AcademicIntegrity
7. Special Arrangements. Students with
disabilities who require reasonable academic accommodations should schedule an
appointment to discuss specifics with me. It is the policy of Villanova to make
reasonable academic accommodations for qualified individuals with disabilities.
You must present verification and register with the Learning Support Office by
contacting 610-519-5176 or at learning.support.services@villanova.edu,
or for physical access or temporary disabling conditions, please contact the
Office of Disability Services at 610-519-4095 or email Stephen.mcwilliams@villanova.edu.
Registration is needed in order to receive accommodations.
Tentative Course
Schedule
The
course schedule below is approximate and subject to change as the semester
progresses. It is the responsibility of the student to learn and adjust to
changes.
Date |
Topic |
References |
|
Wk 1: Aug. 25, 27 |
Goals and
Introduction. |
Notes, zyBook 1.1 –1.3 |
|
Wk 2: Sep. 1, 3 |
Intro
to Unix. Input and Output in C. Number
Systems. |
Notes, zyBook 1.4 –1.9, 2.1 Tarnoff Ch. 2 |
|
Wk 3: Sep. 8, 10 |
Data Representation. Machine Limitations. |
Notes, zyBook 2.2 – 2.7 Tarnoff Ch. 3 |
|
Wk 4: Sep. 15, 17 |
More
Unix. Bitwise vs. Logical Operators. |
Notes, Tarnoff Ch. 9, zyBook 3 |
|
Wk 5: Sep. 22, 24 |
Logic Gates. ALU
Design |
Notes, Tarnoff Ch. 4 |
|
Wk 6: Sep 29, Oct. 1 |
More on ASCII codes
and unicodes. |
Notes, zyBook 4 |
|
Wk 7: Oct. 6, 8 |
Review.
Midterm on Thursday, Oct. 8. |
||
Oct. 12 – 18 |
Fall
Break – ENJOY !
|
||
Wk 8: Oct. 20, 22 |
Preprocessor. State
Machines. |
Notes, Tarnoff Ch. 11 |
|
Wk 9: Oct. 27, 29 |
Strings and Arrays in
C. |
zyBooks 5, 6 |
|
Wk 10: Nov. 3, 5 |
Structures and
Pointers in C. |
zyBooks 7, 8 |
|
Wk 11: Nov. 10, 12 |
Introduction to
Assembly (X86). |
Notes, Tarnoff Ch. 15 – 17 |
|
Wk 12: Nov. 17, 19 |
Memory Addressing.
Stack Operations. |
Notes |
|
Nov 24 |
X86 Stack Layout and
Usage |
Notes |
|
Nov. 25 – 29 |
Thanksgiving Recess
– ENJOY ! |
||
Wk 13: Dec. 1, 3 |
Security and Ethics. |
Notes |
|
Wk 14: Dec. 10 |
Review. |
||
Final Exam |
Tuesday, Dec. 15, 8:30 am – 11:00 am |
||