Print as pdf if you want a pdf! If you want a nicer printout, click off the browser's automatically added header and footer.

Blekinge Institute of Technology
Department of Computer Science

Revision: 1
Reg.no: BTH-4.1.14-0193-2026


Course syllabus

Programming in Unix

Programming in Unix

7.5 credits (7,5 högskolepoäng)

Course code: DV1734
Main field of study: Computer Science, Software Engineering
Disciplinary domain: Technology
Education level: First-cycle
Specialization: G1F - First cycle, has less than 60 credits in first-cycle course/s as entry requirements

Language of instruction: English
Applies from: 2026-03-04
Approved: 2026-03-04

1. Descision

This course is established by Dean 2025-12-16. The course syllabus is approved by Head of Department of Computer Science 2026-03-04 and applies from 2026-03-04.

2. Entry requirements

Admission to the course requires 12 completed credits in Programming, 6 completed credits in Algorithms and Data Structures, 6 completed credits in Operating Systems, and 3 completed credits in Datacommunicaton. English 6

3. Objective and content

3.1 Objective

The course introduces the student to programming and system development in the Unix environment by combining theory with in-depth practical applications, as well as the history, structure and file hierarchies of Unix and Linux systems. The course introduces basic system concepts such as virtual machines, containers and system access via authentication. The course focuses on shell scripting with Bash and advanced C programming in the Unix environment, where aspects such as handling I/O, memory allocation, file system calls, parent /child processes and implementation of network communication via TCP/IP are covered in detail.

3.2 Content

The course comprises the following topics:

  • History and architectural structure of Unix/Linux systems and standard file hierarchies.
  • Fundamental system concepts, including virtualization, containerization, and system access control.
  • Scripting languages and shell environments for system tasks and development process.
  • C programming in a Unix environment, including I/O handling, control structures, and memory management using pointers.
  • System-level programming, file system interaction, and network communication protocols.
  • Software development utilities for compilation, build automation, debugging, and memory analysis.
  • Version control systems and industrial methodologies for software documentation and testing.
  • Introduction to low-level programming and the role of assembly language in system software and kernel-related tasks.

4. Learning outcomes

The following learning outcomes are examined in the course:

4.1. Knowledge and understanding

Upon completion of the course, students will be able to:

  • Describe the principles of shell environments and the syntax of scripting languages used for automating complex system administration and development tasks.
  • Explain the interaction between C programs and the Unix kernel, including the use of build automation (Makefile), compilation (gcc), memory management strategies, and debugging for both system and application software.
  • Define the role of assembly language and the translation process from high-level code to machine instructions within system software.

4.2. Competence and skills

On completion of the course, the student will be able to:

  • Write, debug, and troubleshoot complex shell scripts for system administration and automation, including identifying and resolving logic and execution issues.
  • Develop, compile, and debug C programs that utilize system calls, network protocols, and automated build tools (Makefiles) while managing version control and software quality.
  • Convert and combine C code with assembly language to build system-level software applications and perform low-level software analysis.

5. Learning activities

The course content is covered through lectures that introduce central concepts within Unix systems and development methodology. Students supplement their learning through self-study of literature. The course includes three laboratory sessions. Furthermore, three tutoring sessions are offered to support students in their practical assignments (script assignment, C programming, and assembler assignment).

6. Assessment and grading

Modes of examinations of the course

Code Module Credit Grade
2610 Written Assignment 1 2.5 credits AF
2620 Written Assignment 2 2.5 credits AF
2630 Written Assignment 3 2.5 credits AF

The course will be graded A Excellent, B Very good, C Good, D Satisfactory, E Sufficient, FX Failed result, a little more work required, F Fail.

The examiner may carry out oral follow-up of written examinations.

The information before the start of the course states the assessment criteria and make explicit in which modes of examination that the learning outcomes are assessed.

An examiner can, after consulting the Disability Advisor at BTH, decide on a customized examination form for a student with a long-term disability to be provided with an examination equivalent to one given to a student who is not disabled.

7. Course evaluation

The course evaluation should be carried out in line with BTH:s course evaluation template and process.

8. Restrictions regarding degree

The course can form part of a degree but not together with another course the content of which completely or partly corresponds with the contents of this course.

9. Course literature and other materials of instruction

[1]. R. W. Stevens and S. A. Rago, Advanced Programming in the UNIX Environment, 2nd ed. Boston, MA, USA: Addison‑Wesley Professional, 2005. ISBN: 978‑0‑201‑43307‑4.

[2]. A. Hoover, System Programming with C and Unix. Boston, MA, USA: Addison‑Wesley Publishing Company, Feb. 2009. ISBN:978‑0‑13‑606712‑2.

Materials such as research articles and other course materials, as well as recommendations for additional reading, are provided via the courses’ online.