Syllabus

MCS 394: Topics in CS
Karl Knight, Spring 2000

Basic data:

Overview

We will investigate in this course the general field of machine learning. In his preface to our textbook, Mitchell states that "The field of machine learning is concerned with the question of how to construct computer programs that learn with experience." My particular interests are in two particular areas of machine learning whose origins are of a "biological" nature: neural networks and genetic algorithms/programming, which will be especially emphasized in this course. However, I believe it is better to view these areas in the context of the more general field of machine learning, so we will also cover such topics as concept learning, decision learning (ID3 and C4.5 algorithms) and, as time permits, other topics such as Bayesian learning.

A note about prerequisites: Mitchell also points out in the preface that "Machine learning draws on concepts and results from many fields, including statistics, artificial intelligence, philosophy, information theory, biology, cognitive science, computational complexity, and control theory." This fact presented a difficulty for me when I considered what prerequisites I should have for this course. I finally decided that I will limit the prerequisites to "CS maturity", and explain the requisite concepts from these other fields as we need them. For example, I will explain to you the technique of gradient descent in order that you can better understand back-propagation, which is used in neural networks. However, I will not presume that you have had Calc III (the course that gives the theoretical underpinnings of gradient descent), nor will I expect you to understand anymore than the general ideas that are being used.

Course structure

Classes will normally meet for class in Olin 317 be on Mondays, Wednesdays, and Fridays. However, there may be a few exceptions, which will be clearly marked on the class schedule.

Class schedule

I will maintain an on-line version of the schedule of classes and labs, which also contains examination dates and due dates for homework, labs, and projects. Please note that although I am giving my best approximation of the day to day topics, it is possible that I will need to revise the schedule during the semester.

Determination of course grade

I will provide you with a letter or number grade on each homework and lab assignment and on each test, in addition to the mid-term and final grades, so that you may keep track of your performance. As a guideline, the components will contribute in the following proportion to the final grade: However, I reserve the right to adjust these weightings and even the components given above. Should that occur, I will notify the class by email. Please see me if you have any question how you stand.

Class participation is not graded; however, it allows you to find and repair the gaps in your understanding before doing the homework or exam, and thus can dramatically improve your grade. In the event that someone, in my judgment, does not participate adequately in the course, I reserve the right to subjectively adjust their final grade accordingly. Should I feel that that is the case, I will notify the in advance of my concern.

Grade changes

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if I have been especially unjust.

Late assignments

All homework and lab assignments are due at the beginning of class on the day indicated. Late assignments will be penalized by one full grade (such as A to B or A- to B-, or equivalently for number grades) for each weekday late or fraction thereof. However, no late assignments will be accepted after graded assignments are handed back.

If you are too sick to complete an assignment on time, you will not be penalized. Simply write "late due to illness" at the top of the assignment, sign your name, and hand it in. Other circumstances will be evaluated on a case-by-case basis.

Honor

Students are encouraged to discuss the course, including issues raised by the assignments. However, the solutions to assignments should be individual original work unless otherwise specified. If an assignment makes you realize you don't understand the material, ask a fellow student a question designed to improve your understanding, not one designed to get the assignment done. To do otherwise is to cheat yourself out of understanding, as well as to be intolerably dishonorable.

Any substantive contribution to your solution by another person or taken from a publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action.

The same standards regarding plagiarism apply to team projects as to the work of individuals, except that the author is now the entire team rather than an individual. Anything taken from a source outside the team should be be properly cited.

One additional issue that arises from the team authorship of project reports is that all team members must stand behind all reports bearing their names. All team members have quality assurance responsibility for the entire project. If there is irreconcilable disagreement within the team it is necessary to indicate as much in the reports; this can be in the form of a "minority opinion" or "dissenting opinion" section where appropriate.

Style guidelines

All homework and lab reports should be readily readable, and should not presuppose that I already know what you are trying to say. In particular: For a more detailed set of guidelines, David Wolfe prepared the document Suggestions for clear lab reports in computer science courses reports. I recommend that you look at this document and, if you have questions about lab write-ups, ask your lab instructor.

Accessibility

Please contact me immediately if you have special physical circumstances, e.g. impaired vision, which may affect the accessibility of any course components. I will do my best to facilitate necessary arrangements or resources.