Les bases de l'Informatique

ITBasics
Abstract

This course aims to provide first year students a set of practical and theoretical basic IT skills. We want to ensure that students have a good understanding of fundamental concepts that will be prerequisites for other IT-related courses, like Programming, Operating Systems and GIT project management.  Students will learn how to use an UNIX operating system, from the shell usage to the most common commands. They will also be familiarized with the representation of numbers and data in Computer Science. They will be initiated to Bash scripting, and will learn to write small scripts to facilitate complex tasks. They will understand how to manage a project using GIT, from the project creation to its first release. Finally, they will be initiated to C programming, and learn how to use fundamental tools, like a compiler or a debugger.

Teaching and Learning Methods

The course will use an hybrid and interactive approach, alternating short sessions aiming to introduce the theoretical concepts with practical exercises and demonstrations. The students will have the opportunity to immediately apply the concepts on concrete examples in realistic conditions. A discussion will be initiated with the class after each exercise, to elaborate a collective correction and explain the main concepts.

The class will also include some complementary optional exercises, allowing students to dive deeper into the concepts and put them into practice on real use cases.

Course Policies

Attendance to Lectures and Lab sessions is mandatory.

Bibliography

None

Requirements

None

Description

The course will be divided into 8 sessions of 3 hours, covering 5 main topics:

- UNIX basics: this session will introduce the most commonly used UNIX commands, the main mechanisms of Bash shell and some basic concepts of Computer Science (files, permissions, processes, users, …).

- Data Representation: this session will cover the most common representations of numbers and data in memory. It will introduce conversions between various number bases (base 2, base 10, base 16), unsigned and signed integers, fixed point and floating point numbers and bitwise operators.

- Programming Basics :this session will introduce some basic programming skills and terminology. It will familiarize students with Bash scripts, allowing them to automate basic tasks using an interpreted langage

-GIT : this class aims to provide students a comprehensive overview of GIT tool, from the creation of a repository to branches management. It will provide the fundamental concepts to manage a project and work in team on a common codebase.

- C Langage (4 sessions):  This class will introduce basic concepts of C programming (e.g., variables, constants & types, arrays, conditions & loops, functions, pointers, structures & unions) and describe the use of tools like a compiler, a linker or a debugger.

Learning Outcomes

  • Manipulating the fundamentals of UNIX concepts and usage
  • Understanding how numbers and data are represented in memory
  • Learning basics of Bash scripting
  • Understanding the main concepts of GIT and learning how to manage a project
  • Learning fundamentals of C programming

Number of hours: 21h

Evaluation

7 quizz based on the main concepts introduced in the previous session (each quizz will be ~15% of the final grade).