Systems Programming

Vrije Universiteit Amsterdam

Course Description

  • Course Name

    Systems Programming

  • Host University

    Vrije Universiteit Amsterdam

  • Location

    Amsterdam, The Netherlands

  • Area of Study

    Computer Programming

  • Language Level

    Taught In English

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    COURSE OBJECTIVE
    The goal of this course is to prepare students for lab assignments and scientific research in computer systems (operating systems, compiler construction, network programming, computer networks, parallel programming, etc.) After attending this course, students should be able to develop, test, and debug "systems" programs written in C under Linux or BSD.

     

    COURSE CONTENT
    The course is a combination of lectures and lab assignments. During the course, the student is taught how to program in C, use POSIX APIs for process control and networking, understand memory management, use low-level debugging and verification tools, and use performance profiling tools.

    TEACHING METHODS
    Lectures in combination with several lab assignments to be returned during the study period. Extensive help will also be provided by ways of questions and answers sessions, and a discussion mailing list.

    TYPE OF ASSESSMENT
    The student will be graded based on the lab assignments he or she handed in (i.e., a Practicum). Exact grading scheme announced at the start of the course. There is a resit opportunity later in the year.

    ENTRY REQUIREMENTS
    - must have studied algorithms (incl. sorting, basic graph processing) and data structures (incl. lists, trees, priority queues);
    - must have basic understanding of Unix concepts (directory tree, file permissions,terminal).

    RECOMMENDED BACKGROUND KNOWLEDGE
    Prior experience with another language from the C family (eg. Java, Arduino-C, C++, Objective-C, C# or D) is strongly recommended.

Course Disclaimer

Courses and course hours of instruction are subject to change.

Some courses may require additional fees.