Instructor:
Class Meetings:
Office Hours:
Class Mentors:
Course Description:
Machine learning is a branch of artificial intelligence (AI) rooted in computational statistics that focuses on the development of models and algorithms capable of identifying patterns in data. In this course, students will implement machine learning methods in Python to solve problems from a variety of disciplines. Topics include model validation and optimization, decision trees, boosting and bagging, neural networks, transfer learning, and recently developed methods. Students will complete a semester-long capstone project. Prerequisite: MAT-215 and STA-230.
Texts:
There is no required textbook for this course. All required materials will be posted on our course website.
Most of our course materials are based upon information in the follow textbooks:
\(~\)
This course aims to develop conceptual, theoretical, and applied perspectives on commonly used machine learning algorithms.
After completing this course, students should be able to:
\(~\)
Class Sessions
Most class meetings will be split between “lecture”, involving structured introductions to concepts and mathematical details, and “lab”, involving coding and investigation using Python. Some class meetings will begin with short (15-minute maximum) conceptually-focused quizzes to encourage everyone to keep up with course topics.
Roughly once per 2-3 weeks we will end class with a 20-minute paper discussion. Each discussion will focus on an influential paper, and you are expected to adopt the perspective of a discussion leader and come to the discussion with 1-2 insightful questions that seek to connect topics from the paper to course materials and deepen your understanding of the history behind certain key concepts and developments in machine learning. At the end of each discussion you will fill out a brief form summarizing your group’s conversation and the preparedness and contributions of each group member (including yourself).
Attendance
Lab sessions will involve collaboration with others in assigned and self-selected groups. This means that attendance during labs is especially important. While I understand that missing class is sometimes necessary, if you will be absent for any reason I ask to be notified as soon as possible so that assigned lab groups can be modified. Showing up late or missing class more than once without prior notice will negatively impact the participation component of your course grade.
Software
Software is an essential component of machine learning, and this class will make extensive use of Python (any version 3 release should be fine). You are welcome to use any Python IDE that you are familiar with, but I encourage you to use Jupyter to record your work on labs/assignments.
You are welcome to use your own personal laptop, or a classroom computer during the course. If you are working your own laptop, I suggest downloading the most recent Anaconda Distribution to ensure compatibility with the code examples that will be given during class. Jupyter Notebook and Jupyter Lab can both be found in the Anaconda Navigator, and Anaconda comes with most of the libraries we’ll be using pre-installed.
There are popular cloud-based platforms capable of running Python code that you might opt to use; however, these platforms are not sanctioned by Grinnell College.
Academic Honesty
At Grinnell College you are part of a conversation among scholars, professors, and students, one that helps sustain both the intellectual community here and the larger world of thinkers, researchers, and writers. The tests you take, the research you do, the writing you submit-all these are ways you participate in this conversation.
The College presumes that your work for any course is your own contribution to that scholarly conversation, and it expects you to take responsibility for that contribution. That is, you should strive to present ideas and data fairly and accurately, indicate what is your own work, and acknowledge what you have derived from others. This care permits other members of the community to trace the evolution of ideas and check claims for accuracy.
Failure to live up to this expectation constitutes academic dishonesty. Academic dishonesty is misrepresenting someone else’s intellectual effort as your own. Within the context of a course, it also can include misrepresenting your own work as produced for that class when in fact it was produced for some other purpose. A complete list of dishonest behaviors, as defined by Grinnell College, can be found here.
Inclusive Classroom
Grinnell College makes reasonable accommodations for students with documented disabilities. To receive accommodations, students must provide documentation to the Coordinator for Disability Resources, information can be found here. If you plan on using accommodations in this course, you should speak with me as early as possible in the semester so that we can discuss ways to ensure your full participation in the course.
Religious Holidays
Grinnell College encourages students who plan to observe holy days that coincide with class meetings or assignment due dates to consult with your instructor in the first three weeks of classes so that you may reach a mutual understanding of how you can meet the terms of your religious observance, and the requirements of the course.
Getting Help
In addition to visiting office hours and completing the recommended readings, there are many other ways in which you can find help on assignments and projects.
The Data Science and Social Inquiry Lab (DASIL) is staffed by mentors who are experienced programmers and may be able to troubleshoot coding problems you are having. Many students who’ve successfully completed this course have made extensive use of the DASIL work space and its computing resources.
The online platform Stack Overflow is a useful resource for finding user-generated coding solutions to coding questions. Nearly all professional data scientists have needed to “look up” a coding strategy on a site like Stack Overflow at some point in their career, and I have no problem with you doing the same on assignments or projects. However, if you make substantial use of a Stack Overflow answer (ie: actually integrating lines of code written by someone else into your work, not just getting help identifying the right functions/arguments) the expectation is that you cite or acknowledge doing so.
Large Language Models and AI
Grinnell’s college-wide Academic Honesty policy requires that use of generative AI be appropriately cited or acknowledged as any other source would be. In this course you are permitted to use generative AI for assistance on assignments, so long as you properly acknowledge your use and work within the statistical and coding frameworks described in our lectures and labs. When considering the use of AI you should carefully assess your learning goals and rationale for taking the course. If you use AI to generate a coding solution without investing any effort yourself, do you actually have a better understanding of machine learning? Will your use of AI help you on quizzes, exams, and your project presentation? As an instructor, I think it is important that you have the freedom to use the same tools that professionals are currently using in their jobs, but as a student you should be wary of using these tools as a replacement for your own thinking and understanding. Learning occurs through the process of struggling with new ideas, making connections between concepts, and practicing the application of those concepts independently. While generative AI can be a useful tool for feedback and support, it cannot substitute for the intellectual effort required to build lasting understanding and expertise. \(~\)
Engagement, Labs, and Personal Growth - 15%
In-class labs contain embedded questions that you and your lab partner(s) should answer together in a single document. A few select lab questions will be scored for accuracy with feedback given, while most will be scored for effort/completion. Your submitted lab work will contribute to roughly half of this grade category, and my observations of your engagement during class constitute the other half. You can ensure a high engagement score by regularly attending class and arriving on time, using course time as intended (ie: follow along and ask questions during lectures, work collaboratively with your partner during lab, come prepared and actively contribute during discussions, etc.) Alternatively, you might end up with a low engagement score by skipping class, letting your lab partner (or AI) do most of the work during labs, surfing the web or using your phone during class, etc.
At three points in the semester (beginning, middle, and end) you will be asked to briefly reflect on your current understanding of machine learning and how you have (or plan to) used opportunities provided in class to deepen your understanding. To achieve a high score on these reflections all you need to do is be honest and specific. For example, “I’ll continue to work on the labs” is not specific, but “I’ll call Prof. Miller or the mentor over at least once during every lab to check my understanding” is specific.
Homework - 15%
There will be 4-5 homework assignments throughout the semester. These will contain a mixture of mathematical/theoretical, applied, and written/conceptual questions.
In-class Quizzes - 10%
Every other Tuesday from September 8 through October 20 will have a short quiz covering essential concepts from recent lectures and labs. You will have a maximum of 15-minutes to complete each quiz. The purpose of these quizzes is to provide an incentive for you to take the time to review and internalize essential concepts that someone who is trained in machine learning should be able to recall without needing to look up an answer. You will be allowed to retake up to two of these quizzes on a review day prior to the exam to replace your previous scores.
In-class Paper Discussions - 5%
You will receive a score on your engagement in each paper discussion that is informed by your self-reported ratings and reflection, feedback from the others in your small group, and my observations as an instructor. It is intended that you receive a relatively high score in this category so long as you actually read the papers and try your best to contribute during discussions.
Exam - 25%
There will be an in-class exam roughly two-thirds of the way into the semester (November). The precise date/time will be announced no later than 2 weeks in advance of the exam. This exam focuses on conceptual and mathematical topics from the course, thus it is intended to be complementary to the applied focus of the capstone project (see below). Details and review materials will be provided later in the semester.
Capstone Project - 30% (Presentation: 10%, Report: 15%, Code: 5%)
For this project you will work in a group of 2-3 students on a self-selected machine learning problem involving a non-trivial data set of your choosing. Your group will be responsible for creating a repository containing the code and data used during the project. You will present your results in a 10-minute in-class presentation intended to mirror a scientific conference presentation (ie: assume a modest amount of machine learning knowledge from the audience, with limited content area knowledge in the domain of your application). You will also prepare a 3-5 page (single-spaced, not including figures) scientific report summarizing your methods and results.
\(~\)
Below is a rough list of course topics and tentative time frames for covering them.
\(~\)