Syllabus¶
last updated: June 6, 2024
Welcome to the SimCenter Programming Bootcamp 2024. Following the success of our online version of this workshop, this year’s offering will be solely online.
Why are we offering the workshop online?
The online format allows easy access at low cost makes this format the most equitable and accessible and affordable version of the SimCenter Bootcamp.
You can expect to collaborate with students from across the globe and enjoy the oportunity to make new friends at unexpected places.
Our mentor system allows alumni of this workshop series to return, share their experience, and help you learn from a community of like-minded graduate students and post-docs.
The SimCenter team is putting in all effort to recreate some of the community building benefits through discussion sessions and social time.
The bootcamp is organized as 5 full days of online training via zoom. Each day two sessions are provided. Each session begins with a brief overview of the video material the participants are encouraged to watch before the workdhop (or at least the night before that days session. Folliwng the overview, the presenters will then work partially through the solution to the exercises, after which the partipants will try to complete. followed by homework assignments and some more self-study video sessions. Every morning, office hours are held for one (1) hour before the actual meetings.
The two workshops are offered as individual or as one combined workshop as follows.
The Python workshop is geared towards beginner and intermediate level material. The first three sessions will cover and refresh basic concepts of python, as well as fundamentals of code design. The fourth session will transition you to command-line use of python, as you’ll need on any high-performance computing (HPC) environment. The C/C++ workshop also starts with the assumption you know no C/C++, but that you have some basic programming experience, e.g. have completed the Python workshop. It ends writing parallel programs using threads and message passing on a HPC.
Python - July 29-31, 2024, 2.5 days¶
Session 1
Welcome Message and SimCenter Intro
What is a computer? Programming philosophy
Python Basics
Data types
Loops
Exercise
Conditions
Assign Homework #1
Session 2
Homework #1 review
Python matrix data types
Exercise
Python file IO
Text files
Spread sheet data
Exercise
Python plotting
Assign Homework #2
Session 3
Homework #2 review
Intro to Object Oriented Programming (OOP)
Python OOP
Classes
Inheritance
Numeric data types: operator overload
Assign Homework #3
Session 4
Homework #3 review
Python modules
Organizing your code in files
Exercise: bringing python to the command line
system call/subprocess
Assign Homework #4
Session 5
Homework #4 review
Team coding competition/exercise: collaborative tasks for groups of 3-5 people
Closing Remarks
Introduction to C/C++/HPC - July 31 - Aug 2, 2024, 2.5 days¶
Session 1: Basic C
Computers and Computer Programs
The C Computer Programming Language
C: Variable Types and Variable Names
C: Operations, Conditionals, and Loops
C: Functions
Assign Homework C #1
Session 2: Pointers, Memory & Files
C: Pointers Review
C: Memory Allocation
C: File I/O
Session 3: Datatypes & Abstraction
C: User Defined Datatypes
C: Data Abstraction
Session 4: Object Oriented Programming & C++
Object Oriented Programming
C++
C++ Example
Assign Homework C #2
Session 5: Parallel Programming & MPI
Parallel Computers
MessagePassing & MPI
SharedMemory & Threads