Syllabus

Abbreviations:

  • DIP3 = Dive Into Python 3
  • GB = Git Book
  • IL = Introduction to Linux
  • CLI = GNU/Linux Command-Line Tools Summary
  • BGB = Bash Guide for Beginners
  • PCP = Practical C++ Programming.

Note: fundamental programming concepts previously introduced for one language will be reviewed more briefly for another language, and only the differences between the two will be covered in detail.

Days Topic Reference Materials
Aug 30, Sep 1 Introduction to Unix and Linux: interactive shell, process and file management, text and source-code editing, Distributed revision control in Git IL 1-6, GB 1-2 Introduction to Linux

Introduction to  Linux (part 2) and Version Control in git

Sep 6,  8 Syntax of Python programming: conditional statements and loops, fundamental types, type conversion DIP3 1-3 Programming in Python 3 – I
Programming in Python 3 – II
Sep 13, 15 Python data structures: lists, tuples, dictionaries, basic input/output, string formatting and parsing, input/output to files DIP3 4,6 Programming in Python 3 – III
Programming in Python 3 – IV
Sep 20, 22 Python objects: references, member functions, classes DIP3 5 OOP in Python – I
OOP in Python – II
Sep 27, 29 Python composition and inheritance: initialization, inherited functions, type introspection DIP3 5 OOP in Python – III
Example: RPN expression evaluator
Oct 4, 6 Python standard library Python Standard Library Tour
NumPy Introduction
Oct 11, 13 Syntax of C++ programming: variable declaration, control structures, basic input/output, compilation and basic linkage PCP 1-4,6-8 Introduction to C++
Control Flow, Functions and Basic Linkage
Oct 18, 20 Review and midterm exam
Oct 25, 27 Memory management in C++: integer and floating-point numbers, variable scope, fixed arrays vs. dynamically allocated vectors PCP 5,9,11,19 Arrays, Pointers and Variable Scope
Pointers and Arrays, Pointer Arithmetic and Dynamic Memory Allocation
Nov  1, 3 C++ classes and objects: structures, member functions, composition, inheritance, virtual functions, access modifiers PCP 13,14,15, 20,21 Structures and Basic File I/O
Object-Oriented Programming in C++
Nov 8, 10 C++ classes and objects: static members, constant members; Templates and the C++ Standard Library Object-Oriented Programming in C++ – Part 2 and the C Preprocessor
Templates, Function Objects, Namespaces and the C++ Standard Library
Nov 15, 17 Elements of Fortran programming: basic syntax, functions and subroutines, modules Handouts Scientific Programming in Fortran
Nov 29, Dec 1 Programming in Fortran 90 Handouts
Dec 6 Review and assignment of final projects
Dec 20

1:00 – 3:00

Final exam