Systems-oriented programming

  • Teaching

    Details

    Faculty Faculty of Science and Medicine
    Domain Computer Science
    Code UE-SIN.02020
    Languages English
    Type of lesson Lecture
    Project
    Exercise
    Level Bachelor
    Semester SS-2025

    Title

    French Programmation proche du système
    German Systemnahe Programmierung
    English Systems-oriented programming

    Schedules and rooms

    Summary schedule Friday 13:15 - 17:00, Hebdomadaire, PER 21, Room C140 (Spring semester)
    Struct. of the schedule 2+2h par semaine durant 14 semaines
    Contact's hours 56

    Teaching

    Responsibles
    • Cudré-Mauroux Philippe
    Teachers
    • Cudré-Mauroux Philippe
    • Luggen Michael
    Description Introduction to a basic system programming language (C): Constants, variables and basic types. Expressions, statements and control structures. Advanced types: pointers, arrays and structures. Functions, procedures, argument passing modes, scoping (local/global, private/public, and volatile/permanent variables).

    Introduction to system programming: memory model including static and dynamic memory allocation. Function call, execution stack and abstract syntax trees (AST) diagrams. ADT diagrams. Dynamic memory allocation (malloc, free). Process and thread models, including program counter (pc) and interrupts.

    Abstract data types: stack, queue, (double) linked list, token list, priority list and binary tree.

    Introduction to the Unix programming environment: command line, including pipe and input/output redirection. File system and privileges, including hard and symbolic links. Regular expression and Unix variables. Bash shell scripts, make, gdb debugger and performance tools. Secure remote access.
    Training objectives The student will first develop the ability to read C code, use Unix commands and test simple C programs. Then they will learn to write, debug and test C programs including simple concurrent programs, and use more advanced Unix tools (make, gdb debugger, Bash shell scripts). Finally they will learn to specify classical abstract data types in C.
    Condition of access

    Registration for all teaching units AND exams is mandatory. Please take note of the registration deadlines of the faculty of science and medecine. 

    If you have difficulties to register for the course over the student portal send an e-mail to stephanie.fasel@unifr.ch mentionning your full name, SIUS number, course title and code. 

     

     

    Comments

    Les unités d’enseignement se composent généralement de deux heures de cours et deux heures d’exercices par semaine. Nous vous prions de bien vouloir vous conformer aux délais d’inscriptions aux épreuves de la Faculté des sciences et de médecine.

    Softskills No
    Off field No
    BeNeFri Yes
    Mobility Yes
    UniPop No
  • Dates and rooms
    Date Hour Type of lesson Place
    21.02.2025 13:15 - 17:00 Cours PER 21, Room C140
    28.02.2025 13:15 - 17:00 Cours PER 21, Room C140
    07.03.2025 13:15 - 17:00 Cours PER 21, Room C140
    14.03.2025 13:15 - 17:00 Cours PER 21, Room C140
    21.03.2025 13:15 - 17:00 Cours PER 21, Room C140
    28.03.2025 13:15 - 17:00 Cours PER 21, Room C140
    04.04.2025 13:15 - 17:00 Cours PER 21, Room C140
    11.04.2025 13:15 - 17:00 Cours PER 21, Room C140
    02.05.2025 13:15 - 17:00 Cours PER 21, Room C140
    09.05.2025 13:15 - 17:00 Cours PER 21, Room C140
    16.05.2025 13:15 - 17:00 Cours PER 21, Room C140
    23.05.2025 13:15 - 17:00 Cours PER 21, Room C140
  • Assessments methods

    Written exam - SS-2025, Session d'été 2025

    Assessments methods By rating
    Descriptions of Exams Selon modalité A de l'annexe du plan d'études en informatique
    Comment

    Closed book exam

  • Assignment
    Valid for the following curricula:
    Additional Courses in Sciences
    Version: ens_compl_sciences
    Paquet indépendant des branches > Initiation courses in Computer Science

    Additional Programme Requirements to the MSc in Bioinformatics and Computational Biology [MA]
    Version: 2022_1/V_01
    Additional Programme Requirements to the MSc Bioinformatics and Computational Biology > Initiation courses in Computer Science

    Additional Programme Requirements to the MSc in Computer Science [MA]
    Version: 2022_1/V_01
    Supplement to the MSc in Computer science > Initiation courses in Computer Science

    Additional Programme Requirements to the MSc in Digital Neuroscience [MA]
    Version: 2023_1/V_01
    Supplement to the MSc in Computer science > Initiation courses in Computer Science

    Additional TDHSE programme in Computer Science
    Version: 2022_1/V_01
    Additional TDHSE Programme Requirements for Computer Science 60 or +30 > Programmes 60 or +30 > Additional Programme Requirements to Computer Science 60 > Additional TDHSE programme for Computer Science 60 (from AS2020 on)

    Ba - Business Informatics - 180 ECTS
    Version: 2020-SA_V02
    3nd year 60 ECTS > 3rd year courses > Cours à choix min. 14 ECTS / Wahlkurse min. 14 ECTS > Cours à choix - Type A / Wahlkurse - Typus A > Systems-oriented programming

    Computer Science 120
    Version: 2022_1/V_01
    BSc in Computer science, Major > Computer Science 1. year (from AS2019 on)

    Computer Science 30
    Version: 2022_1/V_01
    Minor in Computer science 30 > Computer Science Minor 30 and 60 ECTS compulsory (from SA2020 on)

    Computer Science 60
    Version: 2022_1/V_01
    Minor in Computer Science 60 > Computer Science Minor 30 and 60 ECTS compulsory (from SA2020 on)

    Computer Science 50 [BSc/BA SI]
    Version: 2022_1/V_01
    BSc_SI/BA_SI, Computer science 50 ECTS, 1st-3rd years > BSc_SI/BA_SI, Computer Science, 2nd-3rd years, elective courses for 50 ECTS (from AS2020 on)

    Computer Science [3e cycle]
    Version: 2015_1/V_01
    Continuing education > Initiation courses in Computer Science

    Computer Science [POST-DOC]
    Version: 2015_1/V_01
    Continuing education > Initiation courses in Computer Science

    Computer Science [TDHSE] 60
    Version: 2022_1/V_01
    Minor in Computer Science (TDHSE) 60 > Computer Science Minor TDHSE 60 ECTS (from SA2021 on)

    Mathematics 30 for Mathematicians (MATH 30MA)
    Version: 2022_1/V_01
    Mathematics for mathematicians (MATH 30MA), minor 30 (from AS2020 on) > Mathematics, minor MATH 30MA, elective courses (from AS2018 on)

    Mathematics 30 for Physicists (MATH 30PH)
    Version: 2022_1/V_01
    Mathematics for physicists (MATH 30PH), minor 30 (from AS2020 on) > Mathematics, minor MATH 30PH, elective courses (from AS2018 on)

    Pre-Master-Programme to the MSc in Bioinformatics and Computational Biology [PRE-MA]
    Version: 2022_1/V_01
    Prerequisite to the MSc in Bioinformatics and Computational Biology > Initiation courses in Computer Science

    Pre-Master-Programme to the MSc in Computer Science [PRE-MA]
    Version: 2022_1/V_01
    Prerequisite to the MSc in Computer science > Initiation courses in Computer Science

    Pre-Master-Programme to the MSc in Digital Neuroscience [PRE-MA]
    Version: 2023_1/V_01
    Pre-Master-Programme to the MSc in Digital Neuroscience > Initiation courses in Computer Science