Course Logistics & Policies

Course Information

Course: Introduction to Machine Learning
Course Numbers: MECH534, EECE490, MECH678, EECE690
Semester: Fall 2025
Credits: 3 credit hours
Prerequisites: Linear algebra, calculus, statistics and probability, programming
Lectures: Tuesday and Thursday, 11:00AM-12:15PM
Location: IOEC 210-A

Instructor: Joseph Bakarji

Teaching Assistants

TA information will be updated once assignments are confirmed

Summary of Learning Objectives

By the end of this course, successful students will be able to:

  1. Understand the mathematical foundations underlying machine learning algorithms
  2. Implement core ML algorithms from scratch using Python and NumPy
  3. Apply appropriate machine learning techniques to solve real-world problems
  4. Evaluate model performance and diagnose common machine learning issues
  5. Communicate results effectively through visualizations and technical reports

Grading & Assessment

Late Policy

Assignment Policies

Submission Requirements

Collaboration Policy

Communication

Preferred Communication Methods

For general inquiries, you should use the course Slack channel to ask questions to your classmates and teaching assistants (you get participation points if you ask or answer questions on Slack). If you don’t get an answer, go to the TA office hours when available; if not, come to my office hours. If all fails, email me. In code:

def help_route(slack_answered: bool, ta_office_hours_possible: bool, prof_office_hours_possible: bool) -> str:
    if slack_answered:
        return "Resolved on Slack"
    if ta_office_hours_possible:
        return "Go to TA office hours"
    if prof_office_hours_possible:
        return "Go to instructor office hours"
    return "Email the instructor"

Announcements

Course Success Tips

For assignments, start early - they take longer than expected. Don’t procrastinate on reading and practice problems. Practice Python regularly, even for short periods. When you use LLMs, always write down how you used it and what you got from it. Use debugging tools and read error messages carefully. Don’t rely too much on LLMs. Comment your code thoroughly for later review. Back up your work frequently!

Choose projects aligned with your interests, demonstrate your understanding of the course material, and show your creativity. Start with simple approaches before attempting complex methods. Document everything as you go. Test your code frequently with small examples.

To get the most from the class, come prepared with questions from readings and videos assigned in the schedule for class preparation. Participate actively in discussions and exercises. Review material regularly, don’t cram.

University Policies

This course adheres to all American University of Beirut policies regarding:

For complete policy details, consult the AUB Student Handbook and academic regulations.


These policies are designed to create a fair, supportive, and productive learning environment. Questions about any policy should be directed to the instructor.

Last Updated: August 29, 2025