|CSC2003 Programme||Track Description|
|ST: Software Technologies|
Patricia P.MacBride, Pere Mato
track presents modern techniques for software design and modern tools and
technologies for understanding and improving existing software. The
emphasis will be placed on the large software projects and large
executables that are common in HEP. The track will consist of lectures,
exercises and discussions. The first discussion session will occur after
several hours of exercises have been completed. The last discussion
session will be held at the end of the track.
The first 2 lectures cover a series of tools and techniques which will be exemplified during the initial series of exercises. This will be followed later in the week by 3 lectures on software engineering, design, methodology and testing. The second series of three lectures will address issues when working with large software systems, including methods for analyzing their structure and improving it. The final 3 lectures will focus on a number of technologies that are relevant and commonly used for building interactive and distributed applications.
In the exercise sessions, the students will have a chance to use the tools that are described in the lectures. They will work with CVS and configuration management tools. They will be asked to use the test and debugging tools on some simple examples. By showing how these tools can locate known problems, students will learn how to use them on new problems. Students will then be given a functional program and a brief description of what it does. The goal is to extend the program to handle a larger problem domain. It is expected that the example programs and exercises will be primarily in C++. In the final exercise sessions, the students will practice the new technologies introduced with examples. For these exercises the Python language will be used.
|Lectures||Tools and Techniques||B.Jacobsen||2|
|ST_AS_L_1||Object oriented programming with Java and C++|
|ST_AS_L_3||C++ code analysis and verification of coding conventions|
|ST_SE_L_1||Introduction to Software Engineering|
|ST_SE_L_3||Long-term Issues of Software Building|
|Technologies for Interactive & distributed computing||Andreas Pfeiffer||3|
|ST_IC_L_1||Python scripting language|
|ST_IC_L_2||XML and related technologies (XSLT, ...)|
|ST_IC_L_2||Distributed computing technologies and protocols (SOAP, XMLRPC, Web services, ...)|
|Tools and Techniques||B.Jacobsen||4|
|Technologies for interactive & distributed computing||Andreas Pfeiffer||2|
Italics: Optional lectures