Syllabus - CMSC422 Introduction to Machine Learning
Time and place: Tu/Th 12:30–1:45pm · CSI 2117
Instructor: Prof. Furong Huang
Teaching Assistants: Minghui Liu (Ming), Pankayaraj Pathmanathan (Pan)
Course Description
Machine Learning studies representations and algorithms that allow machines to improve their performance on a task from experience. This is a broad overview of existing methods for machine learning and an introduction to adaptive systems in general. Emphasis is given to practical aspects of machine learning and data mining.
Course Objectives
- Understand fundamental machine learning algorithms and their mathematical foundations.
- Learn to apply machine learning techniques to real-world problems.
- Gain hands-on experience implementing ML algorithms from scratch.
- Develop skills in data preprocessing, model evaluation, and hyperparameter tuning.
- Understand modern deep learning architectures including CNNs, RNNs, and Transformers.
Prerequisites
Students should have a strong foundation in mathematics and programming. Comfort with algorithms and data structures is essential. Prior experience with machine learning is not required but helpful.
-
Foundational Knowledge
- Basic understanding of algorithms and data structures
- Comfort with implementing algorithms from descriptions
-
Mathematics
- Calculus: derivatives, gradients, chain rule, partial derivatives
- Linear Algebra: vectors, matrices, matrix multiplication, eigenvalues, eigenvectors. See linear algebra review
- Probability & Statistics: probability distributions, expectation, variance, Bayes' rule, maximum likelihood estimation. See probability review
-
Programming Skills
- Proficiency in Python (required)
- Familiarity with NumPy and basic data manipulation
- Ability to implement algorithms from pseudocode
- Basic understanding of algorithm complexity
Students should be comfortable reading mathematical notation and translating it into code. Experience with PyTorch, TensorFlow, or similar ML frameworks is helpful but not required.
Course Format & Workload
This course is structured around lectures covering fundamental and advanced machine learning topics. Lectures will introduce core concepts, algorithms, and their mathematical foundations, along with practical implementation considerations. Students will complete hands-on homework assignments implementing ML algorithms from scratch and applying them to real datasets.
The course includes both theoretical understanding and practical application. Students will learn to implement algorithms including decision trees, perceptrons, neural networks, CNNs, SVMs, and more. Assessments include homework assignments, a midterm exam, and a final exam.
Students should expect to spend approximately 8–10 hours per week outside of class on homework assignments, exam preparation, and reviewing lecture materials. All assignment details and exam dates are provided on the Assignments and Schedule pages.
Textbook
The primary textbook for this course is "A Course in Machine Learning" by Hal Daumé III, available free online at http://ciml.info. Additional readings may include research papers, tutorials, and supplementary materials posted on ELMS.
Assessments
- Homework Assignments (30%): Regular programming assignments implementing ML algorithms. All homeworks are due at 11:59 PM on the specified due date.
- Projects (30%) : Three course projects, completeted in teams of 2-3 students.
- Midterm Exam (20%): Tuesday, March 12th, 12:30 PM - 1:45 PM, in-person, close book.
- Final Exam (20%): Tuesday, May 12th, 1:00 PM - 2:15 PM, CSI 2117, close book.
More information on assignments can be found on the Assignments page. Late submission policies will be announced on ELMS.
Communication and Discussion
We will be using ELMS for homework submissions and grades, Piazza for class discussions and questions, and Gradescope for assignment grading and regrade requests. For quick questions and discussions with classmates and TAs, please use Piazza rather than email.
We will communicate primarily through ELMS and Piazza.
What is expected of you
- Attend all lectures and actively participate in class discussions.
- Complete homework assignments on time and work independently (unless collaboration is explicitly permitted).
- Study and prepare thoroughly for exams.
- Ask questions when concepts are unclear—use office hours and Piazza effectively.
- Follow academic integrity policies and cite all sources appropriately.
- Be respectful and professional toward instructors, TAs, and peers.
What to expect from your instructor and TAs
- Clear, well-organized lectures covering core ML concepts and algorithms.
- Prompt responses to questions on Piazza and during office hours.
- Fair and timely grading of assignments and exams.
- Support and guidance in understanding course material and debugging code.
- A learning environment that encourages curiosity and deep understanding of machine learning.
Back to top | © Furong Huang at UMD | View template on Github