Up: Dana's Home page

Machine Learning

This course can more aptly titled Fundamentals in Machine Learning. It is a gateway course to more advanced and specialized graduates courses in the Compyter Science graduate program. To enjoy the course you should have a solid background in linear algebra, probaility and statistics, and multivariate calculus. If you are weak in any of these, you may find the course challenging. The credit in the course is based on a midterm and final exam as well as five python programming assigments. A tentative syllabus for the course may be found here: Syllabus


Prof. Dana Ballard


Ruohan Zhang Reading Material
Text: Pattern Recognition and Machine Learning by Christopher Bishop
Recommended: Machine Learning An Algorithmic Approach 2nd Ed by Stephen Marsland
Supplementary Material: Andrew Ng's lecture notes and lecture videos.

Communication policy:
The homework assignments will be posted on this class website. We will be using Piazza for announcments and for discussing the material and homework. To join the class on Piazza, go here. Questions about the material or homeworks must be asked on Piazza so that the entire class can benefit from the discussion. Students are also encouraged to answer questions. However, questions requiring a lengthy explanation (more than a few sentences) should be saved for office hours, and questions about how an assignment was graded should be sent over email directly to the TA who graded it, or at that TA's office hours. Grades will be distributed over Blackboard (courses.utexas.edu).

The assignments will generally be released on Wednesdays, the material for the assigment will be taught on the following Monday, and then the assignment will be due on Sunday. For problem sets, your solutions should be submitted in class on Monday. They can be neatly handwritten or typeset in Latex. The official due dates will be posted on the website. Most assignments will require computer programming, which must be done in Matlab, Octave, Python (Numpy), or R. Matlab is the officially supported language though. Learning how to use Matlab is relatively easy, and some decent tutorials can be found here and here. Matlab is available on the CS departmental machines -- just invoke matlab at the command line. To run graphical applications like Matlab remotely, you will need to use vnc, which you can learn about here.

Homework grading:
Here and here are some excellent reports from hw1. You should try to model yours after the example they have set. It is very important that you point out problems with your implementation in your report. It's much better for you to be honest, and state these problems in your report, than for me to discover them by running your code. Here's a report that was commendable for its honesty, and pretty good overall (see last section). The most important thing is to cover all the points listed at the end of the assignment handout.

Electronic submission:
For the programming assignments, you will submit homework using Canvas. Always submit your report and code (if any), and put your name on both your code and report. If you don't have a CS account, get One.

Course Credit:
Credit will be based on the assignments (70%), a midterm (15%), and a final (15%)

Late Policy:
1 day: -10%
2 days: -20%
3 days: -30%
4 days: No credit
If extenuating circumstances will make it difficult for you to complete a project on time, contact the TA to work things out.

Academic dishonesty:
Students caught plagiarizing will fail the course. On some projects, we will use MOSS to analyze code. Avoid plagiarism by carefully citing all your sources. If you use a specific short code snippet found on a web-page, mention that fact in a comment. If someone else told you how to solve a tricky part of an assignment, give them credit too. Do not copy code from other students. However, if you did and cited them for it, I suppose that you would not fail for plagiarism; you simply would not get credit for the assignment. Even so, don't do it.