CSCI 373 Syllabus

Contact Information

Instructor: Adam Eck
Email: aeck [AT] oberlin [DOT] edu
Student Hours: Monday 3:30-5:00 PM (King 125B), Tuesday 3:00-4:00 PM (King 125B), Wednesday 2:00-3:30 PM (King 125B)

Meeting Time and Location

Time: MWF 9:00-9:50 AM
Location: King 101

Course Overview

Machine learning offers valuable approaches for finding patterns in data that are useful for making predictions, identifying concepts and trends, and understanding relationships. In this course, students will learn how machine learning operates, along with the strengths and weaknesses of various approaches. Students will also practice applying machine learning to real-world problems using popular software libraries.

Prerequisites: CSCI 151

Course Objectives

  1. Exposure to a breadth of topics related to machine learning.
  2. Understanding of supervised and unsupervised machine learning, as well as the strengths and weaknesses of different types of models and algorithms.
  3. Hand-on practice with commonly used software tools and popular libraries for implementing machine learning solutions.
  4. Consideration of the potential impact of machine learning and data mining on society and real-world applications.
  5. Refinement of experimentation, analysis, and technical writing skills.
  6. Training identifying problems of interest, developing solutions, and working in teams on a substantial student-driven project.

Topics

Background information for machine learning (introduction, notation and terminology, probability and statistics, etc.), classification and regression, lazy learning, clustering, decision trees, ensemble methods, Bayesian learning, neural networks, bias vs. variance tradeoff, feature selection, empirical evaluation of algorithm performance, and more (time permitting).

Textbook and Course Website

There is no required textbook for the class. For those who learn best from reading along with a class, readings from one or more of the recommended textbooks will be posted on the class website. Those books include:

Hastie, Trevor, Tibshirani, Robert, and Friedman, Jerome. The Elements of Statistical Learning. Springer-Verlang, 2009. Website: http://web.stanford.edu/~hastie/ElemStatLearn/

Mitchell, Tom M. Machine Learning. WCB/McGraw-Hill, Boston, MA, 1997. Website: http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/mlbook.html

James, Gareth, Witten, Daniela, Hastie, Trevor, and Tibshirani, Robert. An Introduction to Statistical Learning (with Applications in R). Springer-Verlang, 2013. Website: https://www.statlearning.com

Goodfellow, Ian, Bengio, Yoshua, and Courville, Aaron . Deep Learning. MIT Press, Cambridge, MA, 2016. Website: http://www.deeplearningbook.org/

Information will be primarily communicated through the course website: http://cs.oberlin.edu/~aeck/Spring2024/CSCI373/index.html. Please check the website regularly for the class schedule, assignments, etc. Announcements and grades will be posted to the class Blackboard page

Class Participation

Active participation in this class will be an important process in your learning. Participation will take on several forms. First, questions will be asked during class periods using iClickers, and you are expected to participate by responding with your best guesses as to the correct answers. You will not be graded based on the correctness of your responses, so please just provide your best guess as to the correct answer. New or used iClickers can be purchased from the bookstore, from online vendors, or possibly from other students. If you know someone with an iClicker who has used it in the past and/or for a course at a different time, it is also possible to share with them so long as you don't both need the iClicker at the same time.

Second, we will also have many small group discussions in class, where we work together to develop solutions to problems (in the forms of algorithms and code), as well as discuss important topics related to computer science and technology.

If you become ill and need to miss class, alternative arrangements can be made for your participation. Please reach out to me by email if you need to miss class. Slides will be posted to Box (linked on our Blackboard page) for you to view asynchronously.

You are responsible for your own participation and may not respond for other students. Doing so is an Honor Code violation.

Labs and Assignments

Throughout the semester, you will have the opportunity to practice the course material through hands on lab exercises and homework assignments. In this course, labs are a time for us to work together collaboratively to explore how to practice the concepts discussed in the course, each following a guided worksheet (similar to lab warmups in CSCI 150 and 151). Homework assignments, on the other hand, will be the primary source of hands-on-learning in our course and will be opportunities to work individually (or possibly in pairs of two, depending on the assignment) to utilize machine learning to solve real-world problems and practice the scientific method. Most assignments will take 1-2 weeks to complete and will involve developing programs that perform machine learning either by implementing the algorithms ourselves or using existing libraries. Assignments will involve analysis of data and/or writing, as well.

Class Discussions, Readings, and Reflections

Additionally during the semester, we will also have several class dicussion activites, where we will read a few articles before class about machine learning as it relates to the real-world (e.g., ML in pop culture, the ethics of ML, etc.) Everyone will be expected to read the assigned articles, participate in class discussions, as well as write up a short reflection describing your opinions and understanding of the topics discussed.

We will also have short reflection responses each week where you will be asked to connect the material discussed in class (and practiced through the assignments) or read in technical papers with your personal interests and goals.

Exams

There will be no exams in this course. Instead, there is only a short questionnaire the first week of the course that gives you an opportunity to reflect on your initial thoughts about machine learning and this course, as well as to help me get to know each one of you. The questionnaire will be graded based on participation -- if you turn it in on time with every question answered, you will automatically receive full credit. There are no right or wrong answers to many of these questions, so please do not stress out while answering!

Final Project

In place of a final exam, students will be required to work in groups for a Final Project assignment. Each group of students will be required to: (1) choose a project, (2) write a proposal identifying the problem of interest along with a proposed solution, (3) develop a solution, (4) report on the outcomes of their project and future work, and (5) present their project (during the final weeks of the semester).

The goal of this project is to provide students with an opportunity to explore their own interests within machine learning, beyond what is covered by class lectures and readings or completed in the homework assignments. For example, some students might choose to explore the application of machine learning and data mining to a particular real-world problem, finding appropriate data and investigating how different algorithms might perform on that data. Additionally, some students might choose to implement additional algorithms not considered in the homework assignments to practice with additional representations and learning approaches. Each project will be chosen by the group's members to reflect the member's own interests.

This project will require substantial participation by the members of each group, so it will be assigned sufficiently early in the semester so that students have time to successfully complete the project. It will be due at the same time that the final exam would have finished: Thursday May 16 at 11:00 AM

Grading

Final grades will be determined based on your scores on the assignments, labs, reflections, project, and class participation as follows:

Component %
Initial Questionnaire 2%
Labs 5%
Attendance and Participation 10%
Reflections 10%
Assignments 53%
Final Project 20%

Late Homework Policy

When permitted by the Oberlin calendar (e.g., before the reading period), late submissions of programming assignments will be accepted but will be subject to a percent deduction penalty:

1 second to 1 hour late: up to 2% deduction
1 hour, 1 second to 24 hours late: up to 5% deduction
24 hours, 1 second to 48 hours late: up to 10% deduction
Each additional 24 hour period late: up to an additional 5% deduction

For example, assume an assignment is due at 11:59 PM Monday, February 26. Student X turns in the assignment at 12:15 AM Tuesday, February 27, causing up to a 2% deduction penalty (for a maximum possible score of 98%) due to turning in the assignment late, but less than one hour late.

Student Y later turns in the same assignment at 5:00 PM on Tuesday, February 27, causing up to a 5% deduction penalty (for a maximum possible score of 95%) due to being more than 1 hour but less that 24 hours late.

Finally, Student Z turns in the same assignment at 12:00 PM on Friday, March 1, causing up to a 20% deduction penalty (for a maximum possible score of 80%) for being more than 72 hours but less than 96 hours late.

Please keep in mind that we will have assignments continuously throughout the semester, so falling behind on one assignment shortens the amount of time available to complete the next assignment. If, due to hardship or any reason you will need to turn in a significant number of late assignments, please meet with me to discuss so we can work together to create a plan to best support your learning.

Accessibility

I am committed to making this class accessible to all students. If you have accessibility needs, please email me or come discuss them with me. Things you might want to discuss accomodations for include physical and mental disabilities, both permanent and temporary, any situation that is causing you to not be able to attend class or spend as much time on this class as you would like (illness, stress, family situations, work hours, just going through a rough time), not having access to computers, anything that is keeping you from doing your best in this course. Let me know, and together we will figure something out.

Please also let me know if purchasing the iClicker is a barrier for you in this course, and we will work together to find a solution. Financial Aid provides the most comprehensive funding for all costs that students pay, including books and course supplies. Michele Kosbuth can respond to students' questions.

Code of Conduct

Both Oberlin College and I personally value the diversity of perspective that each of you bring to this classroom and our study of Computer Science together. In this class, we must all commit to fostering a safe, inclusive and welcoming environment which will allow all of us to learn. Please respect the competance and hard work of your colleagues in this classroom. If you are made to feel uncomfortable in class or while working on class material, please notify me so we can take steps to address the situation. Students who are disruptive to class and our learning community will face consequences, including potentially being removed from the course.

Fair Warning

This is not a lecture-oriented class, or one in which mimicking prefabricated examples will lead you to success. You will be expected to work actively to construct your own understanding of the topics at hand, with the readily available help of the professor and your classmates. Many of the concepts you learn and problems you work will be new to you and ask you to stretch your thinking. It is completely natural and common to experience frustration and failure before you experience understanding. This is part of the normal learning process. Your viability as a professional in the modern workforce depends on your ability to embrace this learning process and make it work for you. You are supported on all sides by the professor and your classmates. But no student is exempt from the process and the hard work that it entails.

Academic Dishonesty

Students are expected to adhere to the Oberlin College Honor Code. Any violations will be reported to the Honor Code Committee.

Different assignments in this course will have different expectations with respect to the Honor Code, which will be clearly explained in the assignment instructions (in case of confusion, please contact me). For example, the final project is a group excerise and students are required to closely collaborate with other students (within their groups) to successfully complete their projects. Students are encouraged to discuss the homework assignments with their peers, but (1) students must acknowledge with whom they discussed their assignment in a README file, and (2) students are not allowed to share or show their code to one another, nor discuss implementation details (discussions should be done at a higher level about the algorithms, program design, etc. and not about source code).

There are consequences to cheating on two levels -- the consequences for your grade, and the consequences at the college level. Within class, the first time cheating on a programming assignment will result in a 0 on the assignment. A second time on a programming assignment, or the first time on a project can result in failing the class. All honor code violations will be reported to the college honor code committee.

Typically, honor code violations occur due to some combination of stress, confusion, or anxiety. In these circumstances, you are strongly encouraged to reach out to me; there are always better solutions that we can work out together. Furthermore, if you have any questions about what is permitted and what is not, please feel free to ask.

For every assignment, students must indicate whether they followed the Honor Code in completing the assignment. If so, students should include in a README file the following:

I have adhered to the Honor Code in this assignment.

Advice for Success

College is challenging for everyone in different ways. Oberlin has numerous resources to help you navigate this experience! If you need help, please reach out to me. I am happy to help connect you to the many different resources available (e.g. SHARE, PALS, Dean’s Office). Finally, a reminder that faculty at Oberlin are mandatory reporters for issues which fall under Title IX provisions.