User Tools

Site Tools




This course covers fundamental concepts and methods of computational data analysis, including pattern classification, prediction, visualization, and recent topics in deep learning. Students will learn how to

  • read data files of various formats and visualize characteristics of the data,
  • perform statistical analyses on multivariate data,
  • develop and apply regression algorithms for finding relationships between data variables,
  • develop and apply pattern classification algorithms to classify multivariate data,
  • develop and apply reinforcement learning algorithms for learning to control complex systems,
  • write scientific reports on computational machine learning methods, results and conclusions,
  • use the latest features in python, including jupyter notebooks.

For implementations we will be using Python. Previous experience with Python and its numpy package is helpful. To prepare for this course, please download and install Python on your computer, and work through on-line tutorials to help prepare for this course. The Anaconda distribution is recommended, which is a free download for all platforms.

Class meetings will be a combination of lectures by the instructor and discussions of students' questions. All questions are welcome, no matter how simple you think they are; it is always true that someone else has a similar question. It is critical that everyone in class respect each other when questions are asked and answers are suggested and at all times. Please contact the instructor when you have felt disrespect from other students, the instructor, or the graduate teaching assistants. This may be anonymous if you prefer.

A lot of material will be covered in this course. Students are expected to speak up in class with questions and observations they have about the material. Do not expect to be able to complete all assignments working on your own and without asking any questions. If you find yourself wondering what the next step is in finishing an assignment, please feel free to e-mail the instructor. You may also discuss assignments with other students, but your code and report must be written by you. Questions and answers may be posted using the Discussion link to the left, but do not post code to be debugged or as answers to questions.

You are expected to be familiar with the CS Department policy on cheating and with the CS Department Code of Conduct. This course will adhere to the CSU Academic Integrity Policy and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

Time and Place

On-line Procedure

Starting with class on March 26th, our lectures and office hours went on-line. They will be on the same days and times: lectures 2:00 to 3:15 PM Tuesday and Thursday, and office hours will be 10:00 AM to 12:00 Tuesdays. We are using Microsoft Teams to meet. Please let me know ( if you are unable to join the live meetings. Recorded lectures will continue to be available on Canvas at the Echo360 page.

Old time and place

Class meets every Tuesday and Thursday, 2:00 - 3:15 PM in Wagar Building Room 133. On-campus and distance-learning students will be able to watch video recordings of lectures through our Canvas webpage.


CS320 with a grade of C or better.


There are no required text books for this course. Readings may be assigned from the following on-line books.

From Python to Numpy by Nicolas P. Rougier

Deep Learning by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

Reinforcement Learning: An Introduction, by Richard Sutton and Andrew Barto, 2nd edition

Mathematics for Machine Learning by Marc Peter Deisenroth, A Aldo Faisal, and Cheng Soon Ong


Office Hours Contact
Chuck Anderson Computer Science Building (CSB) Room 444 CSB Room 444
10:00 AM - 12:00
or by appointment
GTA: Ameni Trabelsi CSB Room 415 CSB Room 120
Monday & Wednesday 10:00 AM - 12:00
GTA: Wen Qin CSB Room 120
Wednesday & Thursday
8:00 AM - 10:00


New grading scheme

The final project is now optional. If you choose to submit a project, the grade you receive on the project will replace your two lowest assignment grades. We will have at least seven total assignments. So, you may choose to do a final project and not turn in the last two assignments and have the final project grade replace those two assignment grades. If you choose to not submit a project, your grade will be based only on your assignment grades.

Honors students have this option, also. If an Honors student chooses to submit a final project, they must do all of the extra-credit parts of all but two assignments that they choose. Otherwise, an Honors student must complete all extra-credit parts.

You will be assigned a letter grade for the semester. You can then choose to convert it to S/U (Sastisfactory/Unsatisfactory) grading as described in this link.

Old grading scheme

Your grade for this course will be based only on the assignments, most of which will require the submission of a jupyter notebook that includes text descriptions of your methods, results and conclusions and the python code for defining machine learning algorithms, loading data and applying your algorithms to the data. Each notebook will be graded for correct implementation and results, thorough discussion of your code and observations of results, and good organization, grammar and spelling. No quizzes or exams will be given.

Six to seven regular assignments are planned during the semester. In total these will count for 80% of your semester grade. The final assignment is a project designed by you and is worth 20% of your semester grade:

  • 80% regular assignments, from 10% to 13% each
  • 2% for the project proposal
  • 18% for the project written report

Letter grades will include plus and minus grades. Assume standard ranges of numerical grades will be used. Ranges might be shifted a little lower, depending on the grade distribution at the end of the semester, but they will not be raised.

Some assignments will include extra credit points. These will be accumulated during the semester. At the end of the semester, if your grade is just below a letter grade cutoff, the extra credit points might push you up to the higher grade. Each extra credit point is roughly worth 1/2 a percent. For example, if your grade is 88% and the cutoff or A- is 90%, four extra credit points will bump your grade up to an A-.

Late reports will not be accepted, unless you make arrangements with the instructor at least two days before the due date.

syllabus.txt · Last modified: 2020/03/31 15:29 by anderson