Computer Science 2120a/9642a/ Digital Humanities 2220a — Fall 2017

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 2 “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 hours 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


  • James Hughes
  • Office: MC 27E (down the hall from the Grad Club)
  • Office hours: TBD, MC 27E (down the hall from the Grad Club)
  • Email: jhughe54 at

Class times

  • Tuesdays, 10:30-12:30, UCC-56
  • Thursdays, 1:30-2:30, UCC-56

Tutorial / “Lab”

  • Thursdays, 10:30-12:30, FNB-1270(Sec 002)
  • Thursdays, 3:30-5:30, FNB-1270 (Sec 003)

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 Programming
  • 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 (Tentative Dates)

  Worth Due
Assignment 1 10% TBA (end Sept-ish)
Assignment 2 10% TBA (mid Oct-ish)
Assignment 3 10% TBA (early Nov-ish)
Assignment 4 10% TBA (end Nov-ish)
In Class Activities 10% Ongoing
Final Written Exam 50% TBA
  • IMPORTANT NOTE: To be eligible to receive a passing grade in the course, your mark on the final exam must be at least 40%, and your weighted average on the assignments must be at least 40%. Otherwise, the maximum overall mark you can receive is 45%. To be eligible to receive a grade of 60% or higher, your mark on the final exam must be at least 50%, and your weighted average on the assignments must be at least 50%. Otherwise, the maximum overall mark you can receive is 58%. I never waive this rule, so don’t even ask.

Assignment Submission

  • Instructions for the submission of assignments will be posted on the course website. It is each student’s responsibility to read and follow the instructions. Failure to follow the submission instructions may result in the assignment receiving a mark of zero. No exceptions, so don’t even ask.
  • You will be required to submit each programming assignment electronically. Details will be given in the assignment descriptions. We reserve the right to use similarity detection software to detect possible cheating cases.

Assignment Due Dates

  • No submissions will be taken after the due date; there are no late submissions. All submissions after the exact due date will result in a mark of zero and will not be evaluated.
  • No extensions will be given for assignments; however, if a student has serious medical or compassionate grounds, they should take supporting documentation to the Office of the Dean of their faculty and their instructor will be contacted.

Assignment marking

  • Assignments are marked by the Teaching Assistants, who follow marking schemes provided by instructors.
  • A request for adjustment in an assignment mark must be made within 2 weeks of the date on which it was first available after marking. (Beyond that date, regrading will not be considered, regardless of whether you retrieved your assignment.) Such a request must be submitted to the course instructor in writing, and must include specific reasons why you believe you deserve more marks. The request must be accompanied by all materials that were originally handed in, as well as the original marker’s grade summary sheet. The instructor will inform you by email when the reevaluation process is complete.
  • It is each student’s responsibility to keep up-to-date backups of assignment disk files in case of system crashes or inadvertently erased files. Students must keep disk copies of all material submitted, as well as the actual graded assignment, to guard against the possibility of errors in recording marks. It is not safe to discard these materials until you are satisfied that your final mark for the course has been computed properly.

Assignment Redemption

  • The marker will provide feedback to you based on your completed assignment submissions. Incomplete assignments will not be considered for redemption.
  • Students can resubmit their properly corrected assignments within 1 week of the return date of their assignment to gain a maximum of 50% of the marks they lost back.
  • It will be to the discretion of the marker of whether the assignment has been properly corrected.
  • WARNING: Your assignment must be completed when originally submitted for it to be possible to receive makeup marks; you cannot use redemption as a mechanism to circumvent the no late date rule. All parts of the assignment must genuinely be attempted. In extreme cases, I or the marker has the right to not re-mark if they suspect the student of bad faith. Additionally, in very extreme cases, a mark of 0 will be awarded for the whole assignment, and it will prompt an investigation into academic misconduct.


  • Tutorial attendance is not mandatory. They are available for additional support.

In Class Activities

  • There will be many in class activities throughout the semester, however a few will be submitted during lecture. There will be a total of 12 activities to be submitted (one per week on either Tuesday or Thursday – every week is different) and will account for 10% of the final grade. Although there are 12, marks will be based on your best 10 performances. There will be no make-up activities; however, students who encounter serious health or other personal difficulties are encouraged to contact their Dean’s office.
  • These activities require students to answer questions based on lecture material. Answers must be written by hand on clean blank paper that the students bring to class; paper will not be provided to the students. The paper will be submitted to the lecturer within the allotted time. The paper must be clean, the writing must be legible, the submission must be made by the student who completed the task, and the submission must have the completing/submitting student’s name and student number. If any of these requirements are violated, a mark of 0 will be applied.
  • These activities are open book, students can collaborate and share ideas, and students can check the internet, however, all work must ultimately be done individually.


This final exam has 2 parts.

Scheduled Exam

The exam scheduled by the registrar will take place in a computer lab where you will be required to answer a collection of questions by writing code in a simple text editor (Notepad++) and running/testing your code in the iPython interpreter. Your exam will be submitted through OWL. This portion of the exam will make up 75% of your exam grade.

The scheduled exam will be 3 hours and you will be given a set of questions from 2 sources. The first source will be the exercise questions directly from the course online textbook. The second source of questions will be an explicitly stated subset (to be revealed near the end of the semester) of the study questions from the course website (more on this is below).

You will be allowed to use the internet during the exam (in fact, it is strongly encouraged). HOWEVER, you will not be allowed to post answers to the questions online, email yourself answers, access your submitted practice questions from OWL (more on this below), or provide yourself or anyone else direct answers in any other way. The computer lab will be heavily monitored throughout the exam by ITS to counter plagiarism.

Exam Preparation

Near the beginning of the semester a full set of study questions will be posted on the course website. At the beginning of the semester you will not have the skills to complete all questions, however they will be completable by the end of the semester.

At the end of the semester, a subset of these study questions will be posted. These questions are to be completed by you and submitted on OWL before the end of day the day before the scheduled exam (no late submissions will be accepted). You may work with others on this preparation subset. This portion of the exam will make up 25% of your exam grade.

The day of the exam, a subset of this preparation subset will be on the scheduled exam. Although you may work together on the preparation subset, you will be expected the fully understand how to solve the problems presented. Since you have seen all questions well before the exam, the markers will have exceptionally high expectations for the scheduled exam.


  • Labs will be heavily monitored by ITS during the scheduled exam
  • It is highly suggested to go to the labs beforehand to familiarize yourself with the environment
  • It will have Microsoft Windows
  • You will be allowed to use Notepad++ and iPython; no IDEs are allowed
  • If you can, bring a laptop in case the computer lab does not work properly

Understand what I’m saying here; I am telling you exactly how to be fully prepared for this exam. All you need to do is go over the questions in the online course textbook and be comfortable with the study questions on the course website. By doing this exactly, you will have seen all the questions before the actual exam.

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. Failing to give credit to those you worked with may be grounds for a plagiarism investigation.

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:


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 Richmond Street at 4:45pm).

Academic Accommodation for Medical Illness, Disabilities, or Religious Holidays

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:

Learning-skills counsellors at the Student Development Centre ( are ready to help you improve your learning skills. They offer presentations on strategies for improving time management, multiple-choice exam preparation/writing, textbook reading, and more. Individual support is offered throughout the Fall/Winter terms in the drop-in Learning Help Centre, and year-round through individual counseling.

Students who are in emotional/mental distress should refer to Mental Health@Western ( for a complete list of options about how to obtain help.

Additional student-run support services are offered by the USC,

The website for Registrarial Services is

The form for accomodation for students with disabilities can be found here:

The form for accomodation religious holidays 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:

Scholastic offences are taken seriously and students are directed to read the appropriate policy, specifically, the definition of what constitutes a Scholastic Offence, at the following Web site:

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.