====== Course Syllabus ===== ===== Part I: Basic Tools (6 weeks) ===== * Introduction to Python. Elementary values and data types. * Straight line programs, assignments to variables, type conversion, math library. * Strings, lists, and tuples. Vectors and arrays. Conditionals and loop structures. * Plotting using MatPlotLib and 3D visualization in VPython. * Functions, parameters, and scope. Recursion. * Exam 1 ===== Part II: Computational Tools and Methods (6 weeks) ===== * Arithmetic and random numbers. Using NumPy. Numerical and problem stability. * Computational Physics: Applications of Monte Carlo Simulation * Introduction to trees and graphs, using NetworkX, graphs in science applications. * Bioinformatics: Analyzing biological structures and their visualization using Cytoscape. * Grand challenges in scientific computing. * Exam 2 ===== Part III: Looking Under the Hood at Computer Science (3 weeks) ====== * Object-oriented design. Use and design of classes, OO concepts. * History of computer science. * Limits of computing, intractability, computability. * Future models of computation: DNA computing, quantum computing. * Comprehensive Final Exam