Teaching Objectives:
Introduce the basic concepts of algorithms and data structures.

Recommended Prerequisite Knowledge:
Basic knowledge of computer science and mathematics.

You cannot self-enroll in this course.

Teaching objectives:
The objectives sought in class are:
• A mastery of the fundamentals of written communication
• The acquisition of methods and tools facilitating the production of one's writings.
• The improvement of the writing quality of various types of documents
The objectives sought in practical work are:
• Effectively use writing tools (Word/Latex) by putting into practice the writing techniques seen in class.
• Use collaborative writing tools via the Internet (Overleaf, Google Docs, etc.)
• Effectively use spreadsheet creation tools (Excel, etc.)
• Use electronic messaging and email writing tools, especially in the context of collaborative work.
• Effectively use research and synthesis tools for relevant information (collection, sorting) given the heterogeneity of documentary sources (books, magazines, Internet, etc.).

The key objective of the operating system is to make computers easy to use. It achieves it by efficiently managing hardware resources and providing an interface that's easy to understand. This course aim to clarify the basics of an operating system, as well as, its generations history, functionalities, structure and its different classes. We focus on one of the most used OS which is UNIX system, and learning the sessions management, using commands applied for files and directories and other shell programming commands. Finally , the student will be able to install and manage the system. 

Objective of the course is to clearly explain the principle operating of the computer and give a detailed presentation of its architecture. So the objective of the course is to popularize all the basic concepts of a computer and offer some of the knowledge needed to understand how computers work, know the representation of numbers, understand what is a numeration system and clearly explain the operating principle of the computer. Among the main objectives of the course is to know the main components of a computer, understand the methods of synthesis of combinatorial and sequential logic systems and to  Acquire a low-level knowledge of programming.