CS350: Computer System Concepts
(Spring 2014)
Instructor
Dr. Vinod Kulathumani
Course Format and Credit hours
3 hr
Lecture / Presentations, 3 hr Credit
Prerequisites
CS 111
Course Objectives
The
aim of this course is to provide an introduction to fundamental topics in
computer systems, especially the hardware-software interface, and some basic
system-call interfaces provided by the operating system. In order to do so, the
class provides: (1) an in-depth coverage of the programming language of choice
for system level programming, C, (2) an introductory coverage of principles
behind operating systems, and (3) examples of utilizing some basic operating
systems interfaces using C such as forking processes, accessing file systems,
inter-process communication and socket programming. Basic networking concepts
will also be introduced from the point of view of inter-process communication.
Expected
learning outcomes
Upon
completing this course, the student will:
·
Be able to design and implement
programs in programming language C
·
Have understood the basic
concepts used in operating systems, such as processes, memory management, file
I/O, system calls and virtual machines.
·
Have understood the basics of
process management such as scheduling, synchronization, multi-threading,
inter-process communication and deadlocks.
·
Have understood the basic
concepts in computer networks, such as the OSI model, socket communication, etc
·
Be able to implement
multi-threaded programs and use inter –process communication primitives using C
Detailed
list of topics and approximate schedules
Week |
Topics |
1 |
Introduction,
Overview of C, Simple Data Structures |
2 |
Functions,
Recursions, (Quiz 1) |
3,4 |
Arrays,
Strings, Pointers (Quiz 2) |
5,6 |
Bitwise
operators, structures, unions, File I/O (Test
1) |
7 |
Advanced
data structures (linked lists, trees) |
8 |
Signal
handling, Introduction to OS (Quiz 3) |
9,
10 |
Processes,
threads, programming examples |
11 |
Process
synchronization, semaphores (Test 2) |
12
|
Scheduling
basics and files systems |
13 |
Deadlocks
(Quiz 4) |
14 |
Introduction
to networking, client-server programming, sockets |
Grading
4
Quizzes (20%)
3
or 4 lab assignments (30%)
2
Tests (30%)
1
Final (20%)
Recommended Texts
·
Silberschatz,
P. Galvin, and G. Gagne, Operating System Concepts, John Wiley, Hoboken, NJ,
2008 or 2011
·
H.M. Deitel
and P.J. Deitel, C: How to Program, Prentice Hall,
Upper Saddle River, NJ, 3rd edition or higher
·
K.A. Robbins and S. Robbins, UNIX
Systems Programming, Prentice Hall, Upper Saddle River, NJ, 2003
Class
slides will be available via e-campus.
Grading Policy
No make-up exams except by prior
arrangement with instructor
Late assignment = no assignment
Exam grading appeals in writing on the
day the exam is returned.
Attendance
Policy
Consistent with WVU guidelines, students
absent from regularly scheduled examinations because of authorized University
activities will have the opportunity to take them at an alternate time. Make-up exams for absences due to any other
reason will be at the discretion of the instructor.
Expected
workload
CS-350 is a hands-on course, and the expected
workload is relatively high. You MUST be prepared to dedicate AT LEAST 6-8
working hours a week to this class (excluding the time spent in the classroom).
This is the average. The workload for some of the programming assignments will
significantly exceed the 8 hours mark.
Academic Honesty
Students are encouraged to share discussions
regarding class topics. However, collaboration during the implementation of
programming assignments and tests is strictly forbidden. Please, be aware that
your programs will be AUTOMATICALLY compared with each other during the
evaluation. Assignments with non-accidental similarities will receive the grade
zero (0%). Repeated offense will lead to an F in the class.
Social Justice Statement
The West Virginia University community
is committed to creating and fostering a positive learning and working
environment based on open communication, mutual respect, and inclusion. If you
are a person with a disability and anticipate needing any type of accommodation
in order to participate in this class, please advise me and make appropriate
arrangements with the Office of Disability Services (293-6700). For more information on
West Virginia University's Diversity, Equity, and Inclusion initiatives, please
see http://diversity.wvu.edu.
Integrity
Statement
The
integrity of the classes offered by any academic institution solidifies the
foundation of its mission and cannot be sacrificed to expediency, ignorance, or
blatant fraud. Therefore, I will enforce rigorous standards of academic
integrity in all aspects and assignments of this course. For the detailed
policy of West Virginia University regarding the definitions of acts considered
to fall under academic dishonesty and possible ensuing sanctions, please see
the Student Conduct Code at http://www.arc.wvu.edu/admissions/integrity.html.
Should you have any questions about possibly improper research citations or
references, or any other activity that may be interpreted as an attempt at
academic dishonesty, please see me before the assignment is due to discuss the
matter.