Spring 2016
Syllabus for CSC 2405 (Computer Systems II)
Instructor |
Mirela Damian, Mendel Science Center 167A mirela.damian@villanova.edu (preferred contact
method) |
Office Hours |
TR
1:30 pm – 2:30 pm
in Mendel 167A, or by appointment |
Course Meets |
Section
002 TR 2:30 pm – 3:45 pm in Mendel G87 Section
001 TR 4:00 pm – 5:15 pm in Mendel G87 |
Prerequisites |
CSC
2400 – Computer Systems I |
Teaching Assistant |
VenkateswaraReddy Kunduru,
vkunduru@villanova.edu |
Help Desk |
Schedule
available at http://www.csc.villanova.edu/help |
Course Description
This course is the second part of a two-semester sequence –
Computer Systems I and II. The goal of this course is to bridge the
gap between high-level programming and actual computer components, such as
processors, caches, operating systems, compilers, linkers, and so on. This
course will teach the way computer systems work from the low level device
interrupts up to processes, threads, memory management, file systems and
security.
One
main aspect of this course will be programming projects, which will enable
hands-on learning while gaining valuable and practical experience in Systems
specifically and Computer Science generally. We will invest some time in class
exploring hands-on learning, so come to class prepared to write code.
Course Objectives
1. Understand the goals and
functions of modern operating systems.
2. Describe and use
techniques for achieving concurrency and synchronization.
3. Explain the workings of
a system with virtual memory management.
4. Understand basics of
networking and Internet communication.
5. Describe the role of
error correction codes in memories, storage and networks.
6. Understand security
risks and protection mechanisms for computer systems.
Resources
Website: |
http://www.csc.villanova.edu/~mdamian/csc2405/ Notes, assignments, announcements
and other course-related materials will be posted on this class website.
Please make sure you check the class page regularly. |
Text: |
We will not follow a
textbook closely, but will have several readings from Arpaci-DusseauÕs
Operating
Systems: Three Easy Pieces (free online in chapter-by-chapter form).
This book matches closely to the needs of this class for the first half of
the semester at least. In the second half of the class we will move away from
core OS topics and toward networked/distributed systems. Links to other
resources will be posted on the class website. |
Course Requirements
1. Assignments: With few exceptions, most are programming
assignments intended to help you
gain valuable and practical systems experience. Starting early on programming
assignments is essential. Debugging programs takes time and your grade
and learning will suffer if you attempt it at the last minute. It is
possible that some assignments will not be graded, but most of your learning
will come from devoting good chunks of time each week to assignments.
Your programs must compile. No credit will be
given for code that does not compile. Keep copies of intermediate versions of your
programs, and if you do not have time for last minute debugging, submit the
last version that compiled and produced some results. It is better to submit a
program that works than one that crashes, even if you have not implemented all
the required features.
2. Checkpoint Quizzes: Checkpoint quizzes will not be graded; they are
intended to provide some representative questions for exams, and to give you a
sense of how well you understand the material. They will be administered at the
beginning of the class, so make sure to show up on time.
3. Exams: one midterm and one final exam. The final exam will be
comprehensive, although material covered after the midterm will be emphasized.
Exams will be closed notes. However, you are allowed to bring one sheet of paper
(letter size) with any information you think might help you during the exam. Such notes may not be shared during the
exam.
Tentative Grading
Procedure
Your assignments, quizzes and exams will contribute to your final
score as follows:
Assignments:
40%
Midterm: 30%
Final
Exam: 30%
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. Students are expected to attend all classes and
to turn up on time. Each student is responsible for all material,
announcements, and assignments covered during any class missed.
2.
Makeup Policy. No makeup quizzes or exams will be given,
except possibly in the case of a serious documented emergency. Makeup exams
will not be easier than regularly
scheduled exams.
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. As a Villanova student, you are trusted to be
honorable. Do not copy assignment solutions from the web or from another
student. Do not share your code with another student. I take academic
dishonesty very seriously and will
not tolerate it in this class in any form.
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. Please
check the online version on the course schedule regularly.
Date |
Topic |
Wk 1: Jan. 12, 14 |
Computer Systems Overview. Program Execution Environment; Smart Shell
Hands-On |
Wk 2: Jan. 19, 21 |
|
Wk 3: Jan. 26, 28 |
Introduction to Processes (Creation,
Execution) |
Wk 4: Feb. 2, 4 |
Process States and Transitions; I/O
Interrupts; CPU Scheduling |
Wk 5: Feb. 9, 11 |
|
Wk 6: Feb. 16, 18 |
Inter-Process Communication (Pipes, Messages,
RPC) |
Wk 7: Feb. 23, 25 |
Introduction to
Threads |
Feb. 29 – Mar. 6
|
Spring
Break – ENJOY !
|
Wk 8: Mar. 8, 10 |
Basics of Computer Malware (online videos) |
Wk 9: Mar. 15, 17 |
Synchronizing Threads with Semaphores |
Wk 10: Mar. 22 |
Midterm |
Mar. 23 – 28 |
Easter Break – ENJOY ! |
Wk 11: Mar. 29, 31 |
Networking and Communication (TCP/IP, DNS,
HTTP, Sockets) |
Wk 12: Apr. 5, 7 |
|
Wk 13: Apr. 12, 14 |
Memory Management and Protection; Virtual
Memory |
Wk 14: Apr. 19, 21 |
Storage Management; File Systems Security and Protection |
Wk 15: Apr. 28 |
|
Final exam |
Section 001 on Friday, May 6, 8:30 – 11:00
am Section 002 on Monday, May 2, 2:30 – 5:00
pm |