CS478 Syllabus

Introduction to Machine Learning

Winter 2006 9:30-10:45pm TTh

3817 HBLL


Dan Ventura
Office: 3324 TMCB
Phone: 422-9075
Email: ventura@cs.byu.edu
Office Hours: by appointment

Course Description

Humans are capable of tackling extremely difficult problems without the benefit of an a priori solution. They learn from experience and can often transfer knowledge acquired to novel instances or even whole new tasks. Are machines capable of similar problem solving prowess? This course will be a hands-on introduction to the basics of machine learning. We will study multiple machine learning models including neural networks, decision trees, rule-based systems, instance-based learning, Bayesian learning, and genetic algorithms. In doing so, we will begin to understand some of the issues and challenges facing attempts at machine learning -- generalization, bias, overfitting, model selection, feature selection and learnability -- as well as being exposed to the pragmatics of implementing machine learning systems.


The text for the class is Machine Learning by Tom M. Mitchell. We will cover much of the text following the provided schedule. You are responsible for reading the material for a given day prior to that day's lecture. Because class time is limited, we may not cover everything in the text. However, except where specifically noted otherwise, you are responsible for the entire text.


Most homework will be in the form of programming assignments (see the next section) and an associated written report. A few written problems will be due as the first homework assignment. These are to be done on a word processor and be neat and professional. Good writing, grammar, punctuation, etc. are important and can affect your grade. Additionally there will be one other non-programming assignment -- producing a data set for a learning problem of your choice -- which will be an electronic submission. All assignments are due at the beginning of class on the date indicated. However, most of the work for this course will be in the form of programming and experimenting with various machine learning models. This is where the pain and suffering occur.

Programming Assignments

For each of the machine learning models we study in depth, there will be a programming assignment involving the implementation of the model and experimentation with its abilities on one or more learning problems. A short written report will also be due describing your efforts, results and conclusions (see the comments above on writing assignments). The report is limited to no more than four single-spaced pages using 12 point font, including all figures. Figures are not to be hand-drawn and should be large enough to be easily legible. Anything beyond the four page limit will not be graded! You must work to include all important information in the allotted four pages. Communicating clearly and concisely what you have to say is an important skill you will use throughout your career. These programming assignments will help you gain not only a mastery of the models themselves but also a beginning understanding of the major issues involved in designing machine learning methods. Finally, by the end of the course, you will have developed a suite of machine learning algorithms that will be usable (and useful) in the future.


There will be one mid-term (administered in the testing center) and one final (administered in class). These tests will be timed, you will be allowed one page of notes, and they will consist of written problems testing your understanding of the machine learning models and issues covered in class. If you put in the time on the homework and programming assignments, the tests should not be too difficult. Explicitly, the final will only deal with material not covered on the midterm; however, it will be implicitly comprehensive in that it will assume you understand the material covered throughout the course.


Grading will be on a weighted curve. An approximate breakdown is as follows:
Homework and Programming Assignments 50%
Midterm 25%
Final 25%
Although your final class grade will not be available until the end of the term, a cumulative point total will be available on line and will be updated approximately weekly. You should check this periodically to ensure that my records are in accordance with the work you have done. Please bring any discrepancies to my attention immediately as these things are usually easily resolved early and are often much more difficult as time passes.

Late Policy

Late assignments will be penalized 10% per day late, not counting Sundays. However, if you have a good excuse (i.e. something different from your fellow students) just come and talk to me about it (before hand, if at all possible), and you will not be penalized. Of course, nothing will be accepted after the last day of class.

Working Together

You may work together with other members of the class; however, do NOT turn in other people's work. This is a fine line that may require some judgment on your part. Examples of acceptable collaboration: discussing homework problems and solutions with others in the class; posting questions and/or answers to questions on the class newsgroup; comparing learning results and conclusions from programming assignments with other class members. Unacceptable collaboration would be simply copying homework, code or test answers from a friend or allowing someone else to copy homework, code or test answers. Academic dishonesty will be grounds for failure of the course; however, I do not anticipate that we will have any questions or problems in this area.


Appealing grades on assignments and on tests begins with you. Make an effort to understand why you received the score that you did and make sure that you have a good reason to appeal. If after making these efforts, you still feel like you have a concern, the next step is to calmly and intelligently discuss it with TA. If after taking both of these steps you still are not satisfied, come see me.

Make sure you have done the reading and tried to understand on your own before you ask questions. If you do not, it is usually readily apparent. This can lead to crankiness, and crankiness never was happiness. When you don't understand something, ask; there are no dumb questions -- unless you haven't done your reading.

Class attendance and participation is expected. This is not because I feel the need to have students in class; instead, it is because your attendance and participation guarantee you a better learning experience.