Computer Modelling for Scientists

Programming techniques for science majors

CSCI 2202 is an introductory, project based, programming course for science majors. The course focuses on programming techniques useful for students in their scientific pursuits.

The course introduces basic programming and then goes on to guide students through using system simulations, modelling and data-driven analysis of models. Working with web-based data archives will be emphasized.

Students will gain experience with implementing stochastic models of systems of interest. Multiple computational tools, such as Python and R, will be used throughout the course.

Examples and projects will be taken primarily from the fields of:

  • Biology
  • Genetics
  • Neuroscience
  • Psychology
  • Earth sciences
  • Chemistry 

Why this matters

Computation has become indispensable in all scientific endeavors, including:

  • Analyzing large data sets
  • Modelling physical processes 
  • Using “what if” simulations
  • Processing (cleaning) data 
  • Transforming large data sets

Computation is a fundamental tool in all disciplines, including: biology, neuroscience, psychology, economics, chemistry, physics, math, earth science, and oceanography. Students heading into upper year courses would benefit from exposure to computation tools used in their respective disciplines, which are taught using familiar, real-world, applicable examples that they will encounter in their future courses and careers. 

Learning outcomes

  1. Write simple procedural programs using basic programming constructs such as variable, arrays, lists, maps, loops, control structures, and functions.
  2. Implement simple computer model to model or simulate a process from a familiar science discipline.
  3. Retrieve scientific data sets from the web or other third-party repositories so that it can be analyzed or used in simulation.
  4. Identify common simple tools, techniques, and approaches for manipulating large data sets.
  5. Translate data retrieved from a third-party source into a more usable format by using or creating appropriate tools.
  6. Use a statistical computing language, such as R, to analyze data generated by a computer model or from another source.
  7. Use multiple tools to solve a given problem or create a model or simulation.

Assessment

  • Weekly assignments (30%, best 8 of 10)
  • 4 Quizzes (30%, best 3 of 4)
  • 2 Projects (40%, may be done in groups of up to 3 students)

Schedule of topics

  1. Basic programming in Python: Variables of different types and i/o
  2. Basic programming continued: Loops, Selection and File i/o
  3. CGI scripts: reading Web-data and Variables again: The dictionary
  4. Application (i): String processing(k-mer comparison)
  5. Application (ii): Simulation (simple oscillator and extensions
  6. Application (iii): Multi-variate time-based evolution
  7. Application (iv): GUI tools and Graphing Data 
  8. Application (v): Percolation (intro Scipy + Numpy)
  9. Application (vi): Finite element models
  10. Introduction tp R
  11. Application: Data Analysis
  12. Interfacing Python and R

Prerequisites

MATH 1000 or MATH 1215 or MATH 1500 or STAT 1060

Resources needed

One 1.5 hour lab per week.