20465 System Programming Laboratory 1

Credits: 3 intermediate credits in Computer Science

Prerequisites: none

Required: Introduction to Computer Science Using Java 2

The course is based on The C Programming Language (2nd ed.), by B.W. Kernighan and D.M. Ritchie (Prentice Hall, 1988).

This is a basic course in application programming. It provides students with the fundamental knowledge and tools required for further studies in software development. As special emphasis is on portability, all exercises are tested in parallel on two operating systems. As the C language is strongly connected with the Unix family of operating systems, the laboratory uses Linux, a variant of this family. By the end of the course, students will reach the level of experienced Linux users.

Topics: Principles of structured programming and C Universal principles of programming: abstraction, usage of data structures, building code from basic software blocks, using libraries, writing library functions, documentation, using modules, information hiding, developing machine independent software; The Unix operating system Linux system calls, using service programs and management tolls, writing new service routines.

1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.

2or both Introduction to Computer Science Using Java I (20453) and Introduction to Computer Science Using Java II (20454).