Table Of Contents

Next topic

1. Introduction to C++

Download

LAL-info documentation

spot

The primary purpose of this lecture is to explore various computer science technologies which are exercized through:

  • the conception,
  • the building,
  • and the development

of a complex application like those developed in an actual scientific collaboration.

Throughout this lecture, the following items will be investigated:

A graphical application loosely inspired from an actual scientific imaging application, will be used throughout this lecture to back our exploration.

Agenda

Day 1

Bootstrapping the tools, first steps with C++ programmation:

Day 2
  • read a structured data file containing a picture
  • discover the Qt framework
Day 3
  • classes and graphical shapes
  • development within DrawQt
Day 4
  • structured data: reading geometrical shapes
 
Day 5 and more  

The various steps which will be followed on during this hands-on:

  1. presentation of development tools and tools to ease the development: make, CMT, C++, ...
  2. build of a small C++ application to introduce the use of input/output (I/O) and of the standard library (STL)
  3. introduction to a graphical framework
  4. interconnect the user interface and the C++ user code. Study the whole connection chain (create a shared library, declare C++ modules in the GUI, automatization with CMT)
  5. definition of data structures to store graphical scenes. Definition of classes, creation of collections (leveraging STL)
  6. definition of a file storage format. Elaborate save-and-reload functions for the graphical scenes.

Bootstrapping

The first steps on how:

  • to login
  • to change your password
  • to launch applications

are described on this page.

Grading

Your work will be graded considering the following 3 items:

  1. quality of the produced code (8 pts):
  • choice and respect of coding conventions
  • choice of variables, methods, classes, ... naming
  • code clarity
  • usage of Doxygen
  1. usage of tools (8 pts)
  • CMT
  • Subversion to manage and monitor the evolution of your work (regular, logical commits with sensible comments)
  • Doxygen to document your code
  • tests of the code in a dedicated directory (with svn use)
  1. the quality of work invested in the hands-on sessions as well as its progression (4 pts)

CS hands-on at LAL