Description

Instructor:
Ross Beveridge
Office: Online Only
Office Hours: 12:20 to 1:00 Tue/Thur
Email: ross@cs.colostate.edu
GTA:
Yongxin Liu
Office: Online Only
Office Hours: NA
Email: Yongxin.Liu@colostate.edu
Lecture Time and Place:
11:00-12:15, Tue, Thur
Online (link on CANVAS)

This foundations and practice of machine learning (ML) course will introduce students to essential machine learning concepts and techniques. The course will emphasize a learn by doing approach with a heavy reliance upon exercises and assignments in Python and utilizing modern ML packages. The use of Jupyter notebooks will be emphasized as a modern framework for combining actual machine learning models with essentially lab notes documenting the design and development of experiments. Students will learn basic of data representation and visualization as well as common well established practices for characterizing and classifying data. Students will further learn to develop and apply complex modern machine learning models and most important to understand the process that underlies the design and conduct of effective machine learning experiments.

Spring 2021 Specific COVID-19 Statement

Important information for students: All students are expected and required to report any COVID-19 symptoms to the university immediately, as well as exposures or positive tests from a non-CSU testing location. If you suspect you have symptoms, please fill out the COVID Reporter (https://covid.colostate.edu/reporter/).

If you know or believe you have been exposed, including living with someone known to be COVID positive, or are symptomatic, it is important for the health of yourself and others that you complete the online COVID Reporter. Do not ask your instructor to report for you. If you do not have internet access to fill out the online COVID-19 Reporter, please call (970) 491-4600. You will not be penalized in any way for reporting. If you report symptoms or a positive test, you will receive immediate instructions on what to do, and CSU’s Public Health Office will be notified. Once notified, that office will contact you and most likely conduct contact tracing, initiate any necessary public health requirements and/or recommendations and notify you if you need to take any steps. For the latest information about the University’s COVID resources and information, please visit the CSU COVID-19 site: https://covid.colostate.edu/.

Prerequisites

In order to be properly prepared for this course you should have the following prerquisites satisfied. For preparation in computer science either CS 152 (Introduction to Programming (CS0) with Python) and CS 165 ( Java (CS2) Data Structures and Algorithms) or, alternatively, CS 220 (Discrete Structures and their Applications). For preparation in statistics, completion of one of the following courses: STAT 301 (Introduction to Statistical Methods), STAT 307 (Introduction to Biostatistics) or STAT 315 (Intro to Theory and Practice of Statistics Credits). Prerequisite courses must be passed with a letter grade of C or higher.

Textbook

There is no required text book for this course. Instead the material of the course is organized in a sequence of Jupyter Notebooks. Links to these notebooks will be provided through Canvas.

Software, Tools and System Requirements

This courses uses Python in conjunction with Jupyter notebooks and some of the most commonly used packages for data science and machine learning. The Anaconda Python distribution, which is specifically designed for the needs of data science users, is the recommended way of installing the required packages. In particular, we recommend the Miniconda version of Anaconda, which is a barebones version of Anaconda. For this course you will need the following packages: Numpy, pandas, matplotlib, scikit-learn, and keras. Our coding environment will be the Jupyter notebook.

In addition, as an entirely online course this class will use a variety of content delivery tools. First, there is the public facing CS 345 website where you are reading this syllabus. Keep in mind CS 345 uses a public facing website for those aspects of the course considered best shared with the world. That will also include the progress page where the overall lecture progress of the course is recorded. In addition, CANVAS will be used to manage all grading, quizzes and exams. This will also include the submission of assignments. CANVAS will also be used to publish the links to the recorded lectures; these are not considered public and I ask that those links please not be re-posted on any public sites. Zoom will be used as the online lecture delivery tool. Microsoft Teams will be used to manage discussions and will be the best means of directly communicating with and meeting with the GTA.

Topics and Lectures

Unlike some courses, the specific week-by-week topics covered in CS 345 are not explitly enumerated in the Syllabus. Instead, they can be found both on the Progress Page as well as in the Modules section on CANVAS. Please go to those resources to learn more about the topics covered by this courese.

Lectures will be given entirely online this semester using Zoom. The Zoom link will be posted in CANVAS. Students are strongly encouraged to attend the lectures live as they are given. However, attendance is not mandatory. Lectures will be recorded and those recordings posted. Typically, but not always, the same day they are delivered. The links will appear in CANVAS.

Now when you are weighing your choices between attending live and watching lectures later, please keep the following words from your instructor in mind. I have personally been recording and posting lectures for nearly a decade; long before our current situation dealing with COVID. What I've learned is some students are excellent at self direction and watching lectures on their own time works great. However, many students, arguably most of you, do not fit that profile. Instead, failing to make attendance a habit results in falling behind. Also, and this next reason is partly selfish, teaching without you their to ask questions and engage directly is no fun; it is also much less effective.

Grading

Here are the formally graded elements of the course and associated weighting:

Activity   Weight
On-line quizzes and excercises 25 %
Programming Assignments 40 %
Semester Project 20 %
Final Exam 15 %

Assignments and the Semester Project will require the submission of a jupyter notebook. Your notebook combines elements of a written report with executable code. Included in the criteria for grading will be the correctness of the implmentation along with the clarity and quality of the description of the code and results generated by the notebook. Notebooks need to be well-organized, concise with good grammar and spelling. Grade complaints will be considered only for two weeks immediately following when the assignment grade appears on Canvas.

Quizzes most likely will be administered through CANVAS. Excercises will consist primarily of relatively short Jupyter Notebooks tailored to the review of specific topics.

The Semester Project will be a more involved excercise where you first select a specific machine learning problem of interest to you. You will then develop and submit an project proposal. Finally, you will then carry out and refine the experiments proposed and present both the code and the written description of what you have done in a single Jupyter Notebook.

The final exam will be administered online with the expectation student will take the exam at the regularly scheduled time slot. To be clear, that time slot is:

  • Wednesday, May 12, from 6:20 to 8:20 PM

Students entitled to university approved accomodations must please contact the instructor in advance to make appropriate arrangements. Other student with extenuating circumstances may contact the Instructor to discuss those circumstances.

Grading Policies

Late Policy (Updated 2/18/2021) Assignments and Excercises must be turned in at or before the posted due date and time for full credit. Unless otherwise stated on the assignment, assignments turned in late but within 48 hours of the posted deadline will be worth 75 percent of the full grade. To be clear, this means the assignment is graded on a zero to one hundred point scale and the result mulitpled by 0.75. Assignments turned in after the 48 hour window but within one week will be worth 50 percent of the full grade. After that Assignments and Excercises will not be graded. Also, no Assignments or Excercises will be graded if submitted after the Sunday following the last day of scheduled classes.

Quizzes, recitations, programming assignments, tests and exams will all be done individually and grades assigned on an individual basis. You may not submit any work done by other people under any circumstances. That you understand this requirement and follow it is essential and indeed the consequences for what is generally called "cheating" can take many forms including being dismissed from the University. Please see Professional Conduct below for more information and links to resources.

Semester grades are determined by the weighted sum of points earned in each of the areas summarized in the table above. Total points for each area are normalized so that the expected highest score for the semester is 100. Typically the A- to B+ cutoff falls at 90 points, the B- to C+ cutoff at 80 points, and so on. While this is the typical grading procedure, the instructor reserves the right to make adjustments. Please understand this flexibility reserved for the instructor is intended to give the instructor the latitute to set the cutoffs in a way that is more generous to students. For example, the instructor may at their discretion put the A- to B+ cutoff at 87 points should the instructor feel at the end of the semester taht doing so is a fairer reflection of student accomplishment.

Academic integrity

We encourage you to talk with other students about your assignments and questions, but make sure you do your own work. You may not:

  • copy another student's program or other work in whole or in part, either with or without their knowledge
  • write code or other work for another student
  • share your code with another student,
  • copy or solicit solutions from the Internet.

We are accountable for our actions and will act ethically and honestly in all our interactions.

That means you do your own work! This is especially true when it comes to programming, as it is easy to copy another’s code. Copying code is cheating. Such violations will result in zero to a full negative grade on the assignment and reporting to the appropriate university resources. Further infractions will result in an F in the course.

We encourage you to talk with other students about your assignments and questions, but make sure you do your own work. Here are some guidelines on what is appropriate:

  • Clarifying ambiguities or vague points in assignments, class handouts, textbooks, or lectures
  • Discussing or explaining the general class material
  • Providing assistance with Python and the various tools
  • Discussing the code that we give out in the assignment
  • Discussing the assignments to better understand them
  • Getting help from anyone concerning programming issues which are clearly more general than the specific project (e.g., what does a particular error message mean?)
  • Suggesting solution strategies
  • In general, oral collaboration is OK.

Here are some things that are inappropriate:

  • Copying files or parts of files (such as source code, written text, or unit tests) from another person or source
  • Copying (or retyping) files or parts of files with minor modifications such as style changes or minor logic modifications
  • Allowing someone else to copy your code or written assignment, either in draft or final form
  • Getting help that you do not fully understand
  • Copying prose or programs directly
  • Giving copies of work to others
  • Coaching others step-by-step

Here are some gray areas:

  • Reading someone’s code for clarity or bugs, after you have completed your own
  • Helping with debugging
  • Looking at someone’s program but thinking about them and writing your own
  • Following someone’s advice or instructions without understanding them

This discussion of is based on CMU policy.

Academic Integrity & the CSU Honor Pledge

This course will adhere to the CSU Academic Integrity/Misconduct policy as found in the General Catalog and the Student Conduct Code.

Academic integrity lies at the core of our common goal: to create an intellectually honest and rigorous community. Because academic integrity, and the personal and social integrity of which academic integrity is an integral part, is so central to our mission as students, teachers, scholars, and citizens, I will ask that you affirm the CSU Honor Pledge as part of completing your work in this course. This pledge states that:

"I have not given, received, or used any unauthorized assistance."

Discussion Boards

Here are a few specific guidelines when using the discussion board features of Microsoft Teams.

  1. No posting of any code for assignments.
  2. No inappropriate postings: e.g. profanity, sexism, racism, bullying, inflammatory remarks, bad taste.
  3. No grade inquiries: make those directly to the instructors.
  4. All students are expected to follow the discussions.
  5. Instructor posts, like in-class announcments, may clarify and even alter assignment specifications.
  6. Use the existing topics. Please don't start new threads.
  7. Only answer questions by other students when you are confident you are both correct and able to craft a helpful explanation.
  8. Questions may of course relate to how best to use tools.
  9. Do not expect instant answers. While answers may often come faster, a 24 hour response cycle is reasonable.
  10. Posts are anonymous one student to another through the Piazza interface.
  11. Posts are archival and individualized for the instructors.

This last item deserves additional comment. Please, keep in mind every word you type may be retained and shared by the instructor with others when the instructor determines there is good reason to do so. This should not concern you. It is the nature of a public discussion board that what you type is archival and public. However, understanding the public and personally identifiable nature of the discussion board should help reinforce the comments above about the importance of Professionalism.