George Mason University

Skip Navigation

CSI 604:
Introduction to Scientific Programming II

General Information


Fernando E. Camelli
Phone: 703-993-4073


  • CSI 601 and CSI 604
  • OR Permission of Instructor.


CSI604 introduces programming in C++. This course emphasizes in the application of the lengauge rather than in theory. We will present the basics of C++ programming with examples and applications to scientific problems.


  • Week 1: Introduction, Course overview, Functions, Actions, Objects, Statements, Program Structure, Comments, Identifiers, Variables, Compilation, Makefile review.
  • Week 2: Classes, New Operators, Class Methods, Friend and Other Identifiers, References.
  • Week 3: Overlaoding, Operators, Conversions, Predefined Methods.
  • Week 4: Exceptions, Derived Classes, Virtual.
  • Week 5: Index, Justification, Explanation, Template Classes, Standard Template Library (STL), Iterators, Common STL Functions.
  • Week 6: Patterns, Creation of Patterns, Structural Patterns, Composite Patterns, Facade Patterns, Behavioral Patterns, State Patterns, Command Patterns, Strategy Patterns, Iterators Patterns.
  • Week 7: Exam day - Final Project.

Recommended Bibliography

  • Scientific C++: Building Numerical Libraries the Object-Oriented Way by Guido Buzzi-Ferraris
  • C++ Programming Language (Third Edition) by Bjarne Stroustrup
  • Algorithms in C++ (Third Edition) by R. Sedgewick
  • Design Patterns: Elements of Reusable Object-Oriented Software by E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides
  • Memory as a Programming Concept in C and C++ by F. Franek
  • C Programming Language (Second Edition) by B. W. Kernighan and D. M. Ritchie

Honor Code

As in any class, you are allowed to study with other students. However, tests and homework assignments (unless otherwise specified) must be completed on your own. SPECIFICALLY - YOU MAY NOT COPY ANY TEXT OR MATERIAL AND REPRESENT IT AS YOUR OWN WORK. For both papers and for code, you may reference or link to other peoples work (if it is consistent with the assignment), but you MUST cite the source it came from. Failure to follow these guidelines will be considered a violation of GMU's academic honor code and will be treated as such.

Class Material

  1. Access Only for Students (Private)