This course covers the analysis and visualization of scientific data. Topics will include data management, basic statistical analysis, data mining techniques, and the fundamental concepts of machine learning. Students will also learn how to visualize data using 2-D and 3-D graphics, focusing on techniques that highlight patterns and relationships. Course projects will use data from active research projects at Colby.

Credits 4
Semester Spring 2019
Date Time, Location
  • Section A: MWF 9:00 - 9:50 am, Lovejoy 215
  • Section B: MWF 10:00 - 10:50 am, Lovejoy 213
  • Section C: MWF 11:00 - 11:50 am, Lovejoy 213
Lecture Instructor (A) Stephanie Taylor
Office: Davis 114
Office Hours
Default hours:
M 12:00pm - 2:30pm
T 2:00pm - 4:00pm
W 12:30pm - 2:30pm
R 12:30pm - 2:30pm
F 11:00am - 12:00pm
Stephanie will send an email at the beginning of each week with any changes.
Lecture Instructor (B) Oliver W. Layton
Office: Davis 115
Office Hours
M 11:00am - 12:00pm
W  2:30pm - 5:00pm
R 12:30pm - 2:00pm
F  12:00pm - 2:00pm
If my door is open, please come in!
Lecture Instructor (C)

Lab Instructor (C/D)
Bruce A. Maxwell
Office: Davis 112
Office Hours
M 1:00pm - 3:00pm, 9:30pm - 11:30pm
R 7:30pm - 11:00pm
Lab Instructor (A/B) Zadia Codabux
Office: Davis 111
Office Hours
M 2pm - 4pm
T 11am – 12pm, 4 – 5pm
W 2pm - 3pm
Others by appointment.
Evening TAs Location: Davis 102
* denotes CS251-specific TAs
Date (Time) TA
Sunday, 4:00 - 7:00 Riley Karp
Sunday, 7:00 - 10:00 Ethan Pullen , Dhruv Joshi
Monday, 4:00 - 7:00 Shailin Shah
Monday, 7:00 - 10:00 *Mike Zheng
Monday, 7:00 - 10:00 Prashant , Owen Goldthwaite
Tuesday, 4:00 - 7:00 Melody Mao
Tuesday, 7:00 - 10:00 Seth Bontrager , Maan Qraitem , Yueying Zhu
Tuesday, 7:00 - 10:00 *Brandon Troisi , *Chris Marcello
Wednesday, 7:00 - 10:00 *Tracy Quan, Rob Durst
Course Goals
  1. Students understand and can write programs to store and manipulate data and measurements.
  2. Students understand and can implement the fundamental concepts of interactive visualization of data.
  3. Students understand and can implement common data transformations and statistical analysis.
  4. Students understand and can make appropriate use of current machine learning techniques for prediction and knowledge discovery.
  5. Students present methods, algorithms, results, and designs in an organized and competently written manner.
  6. Students gain experience working with real data from disciplines outside computer science.
Weekly Homework
  • We will distribute short weekly homework assignments each week.
  • The homeworks prepare you for the quiz on Friday!
  • Homework will be graded in a binary fashion: if you hand in a reasonable attempt, you get a 1, otherwise a 0.
  • We will post homework solutions by Thursday evening to help you study for the quiz! You will be able to find them on Solutions/.
  • (Sections A, B): Please name your homework submission file as follows: name_hw_NUMBER (e.g. owlayton_hw_1).
  • (Sections A, B): Please upload your homework file to your folder on the Courses Filer:

  • Section-specific instructions
    Section Day Assigned Due Date How to Submit
    A (Taylor) Wednesday
    By email
    Friday (before class) Submit on filer (See above instructions).
    B (Layton) Monday
    Posted on the Lecture Notes tab on this website.
    Friday (before class) Submit on filer (See above instructions).
    C (Maxwell) Thursday
    By email
    Thursday (9pm) Email Bruce, along with questions.
  • The above deadlines are hard deadlines, because we may discuss solutions in class on Friday before the quiz.
    Late submissions will not be accepted.
Weekly Programming Projects
  • Larger programming projects are assigned most Tuesdays.
  • The projects give you a chance to take the concepts we learn in class to visualize and analyze real data!
  • The usual deadline is the following Wednesday midnight (Wednesday at 11:59pm).
  • Projects are graded based on a 30 point scale. Late projects will receive a maximum score of 26/30, so handing in something on the due date is generally better than handing in a complete assignment late.
  • The last day to turn in late projects for credit is Wednesday May 15 11:59pm.
  • We understand that you have busy schedules. You are allowed to have one freebee four-day extension that can be used at your discretion over the course of the semester, except for Projects 5 or 9. That means you may choose to hand in one project on Sunday instead of Wednesday. All you have to do is complete and submit this form before the deadline. Please think carefully about your choice, as you cannot change your response after submitting this form.
  • Please name your homework submission file as follows: name_homework_NUMBER (e.g. owlayton_hw1).
  • Please upload your project source code to the Courses Filer:, where NUMBER is the project number (e.g. 1,2,3,...).
  • Please submit your written project reports on the class wiki ( Remember to tag your wiki page otherwise we might not find it!
  • Weekly quizzes: There will be a 15 minute quiz every Friday. The quizzes let you show us what you have learned. We understand that everyone has a bad day; the quiz with the lowest grade will be dropped but a quiz may be made up when a prior request is made or there is a documented health issue.
  • Final exam: It will be on Sunday May 19, 9:00am.
Class Participation You are expected to attend every class. The course will involve both lectures and hands-on activities in lab. For this course to be truly successful, your presence and participation in lecture and lab is important. When you have a question, ask it. It is highly probable that one of your classmates has the same question. When we give you an opportunity to share your opinion or your answer, please speak up. We want to hear what you have to say. Discussion is a vital part of the learning experience. Good class discussion needs your contribution. If you must miss a class, you are responsible for making up the material covered in that lecture.

In this course there will be regular opportunities for you to practice what you have learned and to demonstrate your accomplishments. Below, is a short description of each opportunity, along with the percentage of your final course grade it represents.

The course grade will be determined as follows:

Labs with Programming Projects 45% Weekly, hands-on, supervised learning. You will begin a programming assignment in each lab. It will be due the following Tuesday night (see above)
Quizzes 25% Short weekly in-class quizzes (given most Fridays)
Short homework assignments 5% They will help you prepare for the quiz each Friday.
Participation 5% Ask questions, answer questions, join in discussions, attend lectures and labs.
Final Exam 20% A 3-hour opportunity at the end of the semester to demonstrate your ability to answer questions about course material.
How to succeed

Labs and Projects: Come to lab ready to focus on the new project. Ask the lab instructor and TA for help if you need it. Talk to your peers about the course concepts.

The grading policy on projects is that the tasks specified explicitly in the lab and project descriptions will constitute about 87% of the assignment. If you complete the specified parts of the assignment properly, and produce a high-quality writeup, it's worth up to a B+ grade. In addition, the written instructions will include a variety of extensions to the assignment, or you can come up with your own. Completing one or more extensions, in addition to the specified parts of the assignment, will earn you some flavor of A. Extensions are not required.

Once during the semester, except for Projects 5 or 9, you may take a 4-day freebee extension, handing it in on Sunday instead of Wednesday.
All you have to do is complete and submit this form. Please think carefully about your choice, as you cannot change your response after submitting this form.

Quizzes: Study for the quizzes by doing the homeworks. We will drop the lowest quiz. If you make a silly mistake one week, it won't affect your grade.

Short homeworks: Try them. You will receive full credit as long as you make an honest attempt to complete every question. Please ask or email questions to the professor if something isn't clear (see 30-Minute Rule below).

Participation: Speak up in class. Come to office hours. Ask your your instructor or TA for help.

Final Exam: The final exam will be similar to a large set of quizzes (but written from a more wholistic perspective). The best way to study for the final exam is to retake all of the old quizzes (and quizzes from old semesters). Also, read through your notes and make sure you understand everything in them.

For more information about expectations and the assignment of grades, see this document.

Help and Discussion Outside of Lecture
  • Office Hours: Oliver, Stephanie, Bruce, and Zadia are all available to help outside of class time with questions about concepts or projects. Please do not hesitate to stop by our offices, or send us an email. Not only do we enjoy talking about computer science, we want to get to know you!

    In addition to coming by our offices for help, you are welcome to send us email with a question. We read our email frequently and respond to questions as soon as possible.

  • Evening TA Help: In order to provide as much help as possible to you as you work on assignments in this course, the CS Department has hired CS students who have taken the course to work as TAs in the Davis 102 lab in the evenings . You are strongly encouraged to take advantage of this resource. The TAs are getting paid to help you, so don't feel guilty about asking them for help. See the section above called Evening TAs for specific times.
  • Guidelines:
    • 30-Minute Rule: If you have been stuck on a problem, such as a bug, for more than 30 minutes and have made no progress, despite your best efforts, please stop and get help. Email one of us, ask a TA, or consult a peer. If you don't get an answer immediately, do something else for a while. Please do not waste your time on one problem.
    • We are always happy to help you with any of your code for your projects. However, the earlier you come to us with questions, the happier we'll be to help you (we usually respond to a last-minute call for major help with the question "Why didn't you start earlier?").
    • Please feel free to raise any concerns or complaints about the course directly with either of us. You are also welcome to send us your concerns anonymously. We will gladly respond to them

We will use the Python computer language (v3.7) as the basis for the course, with weekly lab sessions to provide hands-on, supervised learning. You will be using a text editor of your choice (e.g. Visual Studio Code, BBEdit) to write code. Some projects may also use other free software that you can install on your computer (e.g. Numpy and Scipy). The computers in Davis 101 and 102 are equipped with all necessary software and you can access the building and the labs 24/7 during the semester.


It should go without saying that you should back up any files related to this course. If the code you submit to us is somehow lost (through your fault or our fault), we must be able to get another copy from you. We suggest you use the college's personal server ( to store your work in this class, as it is regularly backed up.


The following textbook is recommended as an additional resource, but is not required.

Witten, Frank, and Hall, Data Mining: Practical Machine Learning Tools and Techniques , Morgan Kaufmann, 2011, 3rd Ed.

Collaboration, Academic honesty

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.

The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see

  • If you have had a substantive discussion of any homework or programming solution with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together.
  • You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not program languages.
The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people that have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with college policies.

As a member of this community, I pledge to hold myself and others accountable to these values.

What does this mean to students?

  • We respect each other and ourselves.
  • We respect our physical spaces on campus.
  • We respect our academics and complete work honestly.
Title IX Statement

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to sexual assault and sexual harassment).

If you wish to speak confidentially about an incident of sexual misconduct, please contact Colby Counseling Services (207-859-4490) or the Director of the Gender and Sexual Diversity Program, Emily Schusterbauer (207-859-4093).

Students should be aware that faculty members are considered responsible employees; as such, if you disclose an incident of sexual misconduct to a faculty member, they have an obligation to report it to Colby's Title IX Coordinator. "Disclosure" may include communication in-person, via email/phone/text, or through class assignments.

To learn more about sexual misconduct or report an incident, visit

Academic Accommodations

We are available to discuss academic accommodations that any student with a documented disability may require. Please note that you’ll need to provide a letter from the Dean of Studies Office documenting your approved accommodations. Please meet with us within two weeks of the start of the semester to make a request for accommodations so that we can work together with the College to make the appropriate arrangements for you. Kate McLaughlin, Associate Director of Access and Disability Services is the primary contact for accommodations and any questions related to educational testing and documentation.

Mental health. We care about our students' well-being and understand that they may face mental health challenges. Students are encouraged to seek support from the College's available resources, including your advising dean and Counseling Services. (For immediate care, please call 207-859-4490 and press "0" to reach the on-call counselor). We are willing to discuss reasonable accommodations during a crisis, but to fulfill our educational mission, students are expected to adhere to the attendance policy. Failure to do so because of mental health challenges may require consultation with the Dean of Studies Office.

© 2018. Page last modified: .