Tools and Techniques for Physics Computing |
||
Session |
Description |
Lecturer |
Lecture 1 Lecture 2 |
Introduction to the Track To start, we discuss some of the characteristics of software projects for high energy physics, and some of the issues that arise when people want to contribute to them. This forms the framework for the Software Technologies Track. We then continue with a brief introduction to software engineering from the perspective of the individual contributor, both as a formal process and how it actually effects what you do.
Tools You Can Use This lecture discusses several categories of tools & techniques you can use to make yourself more productive and effective. Continuous testing and documentation has proven to be important in producing high quality work, but it's often difficult to do; we discuss some available approaches. Many problems require specific tools and techniques to solve them effectively: We discuss the examples of performance tuning and memory access problems.
Tools for Collaboration
HEP software is built by huge teams. How can this be done
effectively, while still giving people satisfying tasks to
perform?
Software Engineering Across the Project
Now that we've covered both individual and group work, we go
back to the software engineering topics of the first lecture
to see how these fit together. How does our individual work
effect the ability of the entire project to proceed? What
are tools and techniques that will improve both our
individual work, and out contributions to the whole? |
|
Exercise 1 Exercise 2 Exercise 3 |
Exercises 1, 2 and 3 The first two exercises provide some direct experience with the tools and techniques described in Lectures 1 and 2. Teams of two students will work together to update existing applications, working through examples designed to show the strengths and weaknesses of various tools and approaches. This will be followed by small projects for additional development experience. |
|
Exercise 4 Exercise 5 Exercise 6
|
Exercises 4, 5 and 6 After the two-person teams acquire some experience with the development and release tools, we will group projects to demonstrate some of the real-world issues discussed in the lecture. Groups of two teams will first work together to create a functional release from individual sub-projects at various stages of completion to show the strengths and weaknesses of test and release tools. This is followed by a larger scale exercise with groups of five teams. |
|
Prerequisite and References |
Desirable Prerequisite Basic programming and software engineering |