Table Of Contents

Previous topic

Assignment #4: Here you go again (on your own)

Next topic

Getting set up for CS 2120

This Page

Computer Science 2120a – Computing & Informatics for Life Sciences

Course Description

Imagine you have just finished a lengthy set of experiments using your favourite experimental modality and piece of equipment. You’d like to analyze this data using a specific technique implemented in a software package to which you have access... but the software won’t load the file from your experimental equipment. With just a little bit of knowledge of scripting and understanding of data formats, you could solve this problem yourself in a matter of minutes.

Perhaps you’re on the cutting edge of research in your field and have applied a novel technique to generate an overwhelming quantity of data. Now that you have the data, what are you going to do with it? How can you find interesting, and relevant, patterns in 2 terabytes of data? What tools and methodologies from information science can help you make sense of your data?

This course sets out to accomplish two primary goals:

  1. To teach basic information processing skills to students in the life sciences. This includes exposure to the core concepts of algorithms and data structures leading to the ability to write simple programs and scripts. By writing simple programs and scripts to address typical problems that arise in applied research, the student will discover the enabling power of programming.
  2. To provide a broad overview of the field of information science, focussing on those areas that are most relevant to life sciences research. The goal here is simply to generate awareness of existing techniques, tools and approaches that may be of relevance to the student in their future work.

Officially, this course has 3 “lecture” hours and 1 “lab” hour. In practice, I’m not going to be doing much “lecturing”; we’ll be trying to do stuff, not just talk/listen about stuff. The lecture hours will consist of small microlectures followed by immediate hands-on application of what we’ve just learned. The designated lab hour will give you a chance to practice problem solving in large groups.


  • An interest in learning a bit about what programming can do for you


  • Mark Daley
  • Office: MC 28D
  • Office hours: By appointment, Edmodo, or just drop in. If I’m there, I’ll help you.
  • email: – note that I check Edmodo much more frequently than my email, so that’ll almost always be the faster option.

Textbook and Lecture Notes

Lecture notes will be posted to the website. The textbook is available online, for free:

How to think like a Computer Scientist

Don’t let the “free” part fool you – it’s an excellent text (and I hate about 95% of the textbooks that cross my desk).


We will not necessarily cover everything listed here, nor necessarily in this exact order. Due to the way the class is being taught, the material covered will adapt to the interests, and abilities, of the class.

  • Introduction to Programing
  • Variables and statements
  • Strings
  • Input/output
  • Conditionals
  • Iteration
  • Tuples
  • Traversing and slicing
  • Functions, type conversion, and stack diagrams
  • Recursion
  • Numbers: Floating point arithmetic
  • Successive approximation
  • Lists
  • Dictionaries
  • Asymptotic notation
  • Binary search
  • Selection sort
  • Insertion sort
  • Merge sort
  • Dynamic Programming
  • Monte Carlo Methods

Student Evaluation

  Worth Due
Assignment 1 10% 25 September
Assignment 2 10% 16 October
Assignment 3 20% 6 November
Assignment 4 20% 27 November
Final Exam 40% TBA

Ethical Conduct

All assignments are individual assignments.

But... real life is a team sport... so I’m not interested in penalizing people for peer learning and teaching; skills which are even more important to learn than computer programming. (In fact, if you dig in to the educational literature, you’ll find a pretty strong consensus that peer learning is one of the most effective types of learning, second only to... peer teaching. So go ahead and help each other out on assignments. You’ll all learn more that way.)

I ask only one thing: when you submit your assignment, include in your documentation the names of those with whom you worked. Under no circumstances will this be used against you. If you worked with 10 people, write ‘em all down. You’ll get the same grade as if you did it yourself. I ask this for one simple reason: if there are folks in the class who are really helping out a lot of other people, I want the opportunity to recognize their contribution.

I’m required by departmental policy to include these links, but, with the rules described above, I think you’d have to try really hard to do something “unethical” in this course:

Also, once you’ve learned all your l33t h4zzor1n4 sk1llz in this class, please don’t use your newfound powers to hack the school’s computers.


The role of tutoring is to help students understand course material. Tutors should not write assignments or take-home tests for the students who hire them.

Each term, the Department posts a list of students interested in acting as tutors for various courses. Tutors are screened for marks in an effort to determine their suitability. The Department accepts no responsibility for problems that may arise between students and their tutors.

If you need help though, please just come by my office. Or go see the TAs. We’re here to help and most TA office hours are criminally underused (unless there’s an assignment due... then it looks like Front Street at 4:45pm).

Academic Accommodation for Medical Illness

If you are unable to meet a course requirement due to illness or other serious circumstances, you must provide valid medical or other supporting documentation to your Dean’s office as soon as possible and contact your instructor immediately. It is the student’s responsibility to make alternative arrangements with their instructor once the accommodation has been approved and the instructor has been informed. In the event of a missed final exam, a “Recommendation of Special Examination” form must be obtained from the Dean’s Office immediately. For further information please see:

A student requiring academic accommodation due to illness should use the Student Medical Certificate when visiting an off-campus medical facility or request a Record’s Release Form (located in the Dean’s Office) for visits to Student Health Services. The form can be found here:

Accessibility Statement

Please contact the course instructor if you require material in an alternate format or if you require any other arrangements to make this course more accessible to you. You may also wish to contact Services for Students with Disabilities (SSD) at 661-2111 x 82147 for any specific question regarding an accommodation.”


The UWO Senate Academic Handbook has specified that the following points should be added to all course outlines:

Plagiarism: Students must write their essays and assignments in their own words. Whenever students take an idea, or a passage from another author, they must acknowledge their debt both by using quotation marks where appropriate and by proper referencing such as footnotes or citations. Plagiarism is a major academic offence (see Scholastic Offence Policy in the Western Academic Calendar).

Plagiarism Checking: The University of Western Ontario uses software for plagiarism checking. Students may be required to submit their written work and programs in electronic form for plagiarism checking.

Prerequisites for a course: Unless you have either the requisites for this course or written special permission from your Dean to enroll in it, you will be removed from this course and it will be deleted from your record. This decision may not be appealed. You will receive no adjustment to your fees in the event that you are dropped from a course for failing to have the necessary prerequisites.

Exam checking: Use may be made of software to check for unusual coincidences in answer patterns that may indicate cheating.