Skip to content

Latest commit

 

History

History
169 lines (91 loc) · 15.5 KB

syllabus.md

File metadata and controls

169 lines (91 loc) · 15.5 KB

CSCI 4622 (Fall 2020): Syllabus

Course Information

Class Meeting Time: MWF 3-3:50pm in ECCR 265 (in person)

Office Hours: 2:25-2:55pm Monday, Wednesday, and Friday (outdoor in person close to the Engineering center or [zoom]; please email me how you would like to meet in advance if you plan to use the office hour), or by appointment

Prerequisites:

  • C- or better in Algorithms
  • C- or better in CSCI 2820 (or equivalent)
  • C- or better in CSCI 3022 (or equivalent)
  • ability (or willingness to learn) to program in Python 3

Course Description

Machine learning is concerned with the question of how to construct computer programs that learn from experience. Machine learning systems have been developed and used in a wide range of settings, ranging from spam detection, to medical diagonosis, to recommendation systems that adapts to and even defines our preferences, to autonomous vehicles that learn to drive. There have also been important advances in the theory and algorithms that form the foundation of this field. This course will provide a broad introduction to the field of machine learning.

By the end of this course, you’ll be able to take a problem and analyze it to determine which machine learning techniques are appropriate for solving the problem, how to prepare data to use that solution, apply the solution, and to evaluate the results. For the most common machine learning techniques, you’ll also be able to implement solutions in Python.

It is required that you have regular access to a computer and an Internet connection throughout this course. A laptop is preferable.

Textbook

The main textbook for the course will be A Course in Machine Learning by Hal Daumé III.

Course Web Page

All information about this course will be hosted on the github repo: https://github.com/BoulderDS/CSCI-4622-Machine-Learning-fa20.

All discussions will happen on Piazza: https://piazza.com/class/kdz12mi733y1f1. The system is highly catered to getting you help fast and efficiently from classmates, the grader, and the instructor. Rather than emailing me questions, I request that you to post your questions on Piazza. If your question is of a private nature, Piazza allows you to send me a private message. It is your responsibility to check the web page on a regular basis. Here you will find detailed information such as news, homework assignments and solutions, and instructor office hours.

Computing

A major component of this course is to learn modern, practical computing skills for machine learning. Our two main tools will be Python 3 and Jupyter Notebooks. It is estimated that around 50% of practicing data scientists do most of their analysis using Python (while the other roughly 50% use R, which we shall not speak of). The Jupyter Notebook is a browser-based programming environment that allows you to seamlessly mix Python code (as well as many other languages), graphics, and exposition (in Markdown). The Jupyter Notebook has become ubiquitous in the data science community for rapidly prototyping ideas and sharing them with colleagues and the rest of the world.

It is strongly recommended that you install Python 3 and Jupyter on your local machine. By far, the easiest way to do this is by installing the Anaconda distribution of Python 3.6. This distribution comes with many Python packages useful for data science and scientific computation in general. It also comes with Jupyter by default.

Frequently in class we will explore computational problems directly in Jupyter notebooks. It is highly recommended that you bring a laptop with you to class, however it's perfectly acceptable that you team up with a classmate on a single computer.

Coursework

Homework: Homework will be assigned roughly every two weeks in the first twelve weeks and due by 11:59pm MT on Fridays on Moodle. Assignments will be a mix of theoretical and computational problems. The theoretical problems may include by-hand computations and simple proofs. The computational problems will involve implementing and analyzing your own predictive models in Python or using canned routines from Scikit-Learn. All assignments will be completed and submitted in Jupyter Notebooks. We do not allow any late submissions in principle, but your lowest homework score will be dropped. As a result, if you are only late once, it will not have any impact on your final grades. You are expected to write up your solutions neatly, with full explanations and justifications. You may discuss problems with your classmates, but all work must be your own. See the Collaboration Policy below for more details.

Since we are in a pandemic together, there can be exceptions for health-related reasons. Please email me if you need any accomodations.

Exams: Three in-class prelims will happen throughout the semester to allow for quick evaluation and feedback of your learning progress.

Final project: You will work on a final project in groups of three to four students. We will offer choices of projects. You can also propose projects to the instructor.

Grade Determination

The overall grades will be based on a cumulative score computed from

  • Homework (30% of the grade);
  • Exams (24% of the grade, three times);
  • Final project (36% of the grade);
  • Participation (5% of the grade, based on in-class participation and Piazza activities);
  • Living in 2020 (5% of the grade)

Unless adjustments are necessary, letter grades will be assigned using the standard grading scale:

Letter Raw Average
A 93-100
A- 90-92
B+ 87-89
B 83-86
B- 80-82
C+ 77-79
C 73-76
C- 70-72
D+ 67-69
D 63-66
D- 60-62
F 00-59

Collaboration Policy

The collaboration policy is simple:

  • Inspiration is free: you may discuss homework assignments with anyone. You are especially encouraged to discuss solutions with your instructor and your classmates.

  • Plagiarism is forbidden: the assignments and code that you turn in should be written entirely on your own. You should not need to consult sources beyond your textbook, class notes, posted lecture slides and notebooks, Python/Scikit-Learn/Numpy documentation, and online sources for basic techniques. Copying/soliciting a solution to a problem from the internet or another classmate constitutes a violation of the course's collaboration policy and the honor code and will result in an F in the course and a trip to the honor council.

  • Do not search for a solution on-line: You may not actively search for a solution to the problem from the internet. This includes posting to sources like StackExchange, Reddit, Chegg, etc.

  • StackExchange Clarification: Searching for basic techniques in Python/Pandas/Numpy is totally fine. If you want to post and ask "How do I group by two columns, then do something, then group by a third column" that's fine. What you cannot do is post "Here's the DataFrame my prof gave me. I need to convert Age in Earth years to Martian years and then predict the person's favorite color. Give me code!". That's cheating, yo.

  • When in doubt, ask: If you have doubts about this policy or would like to discuss specific cases, please ask the instructor.

Standard Course Policies

Classroom Behavior

Both students and faculty are responsible for maintaining an appropriate learning environment in all instructional settings, whether in person, remote or online. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. For more information, see the policies on classroom behavior and the Student Code of Conduct.

Requirements for COVID-19

As a matter of public health and safety due to the pandemic, all members of the CU Boulder community and all visitors to campus must follow university, department and building requirements, and public health orders in place to reduce the risk of spreading infectious disease. Required safety measures at CU Boulder relevant to the classroom setting include:

  • maintain 6-foot distancing when possible,
  • wear a cloth face covering (over nose and mouth), especially when unable to maintain a distance of at least 12 feet,
  • clean local work area,
  • practice hand hygiene,
  • follow public health orders, and if sick and
    • you live off campus, do not come onto campus (unless instructed by a CU Healthcare professional), or
    • you live on-campus, please alert CU Boulder Medical Services.

Students who fail to adhere to these requirements will be asked to leave class, and students who do not leave class when asked or who refuse to comply with these requirements will be referred to Student Conduct and Conflict Resolution. For more information, see the policies on COVID-19 Health and Safety and classroom behavior and the Student Code of Conduct. If you require accommodation because a disability prevents you from fulfilling these safety measures, please see the “Accommodation for Disabilities” statement on this syllabus.

Before returning to campus, all students must complete the COVID-19 Student Health and Expectations Course. Before coming on to campus each day, all students are required to complete a Daily Health Form. In this class, you may be reminded of the responsibility to complete the Daily Health Form and given time during class to complete it.

Students who have tested positive for COVID-19, have symptoms of COVID-19, or have had close contact with someone who has tested positive for or had symptoms of COVID-19 must stay home and complete the Health Questionnaire and Illness Reporting Form remotely. In this class, if you are sick or quarantined, please email me at chenhao.tan@colorado.edu to let me know that "you are absent due to illness or quarantine".

Accommodation for Disabilities

If you qualify for accommodations because of a disability, please submit your accommodation letter from Disability Services to your faculty member in a timely manner so that your needs can be addressed. Disability Services determines accommodations based on documented disabilities in the academic environment. Information on requesting accommodations is located on the Disability Services website. Contact Disability Services at 303-492-8671 or dsinfo@colorado.edu If you have a temporary medical condition or injury, see Temporary Medical Conditions under the Students tab on the Disability Services website.

Preferred Student Names and Pronouns

CU Boulder recognizes that students' legal information doesn't always align with how they identify. Students may update their preferred names and pronouns via the student portal; those preferred names and pronouns are listed on instructors' class rosters. In the absence of such updates, the name that appears on the class roster is the student's legal name.

Classroom Behavior

Students and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Class rosters are provided to the instructor with the student's legal name. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. For more information, see the policies on classroom behavior and the Student Code of Conduct.

Honor Code

All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the Honor Code. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code (honor@colorado.edu); 303-492-5550). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code as well as academic sanctions from the faculty member. Additional information regarding the Honor Code academic integrity policy can be found at the Honor Code Office website.

Sexual Misconduct, Discrimination, Harassment and/or Related Retaliation

The University of Colorado Boulder (CU Boulder) is committed to fostering a positive and welcoming learning, working, and living environment. CU Boulder will not tolerate acts of sexual misconduct (including sexual assault, exploitation, harassment, dating or domestic violence, and stalking), discrimination, and harassment by members of our community. Individuals who believe they have been subject to misconduct or retaliatory actions for reporting a concern should contact the Office of Institutional Equity and Compliance (OIEC) at 303-492-2127 or cureport@colorado.edu. Information about the OIEC, university policies, anonymous reporting, and the campus resources can be found on the OIEC website.

Please know that faculty and instructors have a responsibility to inform OIEC when made aware of incidents of sexual misconduct, discrimination, harassment and/or related retaliation, to ensure that individuals impacted receive information about options for reporting and support resources.

Religious Observances

Campus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, please email the instructor at least two weeks in advance to explain the conflicts and allow for enough time to make alternative plans.

See the campus policy regarding religious observances for full details.