This page contains an overview of expected learning outcomes from all labs. It can be useful if you are searching for a particular topic but do not remember in which lab the topic was covered.

Lab #1

Go to lab page

Conceptual knowledge

  • explain why graphical user interface is not a fixed part of Linux
  • list several differences between various graphical interfaces available in Linux
  • explain in broad terms what is a Linux distribution
  • explain what can be understood under the term of unix family of operating systems
  • list a few types of assets that are typically needed for software projects
  • explain in broad terms what is a versioning tool
  • explain fundamental high-level operations of versioning tools

Practical skills

  • boot your own machine into Linux (either via USB, dual-boot or virtualized)
  • log in to a graphical Linux environment
  • log in to the faculty instance of GitLab
  • create a new project in GitLab
  • upload a new file to GitLab via its web user interface and create a commit from it
  • edit existing files in a GitLab project using its web interface
  • customize a selected graphical environment
  • create a basic GitLab issue in a given project

Lab #2

Go to lab page

Conceptual knowledge

  • list pros and cons of using a command-line interface vs a graphical one
  • explain the difference between a terminal (emulator) and a shell
  • explain what is a path to a file
  • explain difference between a relative and an absolute file path
  • explain what are shell (filename) wildcards
  • explain what are command-line options (switches)
  • explain usefulness of -- delimiter (when using wildcards on specifically named files)
  • explain what is a home directory

Practical skills

  • start and close (exit) a terminal emulator
  • customize a selected terminal emulator
  • browse through a filesystem via text user interface tools (e.g. mc or ranger)
  • browse through a filesystem using commands ls and cd
  • use basic switches of the ls command such as -l, -h or -a
  • use wildcards to apply commands to specific subsets of filenames
  • run own Python programs from the command line
  • view contents of text files using the cat utility
  • view contents of binary files in hexadecimal using the hexdump utility
  • identify file type by using file utility
  • use (basic operations) of the built-in manual pages
  • use clipboards available in a graphical interface on Linux
  • use tab completion to effectively write file names and paths
  • use irregularly named files