Skip to content

Latest commit

 

History

History
203 lines (169 loc) · 12.5 KB

README.org

File metadata and controls

203 lines (169 loc) · 12.5 KB

Computer Science 499/599 at Northern Arizona University, Fall 2021

Topic: Unsupervised Learning

Dates: Aug 23 - Dec 10.

Meeting time/place:

  • CS499, MWF 8-8:50AM, Engineering building, room 314.
  • CS599, TuTh 8-9:15AM, Health Professions building, room 229.

Syllabus: Google Doc.

Class Discord Link (will expire on 10/4/2021): https://discord.gg/WrM7QAxv

Reading links

For quizzes

These provide background/theory about the algorithms we study in this class.

MLAPP by Murphy

ESL by Hastie, Tibshirani, Friedman

About computational complexity,

  • The SICP book, 1.2.3 “Orders of Growth,” has a brief description in general terms (not specific to machine learning).
  • The CLRS book has a more detailed description in Chapter 3, “Growth of Functions” (not specific to machine learning).
  • Wikipedia usually has a good/accurate characterization of the machine learning algorithms we study. For example K-means clustering, section Complexity.

For homeworks

These provide practical advice about how to write the R code necessary for the homeworks.

Getting Started in R: Tinyverse Edition by Saghir Bashir and Dirk Eddelbuettel.

Impatient R by Burns

fasteR: Becoming productive in R, as fast as possible, by Norm Matloff

Introductions to data.table (efficient R package for data manipulation).

Tao Te Programming by Burns

Data visualization with ggplot2

For CS599 grad students: guides to writing an R package with C/C++ code.

Weekly schedule of Homeworks and reading

To do the homeworks you need to install the most recent version of R (4.1.1) with either the RStudio IDE (for beginners) or the ESS IDE (for students who already know/use emacs, or who want to learn, my emacs tutorials).

Folder of all class recordings and code demos from last year. Folder with all code demos from this year. Yes you can copy and modify these code demos for your homework, since they are a part of the class material. But in general, copying code for your homework, from classmates or internet sources, is strictly forbidden and will be pursued as an academic integrity violation.

Your content and responses to each homework question will be graded as follows

  • Full credit for figures which show correct results, along with code which seems correct and is of high quality.
  • This General Usage Rubric will be used to grade the code quality/style/efficiency in each of your homeworks, -5 for each violation of these good coding rules.
  • Some code and result figures, but clearly incorrect, -5 to -10.
  • Missing code or figure, -10 to -20.
  • Missing code and figure, -20 to -40.

Homework topics and readings for each week are listed below. The date of the Monday of each week is written. Each homework is due Friday of that week, 11:59PM.

General Questions and Answers (FAQ)

  • can I do my homework with an older version of R? Maybe, try it if you want, but homeworks will typically require using R packages, which are only tested with the most recent versions of R, so if you are getting errors with an old version of R, try upgrading to the most recent version.
  • Some function give me a NULL result, how can I work around that? Try if(!is.null(result)){save your results}
  • Some for loop over N items takes a long time, but failed/errored at the N-1’th iteration. How can I re-start computations where I left off? Try if(!some_key %in% names(result_list)){do the computations and save result with name some_key in result_list}

How to ace this class

Before class you should prepare by doing the suggested readings/videos. When you do that, write a summary in your own words of every section. Also write questions that you have during your reading so you can ask in class or office hours.

During class, take notes by writing what you understood in your own words. Also I would suggest to ask questions in class as soon as you need clarification.

After class, you should review your notes with one of your classmates (ask one of the students who seem to be correctly answering a lot of questions). Ask each other questions and try to teach/summarize some of the material with each other – that is one of the best ways to learn.

Finally after doing all of the above, please come to office hours (see syllabus), or email me to schedule a meeting.