Syllabus¶
last updated: May 17, 2023
Welcome to the SimCenter Programming Bootcamp 2023. 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 two weeks of daily self-study assignments, followed by three (3) hours of online lectures and exercises via ZOOM, 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.
These two weeks 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 days will cover and refresh basic concepts of python, as well as fundamentals of code design. Thursday will transition you to command-line use of python, as you’ll need on any high-performance computing (HPC) environment. The workship will conclude on Friday with a team coding challange that emphasizes on collaborative coding and computing.
Introduction to C/C++/HPC - June 5-9, 2023¶
Day 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 #5
Day 2: More Advanced C
C: Pointers Review
C: Memory Allocation
C: File I/O
C: User Defined Datatypes
Assign Homework #6
Day 3: - C: Datatypes & C++
Object Oriented Programming
C++
C++ Example
Assign Homework #7
Day 4: - Parallel Programming
Parallel Computers
MessagePassing & MPI
Day 5 - Parallel Day 2
Shared Memory & OpenMP
Assign Homework #8
Python - June 12-16, 2023¶
Day 1
Python Basics
Data types
Loops
Exercise
Conditions
Assign Homework #1
Day 2
Homework #1 review
Python matrix data types
Exercise
Python file IO
Text files
Spread sheet data
Exercise
Python plotting
Assign Homework #2
Day 3
Homework #2 review
Intro to Object Oriented Programming (OOP)
Python OOP
Classes
Inheritance
Numeric data types: operator overload
Assign Homework #3
Day 4
Homework #3 review
Python modules
Organizing your code in files
Exercise: bringing python to the command line
system call/subprocess
Assign Homework #4
Day 5
Homework #4 review
Team coding competition/exercise: collaborative tasks for groups of 3-5 people
Closing Remarks