====== Course Syllabus ===== ===== Part I: Basic Tools (6 weeks) ===== * Unit 1: Introduction to Python. Elementary values and data types. Straight line programs, assignments to variables, type conversion, math library. * Unit 2: Strings, sequences, vectors, arrays. Introduction to VPython. Functions and parameters. * Unit 3: Conditionals and loop structures. Recursion. * Exam 1 ===== Part II: Introduction to Computational Tools, Methods, and Structures (6 weeks) ===== * Unit 4: Simulation and Monte Carlo methods. Optimization methods. * Unit 5: Introductions to Computational Physics and Computational Chemistry * Unit 6: Use of data structures: trees, traversal and exploration. Recursion. * Unit 7: Introduction to graphs and their use in science applications. Visualizing massive data sets. * Exam 2 ===== Part III: Looking Under the Hood at Computer Science (3 weeks) ====== * Unit 8: Object-oriented design. * Unit 9: Algorithm design, limits of computing, intractability, computability. Future models of computation: DNA computing, quantum computing * Comprehensive Final Exam