12 total hours of lecture, optional discussion sessions
each afternoon and as much time as you can put in on your own between
Free except for a $20 fee for copying transparencies for those who
choose not to print or copy their own. (See below.)
The class has a strong focus toward HEP but attendance is not
restricted to physicists. It is oriented toward the highly motivated who
cannot break away from their regular work for a week at a crack.
Class limit: 40
The only prerequisite is experience in computer
programming. In particular, no prior knownledge of the C language is
needed. Programming experience entirely in Fortran is adequate. It is
recommended that the student take FAST TRACK TO OBJECTS but this is not a
requirement. The recommendation to take FAST TRACK comes from Roy Thatcher
not Paul Kunz who had seen FAST TRACK.
All employees or scientific visitors are eligible regardless
of whether or not they have taken another C++ class or not.
Each student will have transparencies of her/his own priot to
class and HAVE LEARNED HOW TO COMPILE AND LINK A C++ program from some
account. A guide to doing this will be available through the Computing
Division Training Web Page (currently under construction).
John J. Barton and Lee R. Nackman
Scientific and Engineering C++
This is in the Fermilab Stockroom. As of 12:00 April 22,
there are 22 copies. An order has been placed for 40 more
but we cannot guarantee that the stockroom will have enough
copies by May 13 for all students.
|Monday May 13||Curia II 8:00-12:00||1 West 3:30-6:00|
|Tuesday May 14||Curia II 9:00-11:00||Curia II 3:30-6:00|
|Wednesday May 15||Curia II 9:00-11:00||Curia II 3:30-6:00|
|Thurday May 16||Curia II 9:00-11:00||1 West 3:30-6:00|
|Friday May 17||1 West 9:00-11:00||1 West 1:30-4:00|
The course consists of six lectures of about 1.5 hours each. Some
may run closer to two hours if there are lots of questions. At Fermilab,
the lectures will all run in the morning with the first two lectures given
back-to-back on Monday morning. Students are expected to spend time
reviewing the lecture notes, reading the book and trying to write some
code. A discussion session will be held each afternoon to answer any
questions and discuss whatever students want. Paul Kunz will run the
discussion sessions except for Friday where a local person experienced in
C++ will fill in.
PostScript versions of the transparencies, printed two-up, are available
or via AFS
where `n' is 1-6. There are 188 transparences all together. (Note from
RCT: you need to copy these to your own area and "uncompress" them before
sending them to a postscript printers.)
All students are expected to have copies of these prior to the first
lecture. A student is free to copy, decompress and print his/her own copy.
The Computing Division will have several master copies available to be
The course starts with the very basics and ends with a sophisticated
example of tracking code. The content of each lecture is roughly the
o session 1: basic declarations, conditional structure, operators.
o session 2: pointers and functions.
o session 3: introduction to classes including operator overloading
using 3-Vector from CLHEP as example.
o session 4; more on classes with arrays and lists and including
o session 5: introduction to inheritance and complete physics
o session 6: more on inheritance with polymorphic classes from Gismo.
This course is not a "hands-on" style course. Only one practical
exercise is suggested in the lectures. The students are expected to
take their own initiatives in getting started.
By the end of the course, one should be able to read, in principle
any C++ code written for HEP.
How to enroll
Send E-mail to FNAL: VALADEZ with the following
3) E-mail address
4) Experiment or Division/Dept/Group
5) University if any
6) Grad student, post-doc, other (specify)
7) What prior classes you have had in C++ or OOP, if any.