CS167 Machine Learning

Course materials and notes for Drake University's CS167: Machine Learning


Meredith Moore
Assistant Professor of Computer Science
325 Collier Scripps Hall
More about Professor Moore

Teaching Assistant

Brendan Algard brendan.algard@drake.edu

Office Hours

M / W : 12:30pm - 2:00pm
T / R : 11:00am - 12:30pm
Or by appointment
Join Now! | Schedule

Slack Workspace

We're using Slack to communicate this semester.
Go to Slack Workspace

CS Tutors:

Tutors are free and Zoom appointments can be made at the Tutoring Website

CS167: Fall 2021 Syllabus

Table of Contents


Meredith Moore
325 Collier-Scrips (office)

Teaching Assistant:

Brendan Algard

Class Meeting Time and Place:

Tuesday and Thursday:

Section Time Place
Section 1 12:30-1:45pm Collier Scripps 301
Section 0 2:00-3:15 pm Collier Scripps 301

Office Hours

I will be using Calendly to schedule office hours. Feel free to grab more than one slot if you don’t think 15 minutes is enough time.

Monday Tuesday Wednesday Thursday Friday
12:30 - 2:00 11:00 - 12:30 12:30 - 2:00 11:00-12:30 by appt

Course Description:

This course introduces approaches to developing computer programs that learn from data. Both foundational and contemporary machine learning algorithms will be covered in the context of a variety of data and problem types. Specific topics will vary but may include artificial neural networks, decision trees, random forests instance-based learning, support vector machines, artificial neural networks, convolutional neural networks, recurrent neural networks, and advanced machine learning techniques. Students will develop their own implementations of the algorithms as well as utilizing modern machine learning software and programming libraries.

Course Goals:

At the end of this course, students that have taken an active part should be able to:


We will follow portions of a variety of sources in this class and so there is no required textbook. A nonexhaustive list of sources can be found here.

Course Content:

The schedule for the course can be found on the course homepage.

Course Communication:

We will be utilizing a combination of Slack, Email, and Blackboard for this course. The assignments will be posted to Blackboard and will be turned in using Blackboard. Should you have questions on an assignment, please either use Slack or Email. Check out the email tips section to see how you can ensure you’ll get a helpful response back. In short, make sure that your email:


The following table shows the categories of graded items and how much weight they each carry towards your final course grade:

Graded Items Percentage
Short Exercises 15%
Notebooks 25%
Project 1 15%
Project 2 15%
Exam #1 15%
Exam #2 15%

For all graded items, late submissions or make-ups will not be accepted unless an exception is granted by the instructor prior to the due date.

Final grades will be awarded based on the following scale:

Percentage Grade
92.0-100 A
90.0-92.0 A-
88.0-90.0 B+
82.0-88.0 B
80.0-82.0 B-
78.0-80.0 C+
72.0-78.0 C
70.0-72.0 C-
68.0-70.0 D+
60.0-68.0 D
0.0-60.0 F

Percentages are not rounded when using this scheme, because this would be tantamount to moving all of the grade boundaries down by 0.5%.

Short Exercises:

These will generally be short exercises to work out with pen-and-paper. You will usually submit your answers using auto-graded Blackboard questions. Late submissions will not be accepted unless an exception is granted by the instructor prior to the due date. You can expect 6-8 of these throughout the semester. Short exercises will allow multiple attempts, but will be due before class on the day that they are due. Any late submissions will receive a zero (as we will often go over the short exercise answers as a start to class).


Throughout the semester, we will be learning to apply machine learning principles using Python machine learning tools. Machine learning code is often developed in and communicated using an interactive integrated development environment called Jupyter Notebooks which support a natural interleaving of code, output/results, and mark-up documentation. You will regularly submit notebook files (files with the extension .ipynb) to demonstrate your proficiency with the Python tools we are using. Given the long computation times of the programs you write, I will not usually be executing your code, so it is critical that the results from your executions are preserved in the notebook. You can expect to submit 7-8 of these throughout the semester.


The two projects in this course will emphasize the design, execution, and interpretation of machine learning experiments. The grading emphasis will be on how well you explain your data and experiment as well as your written interpretation. For these, you will submit Jupyter Notebooks with more extensive writing in the mark-up cells than for your regular notebook assignments.


There are two exams which are very tentatively scheduled for:


While in-person attendance is very strongly encouraged, I will also be allowing virtual attendance. Each lecture will be recorded and uploaded to Blackboard and this website as soon as possible after class. While I will do my best to ensure the virtual experience is similar to the in-person experience, there are some elements that are difficult to replicate–group work, white board sessions, etc. Know that you may miss out on some of these experiences if you choose not to attend in person.

Collaboration Policy

As a default policy, you may work with each other on projects and assignments; however, every student must implement program code, perform experiments, and write up the accompanying results separately (unless otherwise specified). Sharing completed solutions (verbally, physically, electronically, etc.) is not acceptable. If you work with someone, you must say so somewhere in your assignment, and you must affirm that you in fact worked together and that no completed solutions were shared. For instance, in the comments of a program or at the top of a written page, you must write something like “I worked on parts X and Y of this assignment with person Z. No completed solutions were shared.”

You are not to collaborate with anyone except for the instructor and other students enrolled in Human Computer Interaction this semester.

Academic Integrity

Students are encouraged to seek out resources for help in understanding concepts when completing coursework. However, there is a big difference between seeking outside resources for help in understanding and searching for solutions. All solutions prepared with the aid of any source, however minor, must specifically cite those sources and explain the relationship of the submitted solution to the source. All citations must include author names, titles, publication information, and links to electronic sources when they exist. For programming code, all such citations and explanations should be included with comments. When in doubt, be open and transparent about the use of sources. This will shift the issue away from a question of academic integrity penalties to a question of how many points to award for your contributions. A violation of the course’s collaboration policy will also be considered an academic integrity violation.

The minimum penalty for a first violation of academic integrity will be a forfeiture of all points on the entire assignment or exam in question. A second violation will result in a grade of ‘F’ for the course. All violations will be reported to the College of Arts and Sciences Dean’s office as explained in the Academic Integrity Policy.

Student Disability Services:

If you have a disability and require academic or physical accommodations in this course, please contact me and Student Disability Services (Michelle Laughlin, Director of Student Disability Services, at 2711835 or michelle.laughlin@drake.edu) in advance of the date the accommodations are needed. All requests for assistance must be received (at least) four full business days prior to the requested need.

Covid-19 Course and University Policies:

Masks and Social Distancing

When we do meet in person, we will all wear masks to minimize the likelihood of the spread of the novel coronavirus. Doing so is not only a requirement in our class, but is also a campus-wide policy. I will ask those who choose not to wear a mask to leave the classroom and, following guidance from the Provost’s office, I will alert the dean of students’ office.

Instructions for Students who Test Positive

If you test positive for Covid-19 or have been exposed and need to isolate yourself, please send an email to dos@drake.edu from your Drake email account and include your full name and student ID along with information about your situation. College and schools’ deans’ offices will then contact your professors, who will work with you to provide fully virtual learning opportunities during your quarantine and/or recovery. If possible, however, please also alert me directly that you will begin attending virtually, and I will work with you to help you make the transition to that modality. You do not need to tell me why you need to move to a virtual experience.

Instructions for Students about Self-Monitoring and Experiencing Symptoms:

Please carefully monitor your own health and wellbeing throughout the semester, including frequently taking your own temperature. If you experience Covid-19 symptoms or a fever, even if you do not test positive, please do not come to an in-person class meeting. Fill out your information using the following Drake self-monitoring form.