Natural and Artificial Neural Networks Lab
Columbia University, Spring 2022
Instructors: Christos Papadimitriou, John Morrison, Clayton Sanford, and Samuel Deng
Time: Thurs 2:10 PM - 4:00 PM.
Location: 516 Milstein Center (Lab 3 onward). First two labs on Zoom (check Courseworks for link).
Course Description: Understanding the powers and limitations of artificial neural networks requires exposure to both concepts and practice. This lab section focuses on the latter, supplementing the conceptual framework from the seminar, Natural and Artificial Neural Networks. The lab focuses on giving students without a background in computer science hands-on experience with basic programming in Python, tools for data science, and a variety of machine learning algorithms.
Notes on Prerequisites: The labs are all aimed towards students who have zero programming experience and start with a series of modules that teach the Python fundamentals necessary for later labs, which stress AI/ML applications. The lab section is not a comprehensive introduction to any of these subjects; rather, it is designed to supplement a non-technical understanding of ML and data science by exposing students first-hand to the concepts discussed. If you are a student who has already had exposure (at the level of a full class) to both Python and machine learning, there is likely not much this lab will cover that will be particularly novel to you. Regardless, your participation is welcome.
Students not formally enrolled in this lab are welcome to attend individual lab sections based on interest.
Learning Outcomes: This lab will supplement the Natural and Artificial Neural Networks course by giving students hands-on experience with basic programming and machine learning. For the beginning of the semester, students will learn the fundamentals of programming and data science in Python. While students learn about machine learning and artificial neural networks in lecture, the lab will reinforce the principles they learn in class by having students apply ML algorithms–including neural networks–for regression, classification, unsupervised learning, and reinforcement learning.
Grading and Assignments: Each lab will have approximately 30 minutes of lecture and 90 minutes on an accompanying assignment. Each assignment will have several checkpoints, each validated by a TA for credit.
For each of the 12 mandatory lab meetings (not counting weeks 1 and 2), students will receive a score of 0, 1, or 2. 0 if the student is absent (without instructor pre-approval) or completes none of the checkpoints. 1 if the student completes some of the checkpoints. 2 if the student completes all of the checkpoints.
If a student does not complete the assignment during the allocated lab time, they may finish it on their own time and have a TA validate their work during office hours.
The lowest-scoring lab will be dropped, and a student’s score for the class will be computed by dividing their total score by 22. These percentages will be converted to letter grades on a standard scale.
Pair programming is encouraged but not required.