COMP 347: Applied Machine Learning, Fall 2020

This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class. Individual exceptions to the policies and schedule are granted only in cases of true emergency. Please make arrangements with me if an emergency arises.




An introduction to the hot topics of machine learning, data science and data mining. The course aims to supply students with a useful toolbox of machine learning techniques that can be applied to real-life data. Techniques may include logistic and linear regression, SVMs, decision trees, neural networks, and clustering. The focus will be on developing important skills in preparing data and selecting and evaluating models, though we will delve into the mathematical intuition behind each model.


Possible topics include:

Learning Objectives


The required course textbook is:

Guido, Sarah and Muller, Andreas. Introduction to Machine Learning with Python. O’Reilly. 2016. ISBN-13: 978-1449369415.

I also recommend, but do not require:

Géron, Aurélien. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2nd edition). O’Reilly. 2019. ISBN-13: 978-1492032649

Programming Environment

We’ll be using Python 3 along with several of the standard data science libraries available, including matplotlib, pandas, numpy, and scikit-learn, among others. The easiest way to get set up is to install the Anaconda Python distribution, which includes everything you need. It also includes the Spyder IDE for development, although you are free to develop in any text editor you like. You may also use the department server if you’d like; just send me an email.




The course workload is as follows:

Category Number of Assignments Final Grade Weight
Homework 5–7 50%
Midterm 1 20%
Final 1 20%
Participation - 10%

Most (probably all) homework assignments will involve programming. Each exam focuses primarily, but not necessarily exclusively, on material covered since the previous exam. In other words, the final exam may include one or two questions from first-half material.

Your participation grade is based on a variety of activities. During class I will often make sure of the Socrative app, so you’ll need to install this on your phones. Participating in Socrative questions and with in-class group activities is required for a decent participation grade; a full grade also includes asking questions either in class or in office hours.


Your final grade is based on a weighted average of particular assignment categories, with weights shown above. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing.

This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:

Score Grade
94–100 A
90–93 A-
88–89 B+
82–87 B
80–81 B-
78–79 C+
72–77 C
70–71 C-
68–69 D+
62–67 D
60–61 D-
0–59 F

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.


The weekly workload for this course will vary by student and over the semester, but on average should be about 12 hours per week. The follow table provides a rough estimate of the distribution of this time over different course components for a 16 week semester.

Category Total Time Time/Week (Hours)
Lectures 55 2.5
Homework 72 4.5
Exam Study 27 1.5
Reading+Unstructured Study   2.5


The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.

Date Topic Assignment
Wed 08/19 (Week 1) Intro, Logistics Python tutorial
Fri 08/21 Python Review IMLP Ch. 1
Mon 08/24 (Week 2) More Python, Numpy Hwk 1 out (Solutions), Numpy tutorial
Wed 08/26 Pandas Modern Pandas
Fri 08/28 Visualization  
Mon 08/31 (Week 3) Regression, Classification case studies  
Wed 09/02 Model Complexity, kNN, Bias/Variance Hwk 2 out, IMLP 2.2-2.3 (p. 28 – 46)
Fri 09/04 Cross Validation IMLP 5.1 (p. 253 – 262)
Mon 09/07 (Week 4) More Cross Validation and Grid Search IMLP 5.2, 6
Wed 09/09 Bias in Machine Learning  
Fri 09/11 Linear Models for Regression IMLP p. 47 – 70
Mon 09/14 (Week 5) Hwk 2 Discussion, Linear Models for Classification  
Wed 09/16 Linear Models for Classification  
Fri 09/18 Preprocessing IMLP 3.3
Mon 09/21 (Week 6) Categorical Features, Missing Values IMLP 4, Hwk 3 out (Leaderboard)
Wed 09/23 Hwk 2 Discussion  
Fri 09/25 More Preprocessing  
Mon 09/28 (Week 7) Kernel SVMs IMLP p. 94 – 106
Wed 09/30 Classification Evaluation IMLP 5.3
Fri 10/02 Multiclass Classification  
Mon 10/05 (Week 8) Decision Trees IMLP p. 72 – 85
Wed 10/07 Tree Ensembles IMLP p. 85 – 94
Fri 10/09 (No class – Pseudo-Fall Break)  
Mon 10/12 (Week 9) Hwk 3 Questions  
Wed 10/14 Midterm Review  
Fri 10/16 Midterm  
Mon 10/19 (Week 10) Calibration; Imbalanced Data  
Wed 10/21 Model Interpretation  
Fri 10/23 Feature Selection  
Mon 10/26 (Week 11) Dimensionality Reduction IMLP 3.4
Wed 10/28 Clustering IMLP 3.1, 3.2, 3.5, Hwk 4 out
Fri 10/30 Text Vectorization and Normalization IMLP 7
Mon 11/02 (Week 12) Topic Modeling  
Wed 11/04 Word and document embeddings  
Fri 11/06 Hwk 4 Questions  
Mon 11/09 (Week 13) Neural Networks IMLP p. 106 – 121, Watch 3blue1brown
Wed 11/11 Neural Networks in Practice Hwk 5 out
Fri 11/13 Keras; Convolutional Neural Networks  
Mon 11/16 (Week 14) Practical Neural Network Training  
Wed 11/18 Advanced Neural Networks  
Fri 11/20    
Mon 11/23 Review  

Monmouth College Services