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.