Graduate School and Research Center in Digital Sciences

Software development methodologies

T Technical Teaching


  • The course aims at providing students with a common knowledge about the concepts of programming and software development in a Unix-like environment. In particular, the course will focus on practical techniques of program development for small-scale projects produced by individuals or small groups.


 Basic C programming  Knowledge of simple algorithms and data structures


 At the end of the course, students will learn "how to use a computer"

 from a programmer's and engineer's point of view. In particular, they will learn how to install the required components, use the existing tools, and design and implement a program to solve a given problem. 
 This is a "hands on" class, where students have to complete a certain number of practical homeworks that contribute significantly to the final grade.
 During the lectures, the teacher will present the various topics, discussing practical examples and common programming patterns. The course will not cover basic programming algorithms and data structures, but it will focus on writing applications to solve practical problems. For example, there will be no assignments such as "write a C program that implements a binary tree..." but, instead, something like "write a simple HTTP proxy that supports user-defined rewriting rules.."
 The topics covered in the course focus around four main points:
 the Unix environments, tools and techniques for software development under Unix, scripting languages, and programming techniques.
Nb hours: 42.00
Nb hours per week: 3.00