Description

Instructor:
Ross Beveridge
Office: Online
Office Hours: See CANVAS
Email: ross@cs.colostate.edu
GTA 1:
Yongxin Liu
Office Hours: See CANVAS
Email: Yongxin.Liu@colostate.edu
GTA 2:
Shuo Liu
Office Hours: See CANVAS
Email: Shuo.Liu@colostate.edu
Lecture Time and Place:
11:00 -- 12:15, Tue, Thur
TILT 221 / Zoom

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 2022 CSU COVID-19 Statement

Masks are required inside university buildings. You must also meet university vaccine or exemption requirements.  

All students are expected and required to report to the COVID Reporter (https://covid.colostate.edu/reporter/) when:  

  • You suspect you have symptoms of COVID, regardless of whether or not you are vaccinated and even if your symptoms are mild
  • You have tested positive for COVID through a non-CSU testing site, such as home test or test at a pharmacy
  • You believe you may have been exposed to COVID go to the COVID Reporter and follow the guidance under “I believe I have been in close contact with someone who has COVID-19.” This guidance will depend upon your individual circumstances
  •  

You will not be penalized in any way for reporting symptoms or concerns.   

Do not ask me as your instructor to report for you. It is your responsibility to report through the COVID Reporter promptly.   

As your instructor I may not ask you about vaccination status or if you have COVID but you may freely volunteer to send me information from a public health official   if you have been asked to isolate or quarantine.   

When you complete the COVID Reporter, the CSU Public Health office is notified. Once notified, that office will contact you and, depending upon each situation, will conduct contact tracing, initiate any necessary public health requirements and notify you if you need to take any steps.   

If you do not have internet access to fill out the online COVID-19 Reporter, please call (970) 491-4600.   

For the latest information about the University’s COVID resources and information, including FAQs about the spring semester, 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.

Lecture Delivery and Zoom

CS 345 in Spring 2022 is continuing with a somewhat experimental lecture format begun in Fall 2021. While two options are now common, one being entirly in person and the other entirely online, CS 345 is structured to suppot three alternative ways to approach the lecture material. These are:

  1. Attend lecture in person in the assigned lecture hall (TILT 221).
  2. Attend lecture live but remotely through Zoom.
  3. Review posted lecture recordings at timing or your choice.

As the instructor, I have no official preference for which mode you choose or even how you choose to mix and match these options. I consider giving you that latitude to choose what is best for you a important. That said, allow me to hasten to make some comments. First, I have been posting recorded lectures for on campus classes for over a decade and have considerable experience giving students the choice between 1) attend in person in the lecture hall, and 3) watch recorded lectures on your own time. There is no question in my mind that some fraction of students dig themselves into a hole by thinking they will keep up by watching recorded lectures later and subsequently withdraw or fail. There is also no question in my mind regarding the value of posting the recorded lectures regardless of any other consideration. Consistently I am told that being able to go back and review parts of lectures later in the semester is itself a great help.

It should be noted that option 2) - attending live through zoom while physically somewhere other than the lecture hall - is relatively new. It makes sense to me that this option may be come desired by a set of students as the supporting technology - in this case Zoom - become second nature. Speaking of these technologies becoming second nature, all students using option 1) or 2) will be asked to participate in live polls administered through Zoom. This means students physically in the lecture hall will still be asked to bring a device to class suitable for logging into Zoom and participating in Zoom polls. A key technical point - please mute your microphone and disable your speakers. Failure to do so will likely generate feedabck in the hall. As to why this is helpful, a nice feature is these polls are anonymous experience suggests they very quickly give all of us, myself included, good guidance about what needs elaboration and what does not. And in case you wonder, it is possible for the instructor to tie poll responses to individual students by digging deeply. You have my word I am not interested in doing such digging.

Software, Tools and Options

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.

This approach to lecture delivery places extra demands upon the instructor and to some exent students as well. Note this model of deliver goes somewhat beyond what is typically called "hybrid" in terms of flexibilty. The instructor asks in advance for students help - and patience - as some of the wrinkles of this approach may need to be worked out as the semester gets underway. However, the instructor also feels that after three semesters of online only instruction it is important to come back to the classroom with an aim to combining the best of online only and in person only instruction.

Returning to tools, here briefly is what the instructor will expect.

  • If possible please come to lecture ready to hook into the live Zoom fead using your laptop, tablet, or other device of your choosing.
  • If you miss a lecture please review the recording carefully.

Now that you understand you have the option of not attending lectures when they are given, let me give some guidance as you weigh your choices. I have personally been recording and posting lectures for 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 less effective.

Website Support

Please also keep in mind that CS 345 uses a public facing website (where you are presently reading the Syllabus) 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. As already mentioned, Zoom will be used as a key part of lecture delivery. Microsoft Teams will be used to manage discussions and will be the best means of directly communicating with and meeting with the GTA.

Grading

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

Activity   Weight
Quizzes 15 %
Coding Excercises 15 %
Programming Assignments 40 %
Semester Project 15 %
Final Exam 15 %

Assignments, Excercises and the Semester Project will require the submission of a jupyter notebook. Your notebook will combine 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 assignment 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 all students registered for the on campus version of CS 345 will take the exam in Engineering 120 at the officially designated time:

  • Thursday, May 12 from 9:40 to 11:40 AM

Students enrolled in CS 345 through CSU Online will be asked to take the exam at this time or with consent of the instructor shortly there after.

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 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.