Time committment 12 total hours of lecture, optional discussion sessions
each afternoon and as much time as you can put in on your own between
lectures.
Cost Free except for a $20 fee for copying transparencies for those who
choose not to print or copy their own. (See below.)
Focus 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
Prerequisites 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.
Eligibiliy All employees or scientific visitors are eligible regardless
of whether or not they have taken another C++ class or not.
Expectation 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).
Text book John J. Barton and Lee R. Nackman
Scientific and Engineering C++
Addison-Wesley
IBSN: 0-201-53393-6
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.
| Schedule | Lectures | Discussion |
| 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 |
Abstract 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.
Transparencies
PostScript versions of the transparencies, printed two-up, are available
from
ftp://ftp.slac.stanford.edu/users/pfkeb/c++class/session0n.ps.Z
or via AFS
/afs/slac.stanford.edu/public/users/pfkeb/c++class/session0n.ps.Z
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
photocopied.
Course content
The course starts with the very basics and ends with a sophisticated
example of tracking code. The content of each lecture is roughly the
following...
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
templates.
o session 5: introduction to inheritance and complete physics
analysis.
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
information.
1) Name
2) Phone
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.
|