Course unit

Technical foundation of computer science

Last updated: 22/02/2024

Edit

Course Director(s):

SERPAGGI Xavier LEFRANCOIS Maxime

General Description:

This course is given in English as it corresponds to a Teaching Unit of the International MSc on Cyber Physical and Social Systems (CPS2): AI and IoT

Part 1: Everything from the Command Line

The command line interface is an essential tool for computer developers, both for its wealth of available tools and for its ability to increase productivity through the development of ad-hoc scripts.

Each of the other courses in the Computer Science Major makes use of the Shell command line interface, now available on all major operating systems.

The objective of the "Everything on the Command Line" part of this course is for students to master the fundamental concepts of the Shell command line, and to become comfortable with the command line interface for computer development projects.

The following concepts will be covered:

  • the file system and working with it,
  • text editing and processing,
  • input/output streams and command chaining,
  • process management
  • basic scripting.

Part 2: Technological Foundation of Software Development

The second part of this course aims to discover the tools and methods that are essential to know in any modern software development project.

Students will discover:

  • Concepts involved throughout the development and implementation of software systems
  • Modern tools and methods adapted to the development and implementation of software systems

The course consists of eight independent parts:

  • Master your working environment
  • Manage your source code
  • Master your development environment and software dependencies
  • Automate code production
  • Debug, log, test, profile, analyse your software
  • Document, license, publish, maintain your software
  • Run your software anywhere with Docker
  • Integrate and deploy your software continuously
  • Key words:

    Shell Programming Unix commands

    Number of teaching hours

    38

    Fields of study

    Computer Science, Information Systems

    Teaching language

    English

    Intended learning outcomes

    On completion of the unit, the student will be capable of: Classification level Priority
    Basic concepts of the Shell command line interface 1. Knowledge Essential
    Mastering the Shell command line development environment 2. Understand Important
    Know the main Unix functions and commands 3. Apply Essential
    Write simple Shell command-line programs 7. Create Important

    Learning assessment methods

    Percentage ratio of individual assessment Percentage ratio of group assessment
    Written exam: % Project submission: %
    Individual oral exam: % Group presentation: %
    Individual presentation: % Group practical exercise: %
    Individual practical exercise: % Group report: 50 %
    Individual report: 50 %
    Other(s): %

    Programme and content

    Type of teaching activity Content, sequencing and organisation
    Everything from the Command Line

    Lectures: Principle of Unix command processing (standard input and output, streams, command arguments, files, command interpreter) Overview of Unix commands.

    Practical Work: Use Unix commands to process streaming files. Simple shell programs


    Technological Foundation of Software Development

    Eight lectures, each having a set of todos that the students must submit individually.