Programming Basics
Week 1
Working environment
Accounting: Logbook, PmWiki, GitHUb
Programming environment:
- Linux, Bash Shell, Gmake
 
To Do:
- System programming - Bash: startup files, environment variables, customization
 - Application programming: Read  C++ Chapter 4, pp107-114,pp127-138.  Special attention: data types, pointers, references.
- Write, compile, and run HelloWorld.C. Using GitHub create a project "Sound2Picture".
 - Under Linux create gmake environment for the projects; recompile HelloWord binary using gmake, save the entire project in GitHub.
 
 
**Document everything in the Logbook and PmWiki
Week 2
C++ programming
- Improve the structure of project "Battleship"
- /battleship
- /bin
 - /doc
 - /include
 - /src
 - /build
 
 - Readme
 - setup.sh
 
 - /battleship
 - create and use "class SUBattleship"
 
Programming specials:
- main program argument processing
 - classes, namespaces, structures, private and public class members
 - constructors, destructors, functions
 - passing functions arguments by value and by reference
 - use of standard libraries (strings, math, iostream, e.t.c. )
 
Week 3
C++ programming
- Read and write binary and text files
 - Create a program to convert an image into sound file and vice versa ( class SUConvert)
 
System environment
- environment modules
 - CVMFS, access to external software libraries
 
Week 4
C++ programming
- ROOT, simulation of data analysis 
- ntuples, histograms, fits
 
 
Weeks 4-6
- ROOT TMVA; use of neural networks for data classification
 - use of GPU for deep neural network calculations
 
Weeks 6-8
- PYTHON, PYTHON scripts, libraries, packages
 - TensorFlow for neural networks