When accessing a web-page, how does the data (images, text, ...) get from the web-server to your computer, across the Internet? Which protocols make "the net work", and upon which algorithms and paradigms are those protocols constructed?
Sending information across a (dynamic) network, such as the Internet, in an optimal fashion depends both on the topology of the network, as well as on physical constraints, challenging the design of adaptive algorithms.
Different options are available, each having a numerus clausus.
This course takes place between October and January.
The main topic of this lesson is to present applications for mobile phones. In this course, to avoid architecture problem between Android, IOS and so on, we
show how to develop web applications on smartphones either as a webpage or as a native application.
Prerequisite : None
In 2011, the number of web sites was approximately 155000000 compared to the 54000000 of 2004. Moreover, these sites offer more and more personnalized services: agregators, shared workspace or blogs. This new deal parallels the increase of well-suited technologies meeting these demands.
This course aims at tackling the relevant development problems from a practical point of view. Among the techniques:
- Object oriented programming in PHP.
- Introduction to data bases through MySQL.
This course is mainly composed of programming labs. The students will have to build a long term project like the development of a Web application dynamically maintaining a library (clients, stock, booking, etc.), a blog web site, etc.
During the labs, some of the key aspects of modern computer science and its industrial realizations will be approached.
Prerequisite : INF 311-421 ou INF 321, INF 431 strongly recommended.
The Modal efficient programming has two goals. Learn how to implement quickly a program and how to find the quickest algorithm and implementation for a given problem. This course will develop the programming skills required for some job offers in computer science (for example Google). The idea is that methods in project management for software engineering can only be understood after some programming experience. As for the course content, we will review a large number of algorithms for combinatorial problems, graph problems and computational geometry. In addition the students will implement these algorithms and solve problems from the ACM programming contest (ICPC). We will also train for team work and read source code.
Prerequisite : None
The goal of this MODAL is to explore three questions:
- How does one write network-enabled applications, such as a file-sharing application, an on-line game or even a web-server?
We will explore the programming principles, constraints and primitives, needed to develop communicating systems, as well as basic considerations for distributed algorithms enabling e.g. Skype and IRC;
- How does the Internet really work?
We will explore the protocols for communicating between two computers on the Internet, as well as the protocols for managing the Internet and ensuring that no matter where we are, we can always access www.carlabruni.com routing, DNS, .... We will explore both the algorithmic underpinnings that make the Internet work, as well as how they manifest themselves in actual protocols.
- What are the technologies behind terms such as "switch", "router", "hub", "IPv6", "VPN" etc?
This MODAL is composed of a small number of "background lectures", followed by a selection of "technology lectures", with topics chosen in consultation between students and teachers. During the lab exercises students, in groups of 2-3, will undertaking developing a project: a "wireless ad-hoc network" among laptops and cell-phones, a distributed file-sharing application, a chat-system, a distributed web-server....
Prerequisite : None
Today, images are not only consumables anymore: we produce them every day. And every day, we discover new applications: virtually walking in the street (Google Streetview); browsing our own photos in 3D (Microsoft PhotoSynth); searching automatically for our friends in them (face recognition in Google Picasa); and so on.
The computational photography MODAL introduces novel and playful interactive techniques that reinvent the experience of creating, sharing and consuming visual content
Initial lessons will introduce common knowledge and techniques. They will be illustrated on computer. The major part of the course will consist of programming assignments. Students will have to design their own solutions, requiring previously seen techniques as well as specific ones.
Prerequisite : None.
Nowadays, many control softwares implement safety critical functions in systems like airplanes, trains or nuclear power plants. A software bug may have catastrophic consequences, as was the case for the first flight of the Ariane 5 launcher.
This Modal proposes a practical introduction to the techniques for the verification of software systems similar to those that can be found in real embedded systems. For the Lab sessions, we will use the Lego Mindstorms robots, and the Lejos programming language.
The amphis will first present the notion required for the Lab sessions and will introduce the mathematical foundations required to understand software verification (including indecidability and its consequences on software verification, common program reasoning techniques such as abstract interpretation or model checking, practical use of these techniques in real systems). These notions will be put to work in the Lab sessions in order to verify simple properties about the robots motion and reaction.
Rerequisite : None
Experiments in Biology lead to a large amount of information. This local information allows the reconstruction of complex structures, these being complex because of their size or their architecture. The large-scale information processing of the data allows the building of descriptive or explicative models for biological phenomena.
Many software packages of current use are built from simple programmatic methods. We will learn to extend these methods and apply them to real examples. We could envision addressing problems such as: pathological gene detection, high-throughput sequencing, and genome reconstruction.
This modal can be seen in two different ways:
1- a set of programming projects in a field not being computer science
2- a concrete introduction to bioinformatics.
Evaluation mechanism : The validation of this module relies on a project except for efficient programming which has a classical examination.
Last Modification : Friday 6 April 2012