2023-2024 / INFO0946-1

Introduction to computer programming

Duration

30h Th, 30h Pr, 10h Labo.

Number of credits

 Bachelor of Science (BSc) in Computer Science5 crédits 
 Bachelor in business engineering5 crédits 

Lecturer

Benoît Donnet

Language(s) of instruction

French language

Organisation and examination

Teaching in the first semester, review in January

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

The course alternates between specific aspect of the C programming language and algorithmic aspects.

The main themes are the following:

  • basic syntax and semantic of the C language
  • simple algorithms (linear run of an array, cumulative mathematical operations, binary search, introduction to sorting problems)
  • dividing a problem into sub-problems and  introduction to development methodology (problem analysis, invariant loop, terminating function)
  • basic data structures (record, array, string, files)
  • program modularity (function/procedure, global variable) and documenting code with specifications (defensive programming)
  • pointers and memory dynamic allocation.

The course structure is the following:

  • Introduction
  • Chapter 1: Block, Variables, Simple Instructions
  • Chapter 2: Control Statement
  • Chapter 3: Development Statement
  • Chapter 4: Data Structures
  • Chapter 5: Code Modularity
  • Chapter 6: Pointers
  • Chapter 7: Dynamic Allocation

Learning outcomes of the learning unit

The purpose of the course is to introduce, to students, basic principles of computer science and, in particular, the basic principles of programming.

The concept of a correct and efficient algorithm is highlighted, in particular in the context of a strict methodology. Dividing a problem into sub-problems, construction the solution with graphical loop invariant, documentation of the code through specifications.

The programming language studied is C.

A the end of the course, the student will be able to analyze an average size problem, to propose data structures, to divide the problem into sub-problems and to solve each one, in C, in an efficient way, relying on the programming methodology taught.

The student will also be able to use basic command line tools under Linux (among others in order to manage source code, compile it, and run it).

Prerequisite knowledge and skills

The course does not assume any knowledge in computer science or programming. However, the course assume each student has a good knowledge of French (spoken and written).

Planned learning activities and teaching methods

In addition to the theoretical course, practical sessions (i.e., solving a problem) will be weekly organized. Each practical session lasts 2 hours. Each student will have 13 practical sessions during the semester. Those sessions are mandatory.  The list of exercises to prepare (at home) prior to each practical session is given at the begining of the semester.  Preparing at home those exercises is mandatory

In addition, programming challenges (i.e., solving a problem in front of a computer) will be organized. Those challenges account in the final grade

Finally, students also have the opportunity to learn soft skills during the semester.  In particular, a formation introducing command line tools and Linux environment will be proposed to students.

Mode of delivery (face to face, distance learning, hybrid learning)

Face-to-face course


Additional information:

The course is organized during the 1st semester and is made of theoretical sessions, exercises, GameCodes, CDB activity and programming challenges.

Theoretical and practical sessions are provided on-site.  The programming challenge activity and the GameCodes are organized remotely, through CAFÉ 2.0

Recommended or required readings

The course support is mostly made of slides. A printable version (2 slides/page) is available, since the starting of the Academic Year, at the Centrale des Cours. An electronic version of the slides is also available on the course web page. The students are supposed to have, as soon as possible, the slides.

A written support for exercises (practical and laboratory sessions) is also available at the Centrale des Cours. An electronic version is also available on the course web page. Each student is supposed to have the exercises book at the first practical (or laboratory) session.  Each student is supposed to have a copy of the written support for exercises for the very first practical session (typically by the end of september)

There is no mandatory book in this course. However, any student desiring to have an additional written support may refer to those books (in French -- they all were used to build the course):

  • Claude Delannoy. "Programmer en Langage C". Editions Eyrolles. 2010 (5ème édition)
  • Rémy Malgouyres, Rita Zrour, Fabien Feschet. "Initiation à l'Algorithmique et à la Programmation en C". Editions Dunod. 2011 (2ème édition).
  • Yves Granjon. "Algorithmes en Pascale et en Langage C". Editions Dunod. 2004 (2ème édition).

Exam(s) in session

Any session

- In-person

written exam

- Remote

written exam

Continuous assessment

Out-of-session test(s)


Additional information:

The students are assessed as follows:



  • Mid-Semester test. A written test is organized early November. Typically, the test is about the Introduction and the first 3 chapters of the course (be careful, the subject may changed wrt what has been studied during lessons). This test is mandatory and counts for 15% of the final grade (i.e., 3/20) of January.
  • MCQs. During the semester, 5 practical sessions  will begin with a very short test (10 minutes) of the shape multiple choice questions (MCQs). The objective here is to ensure the student has (at least) read his course before the practical session. The total of the MCQs will count for 10% of the final grade (i.e., 2/20) of January.
  • Programming Challenges.  During the semester, 5 programming Challenges are proposed.  Challenges must be submitted through CAFÉ 2.0.  Challenges account for 10% of the final grade (i.e., 2/20)  
  • Exam. The exam is written and mandatory. It is organized in January and lasts 4 hours. The exam will count for 65% for the final grade (i.e., 13/20) of January.
Be careful, in case of failure at the mid-semester test (<10/20), the student will have to follow mandatory additional practical sessions. Those sessions are organized on Friday afternoon. The practical aspects will be explained after the mini-session.

In case of failure in January, a resit is organized. Only the June/August exam will be considered then in the final grade.

Work placement(s)

Organisational remarks and main changes to the course

The course is given during the 1st semester.

The Teacher and the TA are available, weekly, for Q/As (details and how to register for those Q/As are indicated on the course Web page, section "Contact").  In any case, it is always possible to contact them (with some prior email)

Contacts

Lecturer: Benoit Donnet (mail -- Office 1.87b/B28))

TA: Géraldine Brieven (mail -- Office 1.73b/B28)

Association of one or more MOOCs