Graduate School and Research Center In communication systems

Software development methodologies

[SoftDev]
T Technical Teaching


Abstract

  • 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.

Requirements

 Basic C programming  Knowledge of simple algorithms and data structures

Description

 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