Welcome to CSC/SDS293: Machine Learning! Below is some important information about how the course will run, as well as some specific “expectation-setting” details about what we will (and won’t!) cover.
This course combines a variety of instructional formats to support your learning, including traditional lectures, live coding exercises, and hands-on lab sessions. The lectures will focus on foundational concepts and theoretical understanding, while live coding and labs will give you practical, real-world experience applying these ideas. Recommended readings will be posted in advance of each session; while I will not quiz you on the reading, I really do recommend taking the time to look them over before class. Machine learning is a massive and rapidly evolving field, and the material in the readings will go beyond what we will be able to cover in class. To gain a more complete understanding of the broader context, it’s strongly encouraged that you complete the readings before class. This will enrich your experience, allow you to engage more fully in discussions, and help connect the pieces of the big picture in machine learning.
The textbook for this class is An Introduction to Statistical Learning. The electronic version is available for free, and hard copies can be purchased. Students may use either the R or Python version.
If you need help covering the cost of textbooks or other academic supplies (for this or any of your courses!) please fill out the Academic Funding Application found at socialnetwork.smith.edu/forms.
This course will provide a thorough overview of the foundations of machine learning, and is scoped to a target audience of CSC majors who have completed a second course in programming or SDS majors who have completed a second course in regression. If this isn’t you, don’t worry! You’re still very much welcome in this course. Just be mindful that some self-study before the course starts may be necessary (see What We WON’T Cover).
Here’s a selection of topics we will cover:
This course assumes that you have a solid foundation in programming/scripting, either through successful completion of CSC120/210 or SDS220/291, high school curriculum at at AP or IB level, or dedicated self-study. Proficiency with various computer environments and infrastructure will also come in handy. Because folks are coming to this class from a variety of backgrounds, we strongly recommend paging through The Missing Semester of Your CS Education to familiarize yourself with topics such as:
Additionally, knowledge of the following will likely prove useful in this class, but due to time constraints we will unfortunately not be covering the following topics (links to supplemental online courses through LinkedIn Learning are provided, which are available for free to all members of the Smith community):
All written communication regarding this course will take place via Slack (a cloud-based communcation platform that supports text, voice, and video). This includes:
All assignments will be submitted through Gradescope: https://www.gradescope.com/courses/969596
Entry code: VDVY7W
I will use a variety of different approaches in this course to assess various kinds of learning, and to provides many different ways for students to demonstrate mastery of material.
Homework is a chance to demonstrate your knowledge of the topics we’ve covered in lecture through implementation and application. Homework assignments will come out on alternating Tuesdays, and are due the following week. See rubrics for grading guidelines.
Skill Checks are an opportunity for students to demonstrate understanding of the theoretical topics covered in this class. Skill Checks will alternate with homework assignments; they will be submitted on Gradescope and auto-graded to provide immediate feedback. You may re-take a Skill Check as many times as you like before the deadline.
In-class activities and labs give us a chance to collaboratively practice new material and to explore the differences between python and R implementations. Grades for in-class activities and labs will be largely based on engagement, rather than accuracy.
The final project for this course presents an opportunity for students to apply the techniques covered in class to a real-world topic. This project will be completed in groups. Grading will look at technical details, creativity, and communication.
In-class lab activities are designed to be completed during the scheduled class time in which they are assigned. If you miss a day, you are responsible for making up any missed activities before the next class. Bear in mind that the lab is often a warmup for an upcoming assignment; labs should not interfere with beginning your work on the programming assignment.
Because our lives and learning do not always go as planned, every student will be able grant themselves extensions on most assignments. Read details on how to request an extension here.
Programming is more fun in groups! Students are strongly encouraged to form study groups and to collaborate in solving the assignments. Please ensure that all work you submit is ultimately the product of your own understanding rather than anyone else’s. You may consult online or print references on all assignments and labs. Standard language references showing syntax, usage, documentation, etc. need not be cited; nor does the course textbook. All other resources must be cited as described below.
The following information is required for all submitted work:
In this course, students are permitted to utilize AI-powered code-completion tools, provided you do so while adhering to responsible and ethical practices. These tools can provide valuable assistance in enhancing your programming efficiency and proficiency. You are permitted to incorporate AI code-completion suggestions into your coding assignments and projects, as long as proper attribution is given. Generative AI (e.g. ChatGPT or similar) cannot be used for written reflections in CSC120.
Guidelines for Using AI Code-Completion:
Attribution: We’ll treat AI code-completion tools as “collaborators” in this class. Whenever you get help with your programming tasks, it is crucial to provide clear and transparent attribution. Include a comment or annotation in your code specifying that certain sections were generated with the help of an AI code-completion tool.
Originality: While AI code-completion can offer valuable insights and suggestions, it is important that the final code reflects your understanding of the material. For this reason, you should avoid copying generated code without understanding what it does; instead, use it as a reference to enhance your own programming skills.
Learning Opportunity: View AI code-completion as a supplementary learning resource. Take the time to assess the suggestions provided by the tool and compare them to your own coding decisions. This process can contribute to a deeper understanding of the programming concepts we cover.
Honor Code: Always prioritize academic integrity. Plagiarism, which includes submitting someone else’s work (including AI-generated content) without proper attribution, is a violation of our community’s ethical standards and course policy.
Discussion and Collaboration: While using AI code-completion, feel free to engage in discussions with peers and instructors about the generated code and how it aligns with course concepts. Collaborative learning and constructive feedback can enrich the educational experience.
Diverse Approaches: Keep in mind that there are generally many “right” ways to solve a programming problem. AI-generated suggestions might present one approach, but exploring alternative solutions on your own or through discussions is highly encouraged.
Human Power: All AI is developed by other humans and trained on data generated by millions of our peers. Generative AI regurgitates and remixes existing information. Do not be fooled into thinking it “knows” more than you.
Remember: the primary goal of this course is to enhance your programming skills and understanding of the subject matter. Utilizing AI code-completion tools with attribution can support this goal, but the responsibility lies with you to ensure that your work reflects your own efforts and comprehension.
Category | Percentage |
---|---|
Homework | 30% |
Quizzes | 30% |
Final Project | 30% |
Participation and Engagement | 10% |
Note that the final grade is based on my evaluation of your work, and every effort will be made to communicate expectations in advance through detailed rubrics. Although the grade will be largely based on the percentages shown above, I reserve the right to award extra credit for excellent work and out-of-the-box thinking. For example, while “Participation and Engagement” will look primarily at day-to-day engagement, I will also take note of contributions both in and out of class which demonstrate intellectual curiosity or clear understanding of a topic, as well as comments which help others to learn a difficult concept.
It is my aim to make this course accessible to all and welcome feedback about changes we can make to meet that goal. If you encounter barriers to participation in this or any other course, please register with the Disability Services Office to request support and accommodations.
Everyone is welcome to make themselves comfortable in our classroom and asked to be respectful of one another. When you are communicating, please practice active listening by focusing on understanding what others are expressing rather than thinking of how you will respond. Additionally, keep in mind that our wide array of individual backgrounds shape our unique perspectives, so please respect one another when we have sincere differences of opinion.
You may bring beverages or snacks, but please use closed containers to avoid spills and keep messy foods away from computers. Everyone is free to use concentration accommodations like fidget toys, knitting, doodling, moving around, or sitting on the floor; just be mindful that your focus does not disrupt others. Parents and caregivers may bring their babies and children to class whenever necessary. Learners of all stages are invited to join us.
Some of the materials used in this course are derived from lectures, notes, or similar courses taught at other institutions. Appropriate references will be included on all such material.