Programming Technologies

The course focuses on introducing students to Linux and various dev tools.

Key topics

  • Computer architecture

  • Linux filesystem

  • Git. Merge Requests in GitLab. Pull Requests in GitHub

  • Shell. Bash and its alternatives

  • SSH. SSH client

  • HTTP. FTP. Working with a server via protocols. Curl CLI

  • Linux package managers (dpkg, apt)

  • Compilation stages in C/C++

  • Compiling C VS Compiling C++

  • SLL & DLL libraries

  • Build systems: make, CMake

  • Library/package installation in CMake

  • Gtest framework

  • Gmock framework

  • Benchmarks

  • Containerisation. Docker

  • Docker plugins (compose, buildx). Multi-architecture images

  • Nginx

  • GitLab CI. GitHub Actions

  • GitLab registry, GitLab pages

  • Opensource licenses

Grading system

Your grade consists of these parts:
  • Tsk — Tasks solution + code review

  • Cq — Colloqium

  • Sem — Activity during the semester

max{Tsk} := 90, max{Cq} := 10 and max{Sem} := 10

Final grade is min{(Tsk + Cq + Sem)/10, 10}.

Course policies are located here.

Instructors

Lectures

Iwan Kalinin <koefic.cien@gmail.com>

Teaching assistants
  • Georgij Morev

  • Aleksej Zlobin

  • Ahmet Gazakbaev

  • Arslan Khalilov

Assistants
  • Victoria Popova