BS0010 Systems Programming

Code BS0010
Name Systems Programming
Status Compulsory/Courses of Limited Choice
Level and type Undergraduate Studies, Academic
Field of study Computer Science
Faculty
Academic staff Jānis Eiduks
Credit points 7.0
Parts 1
Annotation The study course is an introductory course in computer systems. It introduces computer systems from a programmer's perspective, rather than a system implementation perspective that prepares students for more advanced topics that discuss the internal components of a computer system (such as an operating system or computer architecture). As a result, the study course focuses on the programmable interfaces of a computer system, as well as their correct and efficient use when writing a programme. Topics mainly include hardware/software interfaces (for example, displaying data in memory) and OS/application interfaces (for example, syscalls). Discussing these topics, the study course provides an overview of the complete computer system, hardware, operating system, compiler, and network to guide students through the various components on which modern programmes are based to achieve their intended goals..
Contents
Content Full- and part-time intramural studies Part time extramural studies
Contact hours Independent work Contact hours Independent work
C and POSIX. 9 10 0 0
Memory Representation. 5 5 0 0
Process Anatomy. 5 6 0 0
Process Environment. 7 4 0 0
Dynamic Allocator Project. 5 6 0 0
Input and Output. 5 5 0 0
Pipes and Redirection. 9 10 0 0
Virtual Memory. 5 4 0 0
Functions and Automatic Variables. 5 5 0 0
The UNIX Shell. 5 5 0 0
POSIX Signals. 8 7 0 0
Simple file access and I/O. 5 5 0 0
Races and Synchronization. 7 4 0 0
POSIX Threads and Synchronization. 5 10 0 0
OpenGL examples, Project discussion. 9 4 0 0
Effective Systems Programming. 6 10 0 0
Total: 100 100 0 0
Goals and objectives
of the course in terms
of competences and skills
The aim of the study course is to acquaint students with the basics of programming. The objective of the study course is to acquaint students with the C programming language, system calls, memory management, threads and processes.
Learning outcomes
and assessment
Is able to apply programmable interfaces correctly and effectively when writing a programme. - Projects and practical works, final exam.
Is able to explain the various components on which modern programs are based in order to achieve their intended objectives. - Tests, final exam, homework, independent work.
Understands C programming language. - Projects and practical works, final exam.
Orients in data display, system memory, I/O, files, network. - Tests, final exam, homework, independent work.
Understands the hardware, operating system, compiler to be able to run them through various components. - Tests, final exam, homework, independent work.
Evaluation criteria of study results
Final exam - 32%
Homework - 25%
Projects and practical works - 20%
Tests - 10%
Individual works - 13%
 
Course prerequisites Prerequisites in English.
Course planning
Part CP Hours Tests
Lectures Practical Lab. Test Exam Work
1 7.0 40.0 60.0 0.0 *