Syllabus

last updated: Jan 8, 2021

Welcome to the SimCenter Programming Bootcamp 2020. Due to COVID-19, this year’s offering will be solely online. A drawback of an online offering is the lack of interaction among the participants. 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 a series of live video conferencing (ZOOM), prerecorded video lectures, hands-on exercises with online review options, and homework assignments. The ideal flow of lessons and activities is provided in the “By Day” listing below.

Python - Dec 14-18, 2020

  • Day 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 - Machine Learning

    • Homework #3 review

    • Basics of Machine Learning

    • Popular Algorithms

    • Exercise

    • Assign Homework #4

  • Day 5

    • Homework #4 review

    • Short remarks on

      • Python modules

      • Organizing your code in files

      • system call/subprocess

      • Exercise: bringing python to the command line

    • Python Web Scrabbing

Introduction to C - Jan 4-8, 2021

  • Day 6: Basic C

    • Computers and Computer Programs

    • The C Computer Programming Language

    • C: Variable Types and Variable Names

    • C: Operations, Conditionals, and Loops

    • C: Functions

  • Day 7: More Advanced C

    • C: Pointers Review

    • C: Memory Allocation

    • C: File I/O

    • C: User Defined Datatypes

  • Day 8 - C: Datatypes & C++

    • Object Oriented Programming

    • C++

    • C++ Example

  • Day 9 - Parallel Programming

    • Parallel Computers

    • MessagePassing & MPI

    • Shared Memory & OpenMP

  • Day 10 - DesignSafe & Agave

    • Review: Exercise

    • Intro to DesignSafe & Tapis

    • Interfacing with DesignSafe through Command Line

    • Exercise

    • Building an Agave App

    • Exercise