Computer Science and Engineering

CSE 222 - Systems Programming

Home     Syllabus     Assignments     Exams

Lectures     Examples     Links


Syllabus

CSE 222, Systems Programming, 3 cr, 3 cl hrs
Prerequisite: CSE 221

Objective:   Introduce the student to the concepts and functionality for performing system functions. In-depth exercises to become familiar with their use in applications. The student will practice developing applications using system functions in C, C++, Java, and Perl.

Course Catalog Description:   This course provides an introductory overview of operating systems and system programming, mainly focusing on system-level programming based on OS services and other APIs. Topics include system calls, file I/O, files and directories, memory management, process control, inter-process communication (IPC), socket-based network programming, remote procedure call (RPC) programming, and basic security mechanisms. Course work includes substantial programming homework and team-based projects.

Content: Students will be expected to develop the skills and acquire the knowledge that are the basis of most single machine and distributed operating systems.

  1. Skills --
  2. Knowledge --

In addition to the specific topics listed above, current developments and student or instructor interests may drive the selection of other topics to be covered in the course.

The above skills and knowledge goals are combined to give the general objectives of the class as follows:

  1. Understand the basic concepts of system calls, error returns, the I/O operations and behaviors available via the system calls, and the use of available resources to uncover the details of how the system calls must be invoked and how they can be used.
  2. Develop small application programs using system calls for interprocess communications.
  3. Understand the basics of using graphs to analyze system communications interactions for synchronous and asynchronous communications.
  4. Use UNIX commands and tools to edit, compile, run, and debug programs, and to view and manage processes and interprocess communications resources.

Assignments:   Assignments will reinforce lecture concepts and demonstrate application of programming and critical thinking skills. Collaboration is encouraged, but you must give credit where credit is due. All assignments must be done independently and written (typed) in your own words. Late assignments do not exist.

Quizzes:   Daily quizzes will be used to reinforce concepts, check student comprehension, and instigate discussion. Missed quiz points cannot be made up.

Examinations:   Examinations may consist of any mix of multiple choice, short answer, and short essay questions. Your goal should be to demonstrate knowledge and understanding of course concepts.

Miniprojects aka MP (programming assignments):   All files are subject to inspection by the instructor and TA. Projects are to be submitted electronically. Submission will be to jholten@nmt.edu; the subject must be your last name followed by the project id (e.g. "Joe College MP1"). Late miniprojects do not exist.

All programming projects for this class should be written to follow the coding style for this class .

Plagiarism Policy:   Students are encouraged to discuss homeworks and projects with each other. However, everything that is turned in for each assignment and/or miniproject must be your own work. In particular, it is not acceptable to: Copy in part or in totality another person's assignment and submit it as your own work; Get someone else to do all or a part of the work for you; Submit the work of a others as your own work. These acts are plagiarism and will not be tolerated in this course.

Attendance Policy:   Students are expected to attend all classes. Five absences will result in course failure (an "F").

Grades:   The tentative percentage of points allocated to the major graded components are shown below. Student grades will be determined based on a straight scale.

Instructor Discretion:   The instructor reserves the right to modify policies to improve the execution of this course.


Home     Syllabus     Assignments     Exams

Lectures     Examples     Links

 
  Site Map  |  Contact Us