Course Syllabus

EE600/CompE596: Machine Learning for Engineering [Summer 2023]

Instructor

Dr. Junfei Xie

https://smile.sdsu.edu/

Office Hours

by email appointment

Office Location

SDSU Engineering Building E-403B

Contact Info.

Email: jxie4@sdsu.edu

Prerequisites

Matlab, Discrete Mathematics, Linear Algebra

**A more complete version of the syllabus can be downloaded here

Course Description:

Machine learning, a discipline that deals with the automatic design of models from data, has been successfully used in the past few decades for data analysis, process automation, function approximation, model building, and many others. These techniques have been explored in a diversity of fields such as robotics, self-driving cars, big data, control of autonomous systems, image analysis, object recognition, data mining, business, and financial forecasting, transportation systems, antenna design, medical care systems, and many others. It is believed by many researchers that machine learning is the best way to enable human-level artificial intelligence.

This course provides a broad introduction on the key machine learning techniques that are frequently used in the Engineering field. The main topics to be covered include probability theory, point estimation, linear regression, logistic regression, neural networks, decision trees, clustering, Bayesian estimation, and dimension reduction. In this course, students will not only learn these machine learning techniques, but also gain practice implementing them using programming tools such as Matlab or Python. Students will also explore real-life applications of machine learning and learn to solve the application problem using machine learning techniques.

 

Course Learning Objectives:

Following this course, students will be able to:

  • Use different estimation approaches including least squares, maximum likelihood, and maximum a posterior to estimate unknown parameters in a function or model.
  • Differentiate supervised and unsupervised learning problems and choose proper approaches to solve these problems.
  • Construct and implement linear regression, logistic regression, neural network models from real-life application datasets programmatically using Matlab or Python, and use the models to perform predictions.
  • Construct decision trees using different methods for different types of data.
  • Identify suitable clustering techniques for different data types, use these techniques to perform clustering, and validate the clustering results using different methods.
  • Explain different dimension reduction methods and apply principal component analysis to reduce the dimension of a dataset.
  • Identify and formulate a real-life application problem, develop and implement proper machine learning algorithms to solve the problem, assess the performance of the proposed algorithm, report and present the results.

 

Required or Recommended Materials

Optional Materials

 

Grade Scale:

A = 94.0-100.0

A- = 90.0-93.9

B+ = 87.0-89.9

B = 84.0-86.9

B- = 80.0-83.9

C+ = 77.0-79.9

C = 74.0-76.9

C- = 70.0-73.9

D+ = 67.0-69.9

D = 64.0-66.9

D- = 60.0-63.9

F = 59.9 and below

I = Did Not Complete

 

Grade Distribution and General Comments:

  • 2 exams: 20% + 20%  = 40%
  • Discussions: 4%
  • Quizzes: 6%
  • Assignments: 50%

This course requires a LOT of reading and will require some research on your own for the term project.

 

Exams:

There will be two take-home exams during the course of the semester. There will be no make-up exams, so please plan accordingly. 

 

Discussions, Quizzes, Assignments:

For each module, this course requires the students to complete a quiz. Sometimes, students are also required to join the group discussion with a topic related to the module. The quizzes are due on Sundays and the group discussions are due on Wednesdays.

This course also requires the students to complete one assignment after completing each module. The assignments for Module 4 (linear regression), Module 5 (logistic regression), and Module 6 (neural networks) are programming assignments, which require the use of Matlab.  These assignments are due on Wednesdays.

The term project is replaced with two programming assignments on Clustering and PCA, respectively. Both require the use of Matlab. Both are due on Aug. 13. 

For the other three programming assignments (linear regression, logistic regression, and neural networks), you have the opportunity to improve the code and submit it for re-evaluation (only one chance). The submission deadline for all three assignments is on Aug. 13. The final score for these assignments will be the maximum of the scores received in the two submissions. 

Late Assignment Policy:

Assignments are considered late if they are submitted after the due date and time. Late assignments are accepted but with a 10% deduction in points per day (For example, if an assignment is turned in two days after the deadline, 20% in points will be deducted).

 

General Comments:

This course is quite intense and will require quite a bit of your time. It will require extensive reading and long hours in front of the computer. Please plan your semester accordingly. 

** NOTE: Some of the documents (handouts, slides, or assignment instructions) may have accessibility issues. If you encounter such issues, please contact me by email. 

 

Pacing Guide:                       

May

 Week 1: 5/22-5/26 

Week 2: 5/29-6/2

June

Week 3: 6/5-6/9

Week 4: 6/12-6/16

Week 5: 6/19-6/23

Week 6: 6/26-6/30

July

 Week 7: 7/3-7/7

Week 8: 7/10-7/14

Week 9: 7/17-7/21

Week 10: 7/24-7/28

 

August

 Week 11: 7/31-8/4

Week 12: 8/7-8/11

---

This course will use the Canvas Learning Management System instead of Blackboard. To access your course log in at canvas.sdsu.edu, and sign in using your SDSUid.

Note: You are responsible for adjusting your notification settings in such a way that you receive ALL announcements regarding this class. All Canvas email notifications will be delivered to your SDSU email address. You can add additional email addresses and sign up for text/mobile app notifications via the settings in your Canvas Profile, and then adjust your notifications in the Notifications Tab. Canvas notifications are system wide and cannot be adjusted by course. Click here to view a step-by-step guide to add additional notification and contact methods. 

If you have technical issues with Canvas, please contact the SDSU Canvas 24/7 support line at 619.483.0632.

---

Course Summary:

Date Details Due