Course Information

Location: King 260
Meeting Time: T/TH 2:20PM-3:35PM
Prerequisites: A grade of “C-” or better in CS 327 and one of the following: MATH 318, MATH 220 or MATH 229.
Course Web Page: http://w3.cs.jmu.edu/spragunr/CS445/
Required Textbook:

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 3rd Edition, Aurélien Géron, O’Reilly, 2022.
(Available as an ebook through the JMU Library)

Instructor Information

Name: Dr. Nathan Sprague
Office: King Hall 236
Office Phone: 568-3312
Email: spragunr@jmu.edu
Office Hours: Available Online

Communication Channels

You are encouraged to use Piazza to ask questions related to course content. You may use email if you need to contact me directly. (You are not required to use Piazza to participate in this course. Piazza is a third party tool with no formal contract with JMU to legally ensure FERPA compliance. That said, it provides a convenient way to ask and answer course questions that don’t involve sensitive information.)

You are welcome to call or stop by my office any time, with the understanding that I may or may not be available outside of my posted office hours. If you need to meet with me outside of my posted hours, email me to make an appointment.

Note that I typically do not respond to email or Piazza posts in the evenings or on the weekends.

If you contact me and don't hear back within a day or two, don't give up! I try to respond to email in a timely manner, but sometimes one falls through the cracks. I won't be offended if you send a follow up message.

Office Hours

My office hours this semester will use a hybrid online/in-person format. You are free to attend in-person or online via Zoom. The Zoom link will be made available on the course Canvas page. Appointments are available through MyMadison connect, but no appointment is necessary.

Course Description

In this course, you will be introduced to machine learning, a class of techniques which involve algorithms that "learn by example".

Machine learning algorithms can be used to solve problems that would be difficult or impossible to solve using hand-written code. For example, imagine writing a traditional program to decode a zip code from a picture of an envelope. Machine learning uses labeled examples of hand-written zip codes (digits) and "learns" from these examples to recognize/decode zip codes from millions of pieces of mail each day.

This course focuses on a balance of theoretical and practical knowledge. Popular methods such as neural networks, deep learning, and support vector machines will be covered. Small projects will allow students to apply these techniques and communicate results in a quantitative manner.

Course Goals

At the conclusion of this course students should:

Course Content and Preliminary Schedule

A detailed schedule, including reading and homework assignments, is available on the course web page. That schedule will be updated throughout the semester and should be checked regularly.

Methods of Evaluation

Course grades will be based on four exams, in-class activities, homework assignments, projects, and occasional quizzes. Projects will include 2-3 programming assignments and a poster presentation. Assignment specifications and due dates will be posted to the course schedule page. The final grade will be computed as follows:

In-Class Activities 10%
Reading Quizzes and Muddiest Points submissions 5%
Projects and Homework Assignments 10%
Final Poster Project 15%
Exams 60%

Letter grades will be assigned on the scale A=90-100, B=80-89, C=70-79, D=60-69, F=0-59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use "+" and "-" grades at my discretion. I do not assign WP or WF grades except under extraordinary circumstances.

Muddiest Points

Most weeks I will ask you to submit a "muddiest point" reflection highlighting concepts that were unclear from the reading or lecture.

Course Policies

Academic Integrity

Your work in this course must comply with the provisions of the JMU honor code: http://www.jmu.edu/honor/code.shtml. It is not a violation of the honor code to discuss assignments with other students at a conceptual level. However, all of the work that you submit must be developed by you, based on your own understanding of the material. Representing someone else's work as your own, in any form, constitutes an honor code violation. It is also a violation of the honor code to "render unauthorized assistance to another student by knowingly permitting him or her to see or copy all or a portion of an examination or any work to be submitted for academic credit." In the context of this course, this portion of the Honor Code means:

A key component of academic integrity is giving credit where credit is due. If you receive assistance, either from another student, from an AI tool, or from some other source, you must provide clear and explicit attribution at the time of your submission. Submitting AI generated code without acknowledgment will be considered an honor code violation.

I will prosecute honor code violations if they come to my attention. If in doubt about what is allowed, ask me.

Attendance and Missed and Late Assignments

If you are unable to take an exam at the scheduled time because of illness or other problems, you must contact me beforehand to arrange to take the exam at a different time. Failure to make prior arrangements for a missed exam will result in a grade of 0 for the exam.

In general, attendance will be required in order to receive credit for in-class work. In the case of an unavoidable absence send me an email, in advance, with a brief explanation of why you can't attend. I may not respond immediately, but your email will provide a record of the circumstances. You will not receive credit for in-class work if no prior notice is provided. I will do my best to accommodate occasional absences, but you will not receive credit if you show a chronic pattern of missed classes.

If you aren’t feeling well, use your best judgement about attending class. If you have a minor cold, and are feeling up to it, it might be appropriate to attend while wearing a mask to protect your fellow students. If you have a significant illness, please stay home.

Homework and Programming assignments will generally be due at 11:59PM on the posted due-date. Except under extraordinary circumstances, I will not provide extensions for illnesses, extracurricular obligations, etc. Instead, you will have three "late days" which may be applied to any project or homework assignment (with some exceptions for assignments due at the end of the semester or immediately before exams). The use of a late day allows you to extend the deadline for an assignment by 24 hours. You may apply multiple late days to a single assignment, but they may not be used to submit assignments more than 48 hours late.

Classroom Behavior

Phones should be silenced and put away during class unless they are being used for a course-related activity. If you violate this policy, I reserve the right to give you a long pointless lecture about the failings of your generation and the probable downfall of civilization. This will be embarrassing for both of us.

Please be ready to begin work at the scheduled start of class and refrain from packing up to leave until the class period is over. In exchange, I will commit to ending class promptly at the scheduled time.

Adding/Dropping

Students are responsible for adding and dropping courses via MyMadison. Please consult the registrar's page of dates and deadlines for exact deadlines.

Disability Accommodations

If you need an accommodation based on the impact of a disability, you should contact the Office of Disability Services (Student Success Center, Room 1202, www.jmu.edu/ods, 540-568-6705) if you have not previously done so. Disability Services will provide you with an Access Plan Letter that will verify your need for services and make recommendations for accommodations to be used in the classroom. You are encouraged to meet with me to review the course requirements and your requested accommodations to develop an individualized plan appropriate for this course.

Inclement Weather Policy

This class will operate in accord with JMU's inclement weather policy available at http://www.jmu.edu/JMUpolicy/1309.shtml

Religious Observation Accommodations

I will give reasonable and appropriate accommodations to students requesting them on grounds of religious observation. If you require such accommodations you must notify me at least two weeks in advance.

Acknowledgments

Some of the course content this semester (including portions of this Syllabus) was originally developed by Kevin Molloy.