CS 3335 Systems Programming

Class Times: TR 9:00-10:20 am, COMP 322

Instructor: Vladik Kreinovich, office COMP 215, email vladik@utep.edu, phone 747-6951.

Faculty office Hours: TR 8:30-9 am, 10:30-11 am, 4-4:30 pm, 6-6:30 pm, or by appointment.

Teaching Assistant (TA): Tanja Magoč, email t.magoc@gmail.com.

TA office hours: M 1:30-2:30 pm, TR 12-1 pm, or by appointment, in COMP 304.

Current Catalog Description: The design and implementation of the programming environment including editors, compilers, loaders and linkers, debuggers and operating systems.

Prerequisite: CS 2402 with a grade of "C" or better.

Students should know the basic constructs of programming, e.g., data types, control structures, procedures, and functions. Students should know the following computer science concepts: operating systems, files, program, memory, input/output and peripheral devices.

Textbook: R. E. Bryant and D. R. O'Hallaron, Computer Systems: A Programmer's Perspective, Upper Saddle River, N. J.: Prentice Hall, 2003.

Course Outcomes:
Level 1: Knowledge and comprehension
Level 1 outcomes are those in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions. The material has been presented only at a superficial level.

Upon successful completion of this course, students will be able to:

  1. Define basic UNIX OS concepts such as: process, program, process groups, signals, running programs, process control, address space, user and kernel modes, system calls, context switching.
  2. Understand methods and the purpose of measuring the execution time of a program.
  3. Explain the client-server programming model and how this applies to networks and the global IP Internet.
  4. Describe file access and usage (open, close, read, write, sharing, metadata).

Level 2: Application and analysis
Level 2 outcomes are those in which the student can apply the material in familiar situations, e.g., can work a problem of familiar structure with minor changes in the details.

Upon successful completion of this course, students will be able to:

  1. Apply C programming language constructs and grammar to create programs and write system software.
  2. Use makefiles, linking, object files, loading, symbol resolution, shared and static libraries, debugging and execution of programs linked in various forms.
  3. Demonstrate handling of exceptions within a process and to control processes.

Level 3: Synthesis and evaluation
Level 3 outcomes are those in which the student can apply the material in new situations. This is the highest level of mastery.

Upon successful completion of this course, students will be able to:

  1. Assess the importance of file formats, word sizes, word alignment, hardware characteristics (e.g. processor speeds & memory) when working in an environment with multiple OS & hardware.
  2. Choose among options available in systems programming to provide software updates based on library and language usage. (e.g., shared/static libraries, posix/non-standard development tools, and web technology).
  3. Choose among several tools and concepts from this class that are used to support the development of new programs, in particular makefiles, loaders, linkers, debuggers.

Major Topics Covered in the Course:

Assignments and Tests: There will be two tests (on September 30 and on November 20), a project, and the final exam. There will also be home assignments for each topic. Maximum number of points: Final Exam: on Tuesday, December 9, 10 am - 12:45 pm.

You must take the final exam during the time shown in the schedule for the class section that you are formally enrolled in. This is University policy. If you have a scheduling conflict (e.g., if you are taking a final at EPCC) or if you are scheduled for three final exams in one day, see the instructors in advance.

Grading: The nominal percentage-score-to-letter-grade conversion is as follows:

We reserve the right to adjust these criteria downward, e.g., so that 88% or higher represents an A, based on overall class performance. The criteria will not be adjusted upward, however.

Standards of Conduct: You are expected to conduct yourself in a professional and courteous manner, as prescribed by the UTEP Standards of Conduct.

Graded work, e.g., homework and tests, is to be completed independently and should be unmistakably your own work (or, in the case of group work, your team's work), although you may discuss your project with other students in a general way. You may not represent as your own work material that is transcribed or copied from another person, book, or any other source, e.g., a web page. Professors are required to--and will--report academic dishonesty and any other violation of the Standards of Conduct to the Dean of Students.

Disabilities: If you feel that you may have a disability that requires accommodation, contact the Disabled Student Services Office at 747-5184, go to Room 106E Union, or email dss@utep.edu

Good luck!