├── .editorconfig ├── .gitignore ├── .travis.yml ├── README.md ├── build.sh ├── build └── templater.js ├── data ├── assignments.yml ├── lectures.yml └── this-week.yml ├── deploy.sh ├── docs ├── 10.Lab.MidtermRecap.pdf ├── 11.bayesian-networks.pdf ├── 12.Lab.bayesian-methods.pdf ├── 12.bayesian-methods.pdf ├── 13.Lab.PCA-SVD-LDA.pdf ├── 13.mixture-models.pdf ├── 14a.information-theory.pdf ├── 14b.EM-algorithm.pdf ├── 1a.course-logistics.pdf ├── 1b.intro-slt-riskdecomp.pdf ├── 1c.stoch-grad-descent.pdf ├── 2.Lab.subgradient-descent.pdf ├── 2a.excess-risk-example.pdf ├── 2b.L1L2-regularization.pdf ├── 3a.loss-functions.pdf ├── 3b.convex-optimization.pdf ├── 3c.SVM.pdf ├── 4.Lab.kernelizations.pdf ├── 4a.kernels-highlevel.pdf ├── 4b.features.pdf ├── 4c.kernels.pdf ├── 5.Lab.misc.pdf ├── 5a.trees.pdf ├── 5b.bias-variance.pdf ├── 6a.bagging-random-forests.pdf ├── 6b.boosting.pdf ├── 7a.gradient-boosting.pdf ├── 7b.neural-networks.pdf ├── 8.Lab.glm.pdf ├── 8a.citysense.pdf ├── 8b.conditional-probability-models.pdf ├── 9.midterm-review.pdf ├── convex-optimization.pdf ├── matrix-differentiation.pdf ├── probability-distributions.pdf ├── projections-svm.pdf ├── svm-notes.pdf └── syllabusDS-GA1003-Spring2015.pdf ├── favicon.ico ├── fonts ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── gulpfile.js ├── homework ├── hw1.pdf ├── hw1.zip ├── hw2.pdf ├── hw2.zip ├── hw3.pdf ├── hw3.zip ├── hw4.pdf ├── hw4.zip ├── hw5.pdf ├── hw5.zip ├── hw6.pdf ├── hw6.zip ├── hw7.pdf └── hw7.zip ├── images ├── boyd-1x.jpg ├── boyd-2x.jpg ├── boyd-original.jpg ├── hastie-1x.png ├── hastie-2x.jpg ├── hastie-3x.jpg ├── hastie-original.jpg ├── james-1x.jpg ├── james-2x.jpg ├── james-3x.jpg ├── james-original.jpg ├── murphy-1x.jpg ├── murphy-2x.jpg ├── murphy-3x.jpg ├── murphy-original.jpg └── people │ ├── brian.jpg │ ├── david.jpg │ ├── gideon.jpg │ ├── haoxu.jpg │ ├── kurt.jpg │ ├── kush.jpg │ ├── prasoon.jpg │ ├── ranbi.jpg │ ├── shanshan.jpg │ └── vikas.jpg ├── index.hbs ├── package.json ├── refs ├── PegasosMPB.pdf ├── barnes-MatrixDifferentiation.pdf ├── bottou-sgd-tricks-2012.pdf ├── boyd-slides │ ├── functions.pdf │ └── sets.pdf ├── bv_cvxbook.pdf ├── bv_subgradients_notes.pdf ├── coordinate-descent.pdf ├── felippa-MatrixCalculus.pdf ├── lasso-original.pdf ├── matrixCookbook-15Nov2012.pdf ├── pml-intro-22may12.pdf ├── shalev-shwartz11a-SCD-L1.pdf └── stanfordCS229-linalg.pdf ├── scripts └── navigation.js ├── styles ├── colors.styl ├── phone.styl ├── style.styl └── tablet-and-phone.styl └── templates ├── _assignment-details.hbs ├── _references.hbs ├── assignments.hbs ├── lectures.hbs └── this-week.hbs /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | trim_trailing_whitespace = true 9 | 10 | [*.{js,html,hbs}] 11 | indent_size = 4 12 | 13 | [{*.styl,*.yml}] 14 | indent_size = 2 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .dropbox 2 | .Rhistory 3 | desktop.ini 4 | Thumbs.db 5 | npm-debug.log 6 | *.*~ 7 | ~$* 8 | \#*\# 9 | 10 | *.css 11 | index.html 12 | out/ 13 | node_modules/ 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - stable 4 | script: bash ./deploy.sh 5 | env: 6 | global: 7 | - GH_REF: github.com/davidrosenberg/dsga1003.git 8 | - secure: FzCgD214+KRyxvVTut84DrKQJ36BmZTy0yUNgywFecYEEnfmTl3dHquk2GwvP191mIoBqpCpsZiLMJ9vHSKF47NJkORwwIwesnuBjEiJxzG/uxpyNgt1Dxn4JJFW8ymPjxrI2RlNnVnhGVHyndAFHfHH9FJqGf6AlujGQdf3zMU= 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DS-GA 1003 Website 2 | 3 | ## Development info 4 | 5 | ### Building locally: quickstart 6 | 7 | Be sure to have [Node.js](https://iojs.org/) 5.x+ installed. 8 | 9 | Run `npm install` in the project root. This will install some build tools we use. 10 | 11 | Run `npm run watch` to start a watcher that will compile things in place. You can then view the site by simply opening `index.html`. 12 | 13 | Run `npm run build` to do a local build into the `out/` directory. You can then preview the site at `out/index.html`. This should usually be the same as just `index.html`, but it is good to check before committing, since the build process is slightly more complicated than the in-place watch process. 14 | 15 | ### Technologies used 16 | 17 | [Stylus](https://learnboost.github.io/stylus/) is used for styling. 18 | 19 | [Handlebars](http://handlebarsjs.com/) is used for templating. `index.hbs` is minimally templated, mostly delegating to the partials in `templates/`. Those pull their data from `data/`. The logic that ties them all together is in `build/templater.js`. 20 | 21 | [Gulp](http://gulpjs.com/) is used for a build/watch system. This is abstracted behind npm tasks though (`npm run watch`, `npm run build`). 22 | 23 | [Traceur](https://github.com/google/traceur-compiler) is used to write ES2015 code instead of boring-old-JavaScript, for the build code at least. 24 | 25 | [Travis](https://travis-ci.org/) is used to build and deploy the website to gh-pages on each push, per [this guide](https://gist.github.com/domenic/ec8b0fc8ab45f39403dd). 26 | 27 | The site is intended to be responsive, which we accomplish with per-device stylesheets and media queries in the HTML. 28 | 29 | ### Things to Keep in Mind 30 | 31 | While editing you should be using an [EditorConfig](http://editorconfig.org/) plugin for your text editor to enforce a few basic stylistic things. 32 | 33 | We are trying to maintain a reasonable HTML document outline (so, don't use `
` as if it were `
`). To preview the document outline, use the [HTML 5 Outliner tool](https://gsnedders.html5.org/outliner/); here's [a direct link to the outline for the current version](https://gsnedders.html5.org/outliner/process.py?url=https%3A%2F%2Fdavidrosenberg.github.io%2Fml2015%2F%23home). 34 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e # exit with nonzero exit code if anything fails 3 | 4 | ## TODO migrate to gulp probably 5 | 6 | # clear and re-create the out directory 7 | rm -rf out || exit 0; 8 | mkdir out; 9 | 10 | rm -f index.html 11 | rm -rf styles/*.css 12 | 13 | npm run build-in-place 14 | 15 | cp index.html favicon.ico out/ 16 | 17 | mkdir out/styles/ 18 | cp styles/*.css out/styles/ 19 | 20 | cp -r refs images homework fonts scripts docs out/ 21 | 22 | echo "" 23 | find out/ -print 24 | echo "" 25 | -------------------------------------------------------------------------------- /build/templater.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const yaml = require('js-yaml'); 4 | const fs = require('fs'); 5 | const handlebarsFactory = require('handlebars'); 6 | const moment = require('moment'); 7 | const assert = require('assert'); 8 | const toSlug = require('to-slug'); 9 | 10 | const SLIDES_AND_NOTES = 'Slides and Notes'; 11 | const REFERENCES_PRE = 'References (Pre)'; 12 | const REFERENCES_SUPPLEMENTAL = 'References (Supplemental)'; 13 | 14 | const TEMPLATES_DIR = path.resolve(__dirname, '../templates'); 15 | 16 | module.exports = (input, output) => { 17 | const handlebars = handlebarsFactory.create(); 18 | registerHelpers(handlebars); 19 | registerPartials(handlebars); 20 | 21 | const template = compileTemplate(handlebars, input); 22 | const documents = parseDocuments(); 23 | fs.writeFileSync(output, template(documents)); 24 | }; 25 | 26 | // Uncomment to see documents; useful while tweaking the templates 27 | // console.log(require("util").inspect(documents, { depth: Infinity })); 28 | 29 | function compileTemplate(handlebars, input) { 30 | return handlebars.compile(fs.readFileSync(input, { encoding: 'utf-8' })); 31 | } 32 | 33 | function parseDocuments() { 34 | const lectures = yaml.safeLoad(fs.readFileSync(path.resolve(__dirname, '../data/lectures.yml'))); 35 | 36 | // Pull Slides and Notes, References (Pre), and References (Supplemental) from the topics up to the top level: 37 | for (const lecture of lectures) { 38 | Object.keys(lecture.Events).forEach(eventDate => { 39 | const event = lecture.Events[eventDate]; 40 | 41 | ensureArrayExists(event, SLIDES_AND_NOTES); 42 | ensureArrayExists(event, REFERENCES_PRE); 43 | ensureArrayExists(event, REFERENCES_SUPPLEMENTAL); 44 | 45 | Object.keys(event.Topics).forEach(topic => { 46 | copyArrayInto(event.Topics[topic], event, SLIDES_AND_NOTES); 47 | copyArrayInto(event.Topics[topic], event, REFERENCES_PRE); 48 | copyArrayInto(event.Topics[topic], event, REFERENCES_SUPPLEMENTAL); 49 | }); 50 | }); 51 | } 52 | 53 | let assignmentsFrontmatter, assignments; 54 | let i = 0; 55 | yaml.safeLoadAll(fs.readFileSync(path.resolve(__dirname, '../data/assignments.yml')), doc => { 56 | switch (i) { 57 | case 0: 58 | assignmentsFrontmatter = doc; 59 | break; 60 | case 1: 61 | assignments = doc; 62 | break; 63 | default: 64 | throw new Error('Cannot have more than two documents in assignments.yaml'); 65 | } 66 | ++i; 67 | }); 68 | 69 | const thisWeek = yaml.safeLoad(fs.readFileSync(path.resolve(__dirname, '../data/this-week.yml'))); 70 | 71 | // Pull data from lectures and assignments into thisWeek: 72 | const thisWeekLecture = lectures.find(l => l.Title === thisWeek['Lecture/Lab']); 73 | const thisWeekAssignment = assignments.find(a => a.Label === thisWeek.Assignment); 74 | 75 | if (thisWeekLecture === undefined) { 76 | throw new Error(`Could not find entry in lectures.yml with Title "${thisWeek['Lecture/Lab']}" specified in ` + 77 | `this-week.yaml`); 78 | } 79 | if (thisWeekAssignment === undefined) { 80 | throw new Error(`Could not find entry in assignments.yml with Label "${thisWeek['Assignment']}" specified in ` + 81 | `this-week.yaml`); 82 | } 83 | 84 | thisWeek.lecture = thisWeekLecture; 85 | thisWeek.assignment = thisWeekAssignment; 86 | 87 | return { lectures, thisWeek, assignmentsFrontmatter, assignments }; 88 | } 89 | 90 | function registerPartials(handlebars) { 91 | for (const filename of fs.readdirSync(TEMPLATES_DIR)) { 92 | const filePath = path.resolve(TEMPLATES_DIR, filename); 93 | const partialName = path.basename(filename, '.hbs'); 94 | const contents = fs.readFileSync(filePath, { encoding: 'utf-8' }); 95 | 96 | handlebars.registerPartial(partialName, contents); 97 | } 98 | } 99 | 100 | function registerHelpers(handlebars) { 101 | handlebars.registerHelper('date', d => moment.utc(new Date(d).toISOString()).format('MMMM Do')); 102 | handlebars.registerHelper('shortDate', d => moment.utc(new Date(d).toISOString()).format('MMM D')); 103 | handlebars.registerHelper('maybeLink', v => { 104 | if (typeof v === 'string') { 105 | return v; 106 | } 107 | 108 | assert (typeof v === 'object' && v !== null, 'Links must be either strings or objects'); 109 | 110 | const keys = Object.keys(v); 111 | assert(keys.length === 1, 'Link objects must have a single key'); 112 | const key = keys[0]; 113 | 114 | return new handlebars.SafeString('' + key + ''); 115 | }); 116 | handlebars.registerHelper('lectureSlug', l => 'lecture-' + toSlug(l.Title)); 117 | handlebars.registerHelper('assignmentSlug', l => 'assignment-' + toSlug(l.Label)); 118 | } 119 | 120 | function ensureArrayExists(obj, prop) { 121 | if (!(prop in obj)) { 122 | obj[prop] = []; 123 | } 124 | } 125 | 126 | function copyArrayInto(source, dest, keyName) { 127 | if (source && source[keyName]) { 128 | dest[keyName].push(...source[keyName]); 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /data/assignments.yml: -------------------------------------------------------------------------------- 1 | Due time: 4pm 2 | Submit link: "https://newclasses.nyu.edu/portal" 3 | --- 4 | - 5 | Label: Homework 1 6 | Description: Ridge regression and SGD 7 | Due: 2015-02-06 8 | PDF: {hw1.pdf: "homework/hw1.pdf"} 9 | ZIP: {hw1.zip: "homework/hw1.zip"} 10 | # Solutions: {hw1_solutions.zip: "homework/hw1-sgd/hw1_solutions.zip"} 11 | - 12 | Label: Homework 2 13 | Description: Lasso regression 14 | Due: 2015-02-13 15 | PDF: {hw2.pdf: "homework/hw2.pdf"} 16 | ZIP: {hw2.zip: "homework/hw2.zip"} 17 | - 18 | Label: Homework 3 19 | Description: SVM and Sentiment Analysis 20 | Due: 2015-02-23 21 | PDF: {hw3.pdf: "homework/hw3.pdf"} 22 | ZIP: {hw3.zip: "homework/hw3.zip"} 23 | - 24 | Label: Homework 4 25 | Description: Kernel Methods and Lagrangian Duality 26 | Due: 2015-03-03 27 | PDF: {hw4.pdf: "homework/hw4.pdf"} 28 | ZIP: {hw4.zip: "homework/hw4.zip"} 29 | - 30 | Label: Homework 5 31 | Description: Trees and Ensemble Methods 32 | Due: 2015-03-25 33 | PDF: {hw5.pdf: "homework/hw5.pdf"} 34 | ZIP: {hw5.zip: "homework/hw5.zip"} 35 | - 36 | Label: Homework 6 37 | Description: Midterm Review 38 | Due: 2015-04-10 39 | PDF: {hw6.pdf: "homework/hw6.pdf"} 40 | ZIP: {hw6.zip: "homework/hw6.zip"} 41 | - 42 | Label: Homework 7 43 | Description: Tikhonov, Ivanov, Square Hinge, and GLMs 44 | Due: 2015-04-21 45 | PDF: {hw7.pdf: "homework/hw7.pdf"} 46 | ZIP: {hw7.zip: "homework/hw7.zip"} 47 | -------------------------------------------------------------------------------- /data/lectures.yml: -------------------------------------------------------------------------------- 1 | #http://techtalks.tv/machine-learning-nyu-spring-2015/ 2 | - 3 | Title: Week 1 4 | Events: 5 | 2015-01-28: 6 | Label: Lecture 7 | Video: "http://techtalks.tv/talks/lecture-1-9/61396/" 8 | Topics: 9 | Course mechanics: 10 | References (Supplemental): 11 | - {KPM Ch 1: "http://www.cs.ubc.ca/~murphyk/MLbook/pml-intro-22may12.pdf"} 12 | Slides and Notes: 13 | - {Course Logistics: "docs/1a.course-logistics.pdf"} 14 | Statistical learning theory framework: 15 | References (Pre): 16 | - Math review notes 17 | Slides and Notes: 18 | - {Statistical Learning Theory: "docs/1b.intro-slt-riskdecomp.pdf"} 19 | Excess risk decomposition: 20 | Gradient and stochastic gradient descent: 21 | References (Supplemental): 22 | - {Bottou's SGD Tricks: "refs/bottou-sgd-tricks-2012.pdf"} 23 | - BV Preface, Ch 1 24 | Slides and Notes: 25 | - {Stochastic Gradient Descent: "docs/1c.stoch-grad-descent.pdf"} 26 | 2015-01-29: 27 | Label: Lab 28 | Video: "http://techtalks.tv/talks/lab-1/61397/" 29 | Topics: 30 | Matrix differentiation (Shanshan Ding): 31 | References (Supplemental): 32 | - {Barnes's "Matrix Differentiation" notes: "http://www.atmos.washington.edu/~dennis/MatrixCalculus.pdf"} 33 | - {Felippa's "Matrix Calculus" chapter: "http://www.colorado.edu/engineering/cas/courses.d/IFEM.d/IFEM.AppC.d/IFEM.AppC.pdf"} 34 | Slides and Notes: 35 | - {Matrix Differentiation: "docs/matrix-differentiation.pdf"} 36 | # References (Supplemental): 37 | # - {The Matrix Cookbook: "refs/matrixCookbook-15Nov2012.pdf"} 38 | - 39 | Title: Week 2 40 | Events: 41 | 2015-02-04: 42 | Label: Lecture 43 | Video: "http://techtalks.tv/talks/lecture-44/61399/" 44 | Topics: 45 | Excess Risk Decomposition (cont.): 46 | References (Pre): 47 | - "KPM 16.2.1" 48 | Slides and Notes: 49 | - {Excess Risk Demo: "docs/2a.excess-risk-example.pdf"} 50 | L1/L2 regularization: 51 | References (Supplemental): 52 | - "KPM 13.3, 13.4.1" 53 | - "HTF Ch. 3" 54 | - {Bottou's SGD Tricks: "refs/bottou-sgd-tricks-2012.pdf"} 55 | Slides and Notes: 56 | - {L1 and L2 regularization: "docs/2b.L1L2-regularization.pdf"} 57 | Optimization methods for Lasso: 58 | 2015-02-05: 59 | Label: Lab 60 | Topics: 61 | Subgradient descent: 62 | References (Supplemental): 63 | - {Boyd's subgradient notes: "http://web.stanford.edu/class/ee364b/lectures.html"} 64 | Slides and Notes: 65 | - {Subgradient Methods: "docs/2.Lab.subgradient-descent.pdf"} 66 | - 67 | Title: Week 3 68 | Events: 69 | 2015-02-11: 70 | Label: Lecture 71 | Video: "http://techtalks.tv/talks/lecture-47/61403/" 72 | Topics: 73 | Loss functions: 74 | Slides and Notes: 75 | - {Loss functions: "docs/3a.loss-functions.pdf"} 76 | Convex Optimization: 77 | Slides and Notes: 78 | - {Convex optimization: "docs/3b.convex-optimization.pdf"} 79 | - {Extreme Abridgement of BV: "docs/convex-optimization.pdf"} 80 | References (Supplemental): 81 | - BV Ch 1-5 82 | SVM: 83 | References (Supplemental): 84 | - "HTF 12.2.1 - 12.2.2" 85 | Slides and Notes: 86 | - {SVM (slides): "docs/3c.SVM.pdf"} 87 | - {SVM (notes): "docs/svm-notes.pdf"} 88 | 89 | 2015-02-12: 90 | Label: Lab 91 | Video: "http://techtalks.tv/talks/lab-11/61404/" 92 | Topics: 93 | Projections: 94 | SVM (Geometric Motivation): 95 | References (Supplemental): 96 | - "HTF 3.2.0,4.5" 97 | - "HTF pp. 417-419" 98 | Slides and Notes: 99 | - {Projections and SVM: "docs/projections-svm.pdf"} 100 | - 101 | Title: Week 4 102 | Events: 103 | 2015-02-18: 104 | Label: Lecture 105 | Video: "http://techtalks.tv/talks/lecture-50/61408/" 106 | Topics: 107 | Features: 108 | Slides and Notes: 109 | - {Features: "docs/4b.features.pdf"} 110 | Kernel Methods: 111 | References (Supplemental): 112 | - "KPM 14.2.1-14.2.6" 113 | Slides and Notes: 114 | - {Kernel Methods (Overview): "docs/4a.kernels-highlevel.pdf"} 115 | - {Kernels: "docs/4c.kernels.pdf"} 116 | Kernelized Ridge Regression: 117 | References (Supplemental): 118 | - "KPM 14.3.1-14.4.3" 119 | Kernelized SVM: 120 | References (Supplemental): 121 | - "HTF 12.3.1" 122 | - "KPM 14.5" 123 | 124 | 2015-02-19: 125 | Label: Lab 126 | Topics: 127 | Kernelizations: 128 | Slides and Notes: 129 | - {Kernelizations: "docs/4.Lab.kernelizations.pdf"} 130 | 131 | - Title: Week 5 132 | Events: 133 | 2015-02-25: 134 | Label: Lecture 135 | Video: "http://techtalks.tv/talks/lecture-53/61414/" 136 | Topics: 137 | Trees: 138 | Slides and Notes: 139 | - {Trees: "docs/5a.trees.pdf"} 140 | References (Supplemental): 141 | - "HTF 9.2" 142 | - "KPM 16-16.2.4" 143 | Bias and Variance: 144 | Slides and Notes: 145 | - {Bias and Variance: "docs/5b.bias-variance.pdf"} 146 | 2015-02-26: 147 | Label: Lab 148 | Video: "http://techtalks.tv/talks/lab-16/61415/" 149 | Topics: 150 | Homework Review: 151 | Slides and Notes: 152 | - {"SGD, Parameter Tuning, and Directional Derivatives": "docs/5.Lab.misc.pdf"} 153 | 154 | - Title: Week 6 155 | Events: 156 | 2015-03-04: 157 | Label: Lecture 158 | Video: "http://techtalks.tv/talks/lecture-55/61417/" 159 | Topics: 160 | Bagging: 161 | Slides and Notes: 162 | - {Bagging and Random Forests: "docs/6a.bagging-random-forests.pdf"} 163 | References (Supplemental): 164 | - "HTF 8.7" 165 | Random Forests: 166 | References (Supplemental): 167 | - "HTF Ch. 15" 168 | Boosting: 169 | References (Supplemental): 170 | - "HTF Ch. 10" 171 | - "KPM Ch. 16.4" 172 | Slides and Notes: 173 | - {Boosting: "docs/6b.boosting.pdf"} 174 | 2015-03-05: 175 | Label: Lab 176 | Video: "http://techtalks.tv/talks/lab-18/61420/" 177 | Topics: 178 | Probability Distribution Review (Shanshan Ding): 179 | Slides and Notes: 180 | - {Probability Distributions: "docs/probability-distributions.pdf"} 181 | 182 | - Title: Week 7 183 | Events: 184 | 2015-03-11: 185 | Label: Lecture 186 | Video: "http://techtalks.tv/talks/lecture-58/61424/" 187 | Topics: 188 | Gradient Boosting: 189 | References (Supplemental): 190 | - {Friedman's GBM Paper: http://statweb.stanford.edu/~jhf/ftp/trebst.pdf} 191 | - {Ridgeway's GBM Guide: http://www.saedsayad.com/docs/gbm2.pdf} 192 | Slides and Notes: 193 | - {Gradient Boosting: "https://davidrosenberg.github.io/mlcourse/Archive/2015/Lectures/7a.gradient-boosting.pdf"} 194 | Neural Networks: 195 | Slides and Notes: 196 | - {Neural Networks: "docs/7b.neural-networks.pdf"} 197 | References (Supplemental): 198 | - "HTF Ch 11" 199 | - "KPM 16.5-16.5.5" 200 | - {Bengio's "Practical Recommendations": http://arxiv.org/pdf/1206.5533v2.pdf} 201 | 2015-03-12: 202 | Label: Project Adviser Meetings 203 | Topics: [] 204 | 205 | - Title: Week 8 206 | Events: 207 | 2015-03-25: 208 | Label: Lecture 209 | Video: "http://techtalks.tv/talks/lecture-61/61433/" 210 | Topics: 211 | Probabilistic Modeling: 212 | Slides and Notes: 213 | - {CitySense and CabSense: "docs/8a.citysense.pdf"} 214 | Conditional Probability Models: 215 | Slides and Notes: 216 | - {Conditional Probability Models: "docs/8b.conditional-probability-models.pdf"} 217 | 2015-03-26: 218 | Label: Lab 219 | Video: "http://techtalks.tv/talks/lab-22/61435/" 220 | Topics: 221 | Generalized Linear Models: 222 | Slides and Notes: 223 | - {Generalized Linear Models: "docs/8.Lab.glm.pdf"} 224 | References (Supplemental): 225 | - {Part III of Andrew Ng's CS 229 Notes: http://cs229.stanford.edu/notes/cs229-notes1.pdf} 226 | 227 | 228 | - Title: Week 9 229 | Events: 230 | 2015-04-01: 231 | Label: Lecture 232 | Video: "http://techtalks.tv/talks/lecture-64/61438/" 233 | Topics: 234 | Midterm Exam Review: 235 | Slides and Notes: 236 | - {Midterm Review: "docs/9.midterm-review.pdf"} 237 | 2015-04-02: 238 | Label: Lab 239 | Video: "http://techtalks.tv/talks/lecture-64/61440/" 240 | Topics: 241 | Midterm Exam Review: 242 | 243 | - Title: Week 10 244 | Events: 245 | 2015-04-08: 246 | Label: Midterm Exam 247 | Topics: [] 248 | 2015-04-09: 249 | Label: Midterm Recap 250 | Topics: 251 | Midterm Recap: 252 | Slides and Notes: 253 | - {Midterm Recap: "docs/10.Lab.MidtermRecap.pdf"} 254 | 255 | - Title: Week 11 256 | Events: 257 | 2015-04-15: 258 | Label: Lecture 259 | Video: "http://techtalks.tv/talks/lecture-69/61447/" 260 | Topics: 261 | Bayesian Networks: 262 | Slides and Notes: 263 | - {Bayesian Networks: "docs/11.bayesian-networks.pdf"} 264 | References (Supplemental): 265 | - "KPM Chapter 10" 266 | 267 | 2015-04-16: 268 | Label: Project Adviser Meetings 269 | Topics: [] 270 | 271 | - Title: Week 12 272 | Events: 273 | 2015-04-22: 274 | Label: Lecture 275 | Video: http://techtalks.tv/talks/lecture-72/61451/ 276 | Topics: 277 | Bayesian Methods: 278 | References (Supplemental): 279 | - "KPM Chapter 5" 280 | Slides and Notes: 281 | - {Bayesian Methods: "docs/12.bayesian-methods.pdf"} 282 | Bayesian Regression: 283 | References (Supplemental): 284 | - "KPM 7.6" 285 | 286 | 2015-04-23: 287 | Label: Lab 288 | Video: "http://techtalks.tv/talks/lab-29/61453/" 289 | Topics: 290 | Beta-Binomial Model: 291 | Naive Bayes: 292 | Bag-of-Words (Bernoulli Version): 293 | Slides and Notes: 294 | - {Bayesian Review and Naive Bayes: "docs/12.Lab.bayesian-methods.pdf"} 295 | 296 | - Title: Week 13 297 | Events: 298 | 2015-04-29: 299 | Label: Lecture 300 | Video: "http://techtalks.tv/talks/lecture-74/61456/" 301 | Topics: 302 | k-means Clustering: 303 | Gaussian Mixture Models: 304 | EM Algorithm (Introduction): 305 | Slides and Notes: 306 | - {k-means and Mixture Models: "docs/13.mixture-models.pdf"} 307 | 2015-04-30: 308 | Label: Lab (Shanshan) 309 | Video: "http://techtalks.tv/talks/lab-31/61457/" 310 | Topics: 311 | SVD, PCA, Linear Discriminant Analysis: 312 | Slides and Notes: 313 | # - {PCA, SVD, and Fisher's LDA: "docs/13.Lab.PCA-SVD-LDA.pdf"} 314 | - {PCA-SVD-LDA: "docs/13.Lab.PCA-SVD-LDA.pdf"} 315 | 316 | - Title: Week 14 317 | Events: 318 | 2015-05-06: 319 | Label: Lecture 320 | Video: "http://techtalks.tv/talks/lecture-77/61460/" 321 | Topics: 322 | Information Theory: 323 | Slides and Notes: 324 | - {Information Theory: "docs/14a.information-theory.pdf"} 325 | EM Algorithm (General): 326 | Slides and Notes: 327 | - {EM Algorithm: "docs/14b.EM-algorithm.pdf"} 328 | 329 | 2015-05-07: 330 | Label: Project Adviser Meetings 331 | Topics: [] 332 | -------------------------------------------------------------------------------- /data/this-week.yml: -------------------------------------------------------------------------------- 1 | Lecture/Lab: Week 14 2 | Assignment: Homework 7 3 | -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e # exit with nonzero exit code if anything fails 3 | 4 | # Put stuff in the out directory 5 | npm run build 6 | 7 | # go to the out directory and create a *new* Git repo 8 | cd out 9 | git init 10 | 11 | # inside this git repo we'll pretend to be a new user 12 | git config user.name "Travis CI" 13 | git config user.email "d@domenic.me" 14 | 15 | # The first and only commit to this new Git repo contains all the 16 | # files present with the commit message "Deploy to GitHub Pages". 17 | git add . 18 | git commit -m "Deploy to GitHub Pages" 19 | 20 | # Force push from the current repo's master branch to the remote 21 | # repo's gh-pages branch. (All previous history on the gh-pages branch 22 | # will be lost, since we are overwriting it.) We redirect any output to 23 | # /dev/null to hide any sensitive credential data that might otherwise be exposed. 24 | git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages > /dev/null 2>&1 25 | -------------------------------------------------------------------------------- /docs/10.Lab.MidtermRecap.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/10.Lab.MidtermRecap.pdf -------------------------------------------------------------------------------- /docs/11.bayesian-networks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/11.bayesian-networks.pdf -------------------------------------------------------------------------------- /docs/12.Lab.bayesian-methods.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/12.Lab.bayesian-methods.pdf -------------------------------------------------------------------------------- /docs/12.bayesian-methods.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/12.bayesian-methods.pdf -------------------------------------------------------------------------------- /docs/13.Lab.PCA-SVD-LDA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/13.Lab.PCA-SVD-LDA.pdf -------------------------------------------------------------------------------- /docs/13.mixture-models.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/13.mixture-models.pdf -------------------------------------------------------------------------------- /docs/14a.information-theory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/14a.information-theory.pdf -------------------------------------------------------------------------------- /docs/14b.EM-algorithm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/14b.EM-algorithm.pdf -------------------------------------------------------------------------------- /docs/1a.course-logistics.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/1a.course-logistics.pdf -------------------------------------------------------------------------------- /docs/1b.intro-slt-riskdecomp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/1b.intro-slt-riskdecomp.pdf -------------------------------------------------------------------------------- /docs/1c.stoch-grad-descent.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/1c.stoch-grad-descent.pdf -------------------------------------------------------------------------------- /docs/2.Lab.subgradient-descent.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/2.Lab.subgradient-descent.pdf -------------------------------------------------------------------------------- /docs/2a.excess-risk-example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/2a.excess-risk-example.pdf -------------------------------------------------------------------------------- /docs/2b.L1L2-regularization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/2b.L1L2-regularization.pdf -------------------------------------------------------------------------------- /docs/3a.loss-functions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/3a.loss-functions.pdf -------------------------------------------------------------------------------- /docs/3b.convex-optimization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/3b.convex-optimization.pdf -------------------------------------------------------------------------------- /docs/3c.SVM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/3c.SVM.pdf -------------------------------------------------------------------------------- /docs/4.Lab.kernelizations.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/4.Lab.kernelizations.pdf -------------------------------------------------------------------------------- /docs/4a.kernels-highlevel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/4a.kernels-highlevel.pdf -------------------------------------------------------------------------------- /docs/4b.features.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/4b.features.pdf -------------------------------------------------------------------------------- /docs/4c.kernels.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/4c.kernels.pdf -------------------------------------------------------------------------------- /docs/5.Lab.misc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/5.Lab.misc.pdf -------------------------------------------------------------------------------- /docs/5a.trees.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/5a.trees.pdf -------------------------------------------------------------------------------- /docs/5b.bias-variance.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/5b.bias-variance.pdf -------------------------------------------------------------------------------- /docs/6a.bagging-random-forests.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/6a.bagging-random-forests.pdf -------------------------------------------------------------------------------- /docs/6b.boosting.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/6b.boosting.pdf -------------------------------------------------------------------------------- /docs/7a.gradient-boosting.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/7a.gradient-boosting.pdf -------------------------------------------------------------------------------- /docs/7b.neural-networks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/7b.neural-networks.pdf -------------------------------------------------------------------------------- /docs/8.Lab.glm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/8.Lab.glm.pdf -------------------------------------------------------------------------------- /docs/8a.citysense.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/8a.citysense.pdf -------------------------------------------------------------------------------- /docs/8b.conditional-probability-models.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/8b.conditional-probability-models.pdf -------------------------------------------------------------------------------- /docs/9.midterm-review.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/9.midterm-review.pdf -------------------------------------------------------------------------------- /docs/convex-optimization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/convex-optimization.pdf -------------------------------------------------------------------------------- /docs/matrix-differentiation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/matrix-differentiation.pdf -------------------------------------------------------------------------------- /docs/probability-distributions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/probability-distributions.pdf -------------------------------------------------------------------------------- /docs/projections-svm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/projections-svm.pdf -------------------------------------------------------------------------------- /docs/svm-notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/svm-notes.pdf -------------------------------------------------------------------------------- /docs/syllabusDS-GA1003-Spring2015.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/docs/syllabusDS-GA1003-Spring2015.pdf -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/favicon.ico -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const templater = require('./build/templater.js'); 3 | const fs = require('fs'); 4 | const gulp = require('gulp'); 5 | const gutil = require('gulp-util'); 6 | const gulpStylus = require('gulp-stylus'); 7 | 8 | const STYLUS = 'styles/*.styl'; 9 | const TEMPLATES = '**/*.hbs'; 10 | const MAIN_TEMPLATE = 'index.hbs'; 11 | const DATA = 'data/*.yml'; 12 | 13 | const OUTPUT_HTML = 'index.html'; 14 | const OUTPUT_STYLES = 'styles/'; 15 | 16 | gulp.task('template', () => { 17 | try { 18 | templater(MAIN_TEMPLATE, OUTPUT_HTML) 19 | } catch (e) { 20 | // Delete the index.html file to make it clear that the templating failed 21 | deleteIfExists(OUTPUT_HTML); 22 | 23 | gutil.log(gutil.colors.red(`Deleting ${OUTPUT_HTML} since templating failed`)); 24 | throw e; 25 | } 26 | }); 27 | 28 | gulp.task('stylus', () => 29 | gulp.src(STYLUS) 30 | .pipe(gulpStylus()) 31 | .pipe(gulp.dest(OUTPUT_STYLES)) 32 | ); 33 | 34 | gulp.task('build', ['template', 'stylus']); 35 | 36 | gulp.task('watch', ['template', 'stylus'], () => { 37 | gulp.watch([TEMPLATES, DATA], ['template']); 38 | gulp.watch(STYLUS, ['stylus']) 39 | }); 40 | 41 | function deleteIfExists(filename) { 42 | try { 43 | fs.unlinkSync(filename); 44 | } catch (e) { 45 | if (e.code !== 'ENOENT') { 46 | throw e; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /homework/hw1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw1.pdf -------------------------------------------------------------------------------- /homework/hw1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw1.zip -------------------------------------------------------------------------------- /homework/hw2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw2.pdf -------------------------------------------------------------------------------- /homework/hw2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw2.zip -------------------------------------------------------------------------------- /homework/hw3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw3.pdf -------------------------------------------------------------------------------- /homework/hw3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw3.zip -------------------------------------------------------------------------------- /homework/hw4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw4.pdf -------------------------------------------------------------------------------- /homework/hw4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw4.zip -------------------------------------------------------------------------------- /homework/hw5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw5.pdf -------------------------------------------------------------------------------- /homework/hw5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw5.zip -------------------------------------------------------------------------------- /homework/hw6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw6.pdf -------------------------------------------------------------------------------- /homework/hw6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw6.zip -------------------------------------------------------------------------------- /homework/hw7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw7.pdf -------------------------------------------------------------------------------- /homework/hw7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/homework/hw7.zip -------------------------------------------------------------------------------- /images/boyd-1x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/boyd-1x.jpg -------------------------------------------------------------------------------- /images/boyd-2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/boyd-2x.jpg -------------------------------------------------------------------------------- /images/boyd-original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/boyd-original.jpg -------------------------------------------------------------------------------- /images/hastie-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/hastie-1x.png -------------------------------------------------------------------------------- /images/hastie-2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/hastie-2x.jpg -------------------------------------------------------------------------------- /images/hastie-3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/hastie-3x.jpg -------------------------------------------------------------------------------- /images/hastie-original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/hastie-original.jpg -------------------------------------------------------------------------------- /images/james-1x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/james-1x.jpg -------------------------------------------------------------------------------- /images/james-2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/james-2x.jpg -------------------------------------------------------------------------------- /images/james-3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/james-3x.jpg -------------------------------------------------------------------------------- /images/james-original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/james-original.jpg -------------------------------------------------------------------------------- /images/murphy-1x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/murphy-1x.jpg -------------------------------------------------------------------------------- /images/murphy-2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/murphy-2x.jpg -------------------------------------------------------------------------------- /images/murphy-3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/murphy-3x.jpg -------------------------------------------------------------------------------- /images/murphy-original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/murphy-original.jpg -------------------------------------------------------------------------------- /images/people/brian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/brian.jpg -------------------------------------------------------------------------------- /images/people/david.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/david.jpg -------------------------------------------------------------------------------- /images/people/gideon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/gideon.jpg -------------------------------------------------------------------------------- /images/people/haoxu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/haoxu.jpg -------------------------------------------------------------------------------- /images/people/kurt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/kurt.jpg -------------------------------------------------------------------------------- /images/people/kush.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/kush.jpg -------------------------------------------------------------------------------- /images/people/prasoon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/prasoon.jpg -------------------------------------------------------------------------------- /images/people/ranbi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/ranbi.jpg -------------------------------------------------------------------------------- /images/people/shanshan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/shanshan.jpg -------------------------------------------------------------------------------- /images/people/vikas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/images/people/vikas.jpg -------------------------------------------------------------------------------- /index.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DS-GA 1003: Machine Learning and Computational Statistics, Spring 2015 5 | 6 | 7 | 8 | 9 | 10 | 11 | 20 | 21 |
22 |

23 | Machine Learning and Computational Statistics 24 | 25 | DS-GA 1003 · Spring 2015 · 26 | NYU Center for Data Science 27 | 28 |

29 | 30 | 31 | 32 | 35 | 36 | 39 | 40 | 43 | 44 | 47 | 48 | 50 |
Instructor 33 | David Rosenberg 34 |
Lecture 37 | Wednesdays 5:10pm–7pm, Warren Weaver Hall 109 38 |
Lab 41 | Thursday 6:10pm–7pm, Warren Weaver Hall 109 42 |
Office Hours 45 | Instructor: Thursday 7pm–8pm, Warren Weaver Hall 109 46 |
Graders: Monday 2pm–4pm / Tuesday 1pm–2pm, CDS common area 49 |
51 | 52 | {{> this-week thisWeek }} 53 |
54 |
55 |

About This Course

56 | 57 |
58 |

This course covers a wide variety of topics in machine learning and statistical modeling. While mathematical methods and theoretical aspects will be covered, the primary goal is to provide students with the tools and principles needed to solve both the traditional and the novel data science problems found in practice. This course will also serve as a foundation on which more specialized courses and further independent study can build.

59 | 60 |

This is a required course for the Center for Data Science's Masters degree in Data Science, and the course is designed for the students in this program. Other interested students who satisfy the prerequisites are welcome to take the class as well. Note that this class is a continuation of DS-GA-1001 Intro to Data Science, which covers some important, fundamental data science topics that may not be explicitly covered in this class (e.g. data cleaning, cross-validation, decision trees, and sampling bias).

61 | 62 |

Course details can be found in the syllabus.

63 | 64 |

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the Lab Instructor, graders, and the Instructor. Rather than emailing questions to the teaching staff, you are encouraged to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com. Without registering, you can also view an anonymized version of our Piazza board.

65 | 66 |

See the Course Calendar for all schedule information.

67 | 68 |

For registration information, please contact Varsha Tiger. 69 |

70 | 71 |
72 |

Prerequisites

73 |
    74 |
  • DS-GA-1001: Intro to Data Science or its equivalent 75 |
  • Solid mathematical background, equivalent to a 1-semester undergraduate course in each of the following: linear algebra, multivariate calculus (primarily differential calculus), probability theory, and statistics. 76 |
  • Python programming required for all homework assignments (not necessary for auditors) 77 |
  • Recommended: Computer science background up to a "data structures and algorithms" course 78 |
  • Recommended: At least one advanced, proof-based mathematics course 79 |
  • Some prerequisites may be waived with permission of the instructor. 80 |
81 |
82 |
83 |

Grading

84 |

Problem sets (60%) + Midterm exam (20%) + Project (20%)

85 |

86 | Up to (2%) extra credit can be earned by answering student questions on Piazza and for positive contributions to class and lab discussions; there will be additional extra credit opportunities in the homework assignments in the form of optional problems and competitions. 87 |

88 |

The course conforms to NYU’s policy on academic integrity for students.

89 |
90 |
91 | 92 |
93 |

Resources

94 | 95 |
96 |

Textbooks

97 | 98 | The cover of Machine Learning: a Probabilistic Perspective 99 | The cover of Elements of Statistical Learning 100 | The cover of Convex Optimization 101 | The cover of An Introduction to Statistical Learning 102 | 103 |
104 |
Machine Learning: A Probabilistic Perspective (Kevin P. Murphy) 105 |
This will be the required textbook for the class. It was chosen for several reasons: First, it covers an unusually broad set of topics, and it will serve you well as a reference for many topics beyond the scope of this course. Second, it is has a surprisingly extensive coverage of recent advances in the field, incorporating material that would otherwise only be available in research papers. Finally, if you're a Matlab coder, there is extensive software support. 106 | 107 |
The 108 | Elements of Statistical Learning (Hastie, Friedman, and Tibshirani) 109 |
This book is available as a free PDF, and it will 110 | serve as a nice complement to Murphy's book. Despite its popularity and the pretty pictures, this is not an easy book. It's written by three statisticians who invented many of the techniques discussed. 111 | 112 |
Convex Optimization (Boyd and Vandenberghe) 113 |
This book (also available as a free PDF) was an instant hit in the machine learning community when it was published in 2004. Most of the optimization problems that we know how to solve are convex problems. We will be making light use of this book, mostly for its coverage of Lagrangians and duality. However, it's a good book to get familiar with, as it's very well written and it covers a lot of techniques used in more advanced machine learning literature. 114 | 115 |
An Introduction to Statistical Learning (James, Witten, Hastie, and Tibshirani) 116 |
This book (also available as a free PDF), is written 117 | by two of the same authors as The Elements of Statistical Learning. It's much less intense mathematically, and it's good for a lighter introduction to the topics. 118 |
119 |
120 | 121 |
122 |

Other tutorials and references

123 | 124 |

(If you find additional references that you recommend, please share them on Piazza and we can add them here.) 125 | 126 |

133 |
134 | 135 |
136 |

Software

137 | 138 |
    139 |
  • CVXPY and CVXOPT are for solving convex optimization problems in Python. 140 |
  • Theano has symbolic differentiation and facilitates GPU usage. It's a favorite for some neural networks folks. 141 |
  • NumPy is "the fundamental package for scientific computing with Python." Our homework assignments will use NumPy arrays extensively. 142 |
143 |
144 |
145 | 146 |
147 |

Lectures

148 | 149 | 154 | 155 | {{> lectures lectures }} 156 |
157 |
158 |

Assignments

159 | 160 |
161 |

Homework Submission: Homework should be submitted through NYU Classes. 162 | 163 |

Late Policy: Homeworks are due at {{assignmentsFrontmatter.[Due time]}} on the date specified. Homeworks will still be accepted for 48 hours after this time but will have a 20% penalty. 164 | 165 |

Collaboration Policy: You may discuss problems with your classmates. However, you must write up the homework solutions and the code from scratch, without referring to notes from your joint session. In your solution to each problem, you must write down the names of any person with whom you discussed the problem—this will not affect your grade. 166 |

167 | 168 | {{> assignments assignments }} 169 |
170 | 171 | 176 | 177 |
178 |

People

179 | 180 |
181 |

Instructor

182 | 183 |
184 | A photo of David Rosenberg 185 |
186 |

David Rosenberg 187 |

David is Chief Scientist of YP Mobile Labs at YP. 189 |

190 |
191 |
192 | 193 |
194 |

Lab Instructor (Mathematical Foundations)

195 | 196 |
197 | A photo of Shanshan Ding 198 |
199 |

Shanshan 200 | Ding 201 |

Shanshan is a research data scientist 202 | in 203 | the YP 204 | Mobile Labs group at YP. 205 |

206 |
207 |
208 | 209 | 210 |
211 |

Graders

212 | 213 |
    214 |
  • 215 | A photo of Hao Xu 216 |
    217 |

    Hao Xu 218 |

    Hao is a second year student in CDS Data Science Masters program. In the fall he will begin as a data scientist at AIG. 220 |

    221 |
  • 222 | A photo of Ran Bi 223 |
    224 |

    Ran Bi 225 |

    Ran is currently a second year student in the Data Science program at NYU. She will begin working on the AIG science team in Summer 2015. 227 |

    228 |
  • 229 | A photo of Prasoon Goyal 230 |
    231 |

    Prasoon Goyal 232 |

    Prasoon is currently a Masters student in Computer Science at NYU. 234 |

    235 |
236 |
237 | 238 |
239 |

Project Advisers

240 | 241 |
    242 |
  • 243 | A photo of Gideon Mann 244 |
    245 |

    Gideon Mann 246 |

    Gideon is currently the Head of Data Science in the CTO office at Bloomberg LP. 247 |

    248 |
  • 249 | A photo of Kurt Miller 250 |
    251 |

    Kurt Miller 252 |

    Kurt is a researcher at the quantitative hedge fund PDT Partners. 253 |

    254 |
  • 255 | A photo of Kush R. Varshney 256 |
    257 |

    Kush R. Varshney 258 |

    Kush is a research staff member at IBM Research and a data ambassador with DataKind. 259 |

    260 |
261 |
    262 |
  • 263 | A photo of Brian Dalessandro 264 |
    265 |

    Brian d'Alessandro 266 |

    Brian is VP of Data Science at Dstillery and Adjunct Professor of Data Science at NYU Stern School of Business. 267 |

    268 |
269 |
270 |
271 | 272 | 275 | 276 | 277 | 278 | 288 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dsga1003", 3 | "private": true, 4 | "scripts": { 5 | "stylus": "stylus styles/", 6 | "watch": "gulp watch", 7 | "build-in-place": "gulp build", 8 | "build": "bash ./build.sh" 9 | }, 10 | "devDependencies": { 11 | "gulp": "^3.8.10", 12 | "gulp-stylus": "^2.0.0", 13 | "gulp-util": "^3.0.3", 14 | "handlebars": "^2.0.0", 15 | "js-yaml": "^3.2.5", 16 | "moment": "^2.9.0", 17 | "stylus": "0.49.3", 18 | "to-slug": "0.0.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /refs/PegasosMPB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/PegasosMPB.pdf -------------------------------------------------------------------------------- /refs/barnes-MatrixDifferentiation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/barnes-MatrixDifferentiation.pdf -------------------------------------------------------------------------------- /refs/bottou-sgd-tricks-2012.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/bottou-sgd-tricks-2012.pdf -------------------------------------------------------------------------------- /refs/boyd-slides/functions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/boyd-slides/functions.pdf -------------------------------------------------------------------------------- /refs/boyd-slides/sets.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/boyd-slides/sets.pdf -------------------------------------------------------------------------------- /refs/bv_cvxbook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/bv_cvxbook.pdf -------------------------------------------------------------------------------- /refs/bv_subgradients_notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/bv_subgradients_notes.pdf -------------------------------------------------------------------------------- /refs/coordinate-descent.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/coordinate-descent.pdf -------------------------------------------------------------------------------- /refs/felippa-MatrixCalculus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/felippa-MatrixCalculus.pdf -------------------------------------------------------------------------------- /refs/lasso-original.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/lasso-original.pdf -------------------------------------------------------------------------------- /refs/matrixCookbook-15Nov2012.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/matrixCookbook-15Nov2012.pdf -------------------------------------------------------------------------------- /refs/pml-intro-22may12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/pml-intro-22may12.pdf -------------------------------------------------------------------------------- /refs/shalev-shwartz11a-SCD-L1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/shalev-shwartz11a-SCD-L1.pdf -------------------------------------------------------------------------------- /refs/stanfordCS229-linalg.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davidrosenberg/ml2015/2dc265befd4719532cb98b67312de77eb8df2444/refs/stanfordCS229-linalg.pdf -------------------------------------------------------------------------------- /scripts/navigation.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | var nav = document.querySelector('body > nav'); 4 | var sections = Array.prototype.slice.call(document.querySelectorAll('body > section')); 5 | 6 | window.addEventListener('hashchange', setSelectedLink); 7 | window.addEventListener('scroll', setHashFromScroll); 8 | 9 | if (!window.location.hash) { 10 | setHashFromScroll(); 11 | } 12 | setSelectedLink(); 13 | 14 | function setSelectedLink() { 15 | var selected = nav.querySelector('a.selected'); 16 | if (selected) { 17 | selected.classList.remove('selected'); 18 | } 19 | 20 | nav.querySelector('a[href="' + window.location.hash + '"]').classList.add('selected'); 21 | } 22 | 23 | function setHashFromScroll() { 24 | var bodyScrollTop = document.body.scrollTop || document.documentElement.scrollTop; 25 | var minDifference = +Infinity; 26 | var minSectionId; 27 | 28 | sections.forEach(function (section) { 29 | var difference = Math.abs(section.offsetTop - bodyScrollTop); 30 | if (difference < minDifference) { 31 | minDifference = difference; 32 | minSectionId = section.id; 33 | } 34 | }); 35 | 36 | // Don't want to scroll to the section directly since we are already inside a user scroll handler. 37 | history.replaceState({}, '', '#' + minSectionId); 38 | setSelectedLink(); 39 | } 40 | }()); 41 | -------------------------------------------------------------------------------- /styles/colors.styl: -------------------------------------------------------------------------------- 1 | accent = #5082e5 2 | accent-hover = lighten(accent, 30%) 3 | gray = #D9D9D9 4 | body-color = #444444 5 | bg-gray = #f8f7f8 6 | -------------------------------------------------------------------------------- /styles/phone.styl: -------------------------------------------------------------------------------- 1 | @import "colors" 2 | 3 | nav-height = 60px 4 | 5 | body 6 | padding = 10px 7 | padding: padding 8 | padding-bottom: padding + nav-height 9 | 10 | body > nav 11 | width: 100% 12 | height: nav-height 13 | top: initial 14 | bottom: 0 15 | display: -webkit-flex 16 | display: flex 17 | 18 | > a 19 | width: auto 20 | -webkit-flex: 0 0 16.6666666666666% 21 | flex: 0 0 16.6666666666666% 22 | border-bottom: none 23 | border-right: 1px solid accent-hover 24 | touch-action: manipulation 25 | 26 | &:hover 27 | width: auto 28 | 29 | #this-week 30 | display: inline-block 31 | width: initial 32 | 33 | > h1 34 | text-align: center 35 | 36 | .week-summary 37 | display: inline-block 38 | 39 | section 40 | display: block 41 | padding-right: 30px 42 | margin-bottom: 20px 43 | min-width: initial 44 | max-width: initial 45 | 46 | &:last-child 47 | margin-bottom: 0 48 | 49 | #home 50 | padding-top: 20px 51 | 52 | > h1 53 | text-align: center 54 | margin-bottom: 40px 55 | 56 | > span 57 | &, .department 58 | margin-top: 10px 59 | font-size: 12px 60 | .department 61 | margin-top: 5px 62 | display: block 63 | 64 | p 65 | label-width = 145px 66 | span 67 | display: inline-block 68 | width: "calc(100% - %s)" % label-width 69 | 70 | strong 71 | width: label-width 72 | 73 | #textbooks 74 | img 75 | max-width: 22% 76 | width: auto 77 | height: auto 78 | margin-right: 5px 79 | 80 | #lectures > section 81 | > h1 82 | font-size: 24px 83 | 84 | .date 85 | display: inline-block 86 | 87 | .topics, .references 88 | padding-right: 0 89 | 90 | > section 91 | display: block 92 | 93 | &:not(:last-child) 94 | margin-bottom: 20px 95 | border-bottom: 2px solid gray 96 | 97 | > div 98 | display: block 99 | margin-bottom: 25px 100 | padding-top: 0 101 | 102 | &:first-of-type 103 | padding-left: 0 104 | margin-bottom: 15px 105 | 106 | h1 107 | margin-bottom: 0 108 | font-size: 18px 109 | 110 | .references, .slides 111 | h1 112 | padding-left: 20px 113 | 114 | .icon 115 | &.references, &.slides 116 | &::before 117 | top: 0 118 | left: 0 119 | 120 | margin-top: -6px 121 | 122 | font-size: 14px 123 | 124 | #assignments .homework 125 | strong 126 | display: inline-block 127 | 128 | .deadline, .files 129 | width: auto 130 | 131 | .module > * 132 | display: block 133 | padding-bottom: 10px 134 | 135 | .files > * 136 | margin-right: 10px 137 | -------------------------------------------------------------------------------- /styles/style.styl: -------------------------------------------------------------------------------- 1 | @import "colors" 2 | 3 | nav-width = 60px 4 | body-padding = 40px 5 | body-left = nav-width + body-padding 6 | 7 | font-largest = 8 | font-size: 46px 9 | 10 | @media(max-width: 420px) 11 | font-size: 24px 12 | 13 | font-large = 14 | font-size: 36px 15 | 16 | @media(max-width: 420px) 17 | font-size: 20px 18 | 19 | font-medium = 20 | font-size: 20px 21 | 22 | @media(max-width: 420px) 23 | font-size: 16px 24 | 25 | font-small = 26 | font-size: 16px 27 | 28 | @media(max-width: 420px) 29 | font-size: 14px 30 | 31 | font-smallest = 32 | font-size: 14px 33 | 34 | @font-face 35 | font-family: "Glyphicons Halflings" 36 | src: url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), 37 | url("../fonts/glyphicons-halflings-regular.woff") format("woff") 38 | 39 | icon-home = 40 | content: "\e021" 41 | icon-info-sign = 42 | content: "\e086" 43 | icon-calendar = 44 | content: "\e109" 45 | icon-list = 46 | content: "\e012" 47 | icon-star = 48 | content: "\e006" 49 | icon-user = 50 | content: "\e008" 51 | icon-book = 52 | content: "\e043" 53 | icon-pencil = 54 | content: "\270f" 55 | icon-envelope = 56 | content: "\2709" 57 | icon-new-window = 58 | content: "\e164" 59 | icon-save = 60 | content: "\e166" 61 | icon-video = 62 | content: "\e059" 63 | 64 | 65 | *, *::before, *::after 66 | margin: 0 67 | padding: 0 68 | box-sizing: border-box 69 | 70 | body 71 | padding: body-padding 72 | padding-left: body-left 73 | padding-top: 0 74 | line-height: 1.6em 75 | 76 | color: body-color 77 | font-family: Helvetica, Arial, sans-serif 78 | 79 | background-color: bg-gray 80 | 81 | a 82 | text-decoration: none 83 | color: accent 84 | 85 | &:hover 86 | color: accent-hover 87 | 88 | h1 89 | text-transform: uppercase 90 | line-height: normal 91 | 92 | p 93 | margin: 16px 0 94 | 95 | {font-small} 96 | line-height: 1.6em 97 | 98 | &:first-child 99 | margin-top: 0 100 | 101 | &:last-child 102 | margin-bottom: 0 103 | 104 | .module 105 | background: white 106 | border-radius: 8px 107 | padding: 20px 108 | box-shadow: 0 0 5px rgba(0,0,0,0.12) 109 | 110 | .icon 111 | &::before 112 | font-family: "Glyphicons Halflings" 113 | opacity: 0.4 114 | margin-right: 10px 115 | vertical-align: middle 116 | color: accent 117 | 118 | &.pdf::before 119 | {icon-new-window} 120 | 121 | &.zip::before 122 | {icon-save} 123 | 124 | body > nav 125 | position: fixed 126 | top: 0 127 | left: 0 128 | z-index: 2 129 | 130 | width: nav-width 131 | height: 100% 132 | 133 | background-color: accent 134 | box-shadow: 0 0 10px rgba(0,0,0,0.3) 135 | 136 | > a 137 | position: relative 138 | 139 | display: block 140 | width: 60px 141 | height: nav-width 142 | padding: 10px 10px 10px 10px 143 | box-sizing: border-box 144 | border-bottom: 1px solid accent-hover 145 | 146 | {font-smallest} 147 | font-weight: bold 148 | letter-spacing: .03em 149 | text-transform: uppercase 150 | text-align: left 151 | color: white 152 | white-space: nowrap 153 | line-height: 42px 154 | 155 | background-color: accent 156 | overflow: hidden 157 | transition: width ease .2s, color ease .2s, background-color ease .2s 158 | 159 | &:hover 160 | width: 200px 161 | box-shadow: 0 0 5px rgba(0,0,0,0.3) 162 | 163 | color: white 164 | 165 | &.selected 166 | border-bottom: none 167 | 168 | color: accent 169 | 170 | background: white 171 | 172 | &::before 173 | float: left 174 | 175 | display: inline-block 176 | width: nav-width 177 | height: nav-width 178 | margin: -10px 15px 0 -10px 179 | 180 | {font-medium} 181 | font-family: "Glyphicons Halflings" 182 | font-style: normal 183 | font-weight: normal 184 | letter-spacing: normal 185 | line-height: 60px 186 | text-align: center 187 | vertical-align: middle 188 | -webkit-font-smoothing: antialiased 189 | -moz-osx-font-smoothing: grayscale 190 | 191 | &[href="#home"]::before 192 | {icon-home} 193 | &[href="#about"]::before 194 | {icon-info-sign} 195 | &[href="#resources"]::before 196 | {icon-book} 197 | &[href="#lectures"]::before 198 | {icon-calendar} 199 | &[href="#assignments"]::before 200 | {icon-list} 201 | &[href="#project"]::before 202 | {icon-star} 203 | &[href="#people"]::before 204 | {icon-user} 205 | 206 | body > section 207 | border-bottom: 1px solid gray 208 | padding-bottom: 70px 209 | padding-top: 20px 210 | 211 | > h1 212 | margin-bottom: 40px 213 | 214 | {font-large} 215 | 216 | > section:not(:last-of-type) 217 | margin-bottom: 30px 218 | 219 | > section > h1 220 | margin-bottom: 10px 221 | 222 | {font-medium} 223 | 224 | #home 225 | text-align: center 226 | padding-top: body-padding 227 | 228 | > h1 229 | {font-largest} 230 | text-align: left 231 | 232 | margin-bottom: 50px 233 | 234 | > span 235 | display: block 236 | margin-top: 5px 237 | 238 | {font-medium} 239 | 240 | .department 241 | {font-small} 242 | vertical-align: middle 243 | 244 | #course-info 245 | margin: 10px auto 246 | text-align: left 247 | 248 | th 249 | font-weight: bold 250 | min-width: 170px 251 | vertical-align: top 252 | 253 | {font-medium} 254 | color: accent 255 | text-transform: uppercase 256 | 257 | opacity: 0.6 258 | 259 | tr:last-of-type 260 | line-height: 1 261 | 262 | .email::before 263 | {icon-envelope} 264 | margin-left: 5px 265 | 266 | #this-week 267 | margin: 30px auto 0 auto 268 | 269 | width: 1220px 270 | @media screen and (max-width: 1340px) 271 | width: 670px 272 | 273 | text-align: left 274 | 275 | li, p 276 | line-height: 1.1 277 | 278 | li 279 | margin-bottom: 10px 280 | 281 | > h1 282 | {font-large} 283 | opacity: 0.6 284 | 285 | .week-summary 286 | display: -webkit-flex 287 | display: flex 288 | -webkit-flex-wrap: wrap 289 | flex-wrap: wrap 290 | -webkit-justify-content: center 291 | justify-content: center 292 | 293 | padding: 25px 294 | border: 2px solid accent 295 | border-radius: 8px 296 | 297 | {font-small} 298 | 299 | background-color: white 300 | box-shadow: 0 0 5px rgba(0,0,0,0.12) 301 | 302 | h1 303 | font-weight: bold 304 | text-transform: uppercase 305 | padding-bottom: 10px 306 | 307 | ul 308 | list-style-type: none 309 | 310 | section 311 | width: 250px 312 | margin: 5px 20px 313 | 314 | vertical-align: top 315 | 316 | &.assignment 317 | > p 318 | margin-top: 0 319 | 320 | .files 321 | display: -webkit-flex 322 | display: flex 323 | -webkit-justify-content: space-between 324 | justify-content: space-between 325 | -webkit-flex-wrap: wrap 326 | flex-wrap: wrap 327 | 328 | &.slides-and-notes 329 | ul:empty::after 330 | content: "(None yet)" 331 | 332 | #about 333 | .module 334 | margin-bottom: 30px 335 | 336 | ul 337 | margin-left: 20px 338 | 339 | #textbooks 340 | img 341 | height: 200px 342 | margin: 0 10px 10px 0 343 | 344 | dd 345 | margin-bottom: 10px 346 | 347 | cite 348 | font-weight: bold 349 | 350 | #references 351 | ul 352 | margin-top: 10px 353 | 354 | #lectures 355 | > .abbreviations 356 | margin-bottom: 20px 357 | list-style-type: none 358 | 359 | #lectures > section 360 | display: table 361 | width: 100% 362 | margin-bottom: 20px 363 | {font-smallest} 364 | 365 | .label 366 | width: 20% 367 | .references 368 | width: 25% 369 | .slides 370 | width: 20% 371 | 372 | li 373 | line-height: normal 374 | margin-bottom: 10px 375 | 376 | h1 377 | margin-bottom: 15px 378 | 379 | .date, .video 380 | display: block 381 | margin-top: 5px 382 | 383 | .date 384 | color: accent 385 | font-size: 0.9em 386 | opacity: 0.6 387 | 388 | .video 389 | font-size: 0.85em 390 | 391 | &::after 392 | font-family: "Glyphicons Halflings" 393 | margin-left: 5px 394 | vertical-align: top 395 | {icon-video} 396 | 397 | ul 398 | list-style-type: none 399 | 400 | .topics, .references 401 | padding-right: 60px 402 | 403 | .references > ul:empty::after 404 | content: "(None)" 405 | 406 | .icon 407 | &.references, &.slides 408 | &::before 409 | position: absolute 410 | left: -42px 411 | top: 20px 412 | 413 | font-size: 30px 414 | 415 | &.references::before 416 | {icon-book} 417 | 418 | &.slides::before 419 | {icon-pencil} 420 | 421 | &.video::before 422 | {icon-video} 423 | 424 | > section 425 | display: table-row 426 | 427 | &:first-of-type > div 428 | padding-top: 0 429 | 430 | &.icon::before 431 | top: 0 432 | 433 | > div 434 | position: relative 435 | 436 | display: table-cell 437 | padding-right: 20px 438 | padding-top: 20px 439 | 440 | vertical-align: top 441 | 442 | &:first-of-type 443 | padding-left: 20px 444 | 445 | > h1 446 | margin-bottom: 10px 447 | 448 | #assignments 449 | .policies 450 | margin-bottom: 30px 451 | 452 | .homework 453 | margin-bottom: 20px 454 | 455 | strong 456 | text-transform: uppercase 457 | display: block 458 | 459 | .module 460 | display: inline-block 461 | vertical-align: middle 462 | max-width: 600px 463 | width: 100% 464 | 465 | > * 466 | display: table-cell 467 | padding-right: 40px 468 | 469 | &:last-of-type 470 | padding-right: 0 471 | 472 | .title 473 | width: 250px 474 | 475 | > h1 476 | line-height: 1.6em 477 | white-space: nowrap 478 | 479 | > p 480 | margin-top: 0 481 | 482 | .deadline 483 | width: 250px 484 | 485 | .files 486 | width: 100px 487 | 488 | .submit, .solutions 489 | display: inline-block 490 | vertical-align: middle 491 | margin-top: 5px 492 | margin-left: 30px 493 | 494 | .submit 495 | text-align: center 496 | 497 | .icon 498 | margin-bottom: 5px 499 | 500 | &::before 501 | {icon-envelope} 502 | font-size: 32px 503 | margin-right: 0 504 | 505 | a:hover 506 | color: accent 507 | 508 | .icon::before 509 | opacity: 1 510 | 511 | #people 512 | > section:not(:last-of-type) 513 | margin-bottom: 50px 514 | 515 | > section.multiple-people 516 | margin-bottom: 30px 517 | 518 | ul 519 | display: -webkit-flex 520 | display: flex 521 | 522 | -webkit-flex-flow: row nowrap 523 | flex-flow: row nowrap 524 | 525 | @media screen and (max-width: 1250px) 526 | -webkit-flex-wrap: wrap 527 | flex-wrap: wrap 528 | 529 | @media screen and (max-width: 900px) 530 | display: block 531 | 532 | .person 533 | margin-right: 0 534 | 535 | ul 536 | list-style-type: none 537 | 538 | .person 539 | display: -webkit-flex 540 | display: flex 541 | 542 | margin-right: 20px 543 | margin-bottom: 20px 544 | 545 | -webkit-flex: 0 1 33% 546 | flex: 0 1 33% 547 | 548 | @media screen and (max-width: 1250px) 549 | -webkit-flex-basis: 45% 550 | flex-basis: 45% 551 | 552 | &:last-child 553 | margin-right: 0 554 | 555 | &.instructor 556 | width: 560px 557 | 558 | > img 559 | width: 150px 560 | height: 150px 561 | margin-right: 20px 562 | border-radius: 8px 563 | 564 | -webkit-flex: 0 0 auto 565 | flex: 0 0 auto 566 | 567 | > .info 568 | > p 569 | margin: 0 5px 570 | 571 | &.name 572 | font-weight: bold 573 | 574 | &.email 575 | overflow: hidden 576 | text-overflow: ellipsis 577 | 578 | &.bio 579 | margin-top: 10px 580 | 581 | {font-smallest} 582 | -------------------------------------------------------------------------------- /styles/tablet-and-phone.styl: -------------------------------------------------------------------------------- 1 | body > section 2 | padding-bottom: 50px 3 | 4 | > h1 5 | margin-bottom: 30px 6 | 7 | body > nav > a:hover 8 | width: auto 9 | 10 | #lectures > section 11 | .label, .references, .slides 12 | width: auto 13 | 14 | #assignments 15 | .solutions, .submit 16 | margin-top: 10px 17 | 18 | strong 19 | display: inline-block 20 | margin-right: 5px 21 | 22 | .submit 23 | text-align: left 24 | .icon 25 | display: inline-block 26 | &::before 27 | font-size: 16px 28 | 29 | #people 30 | .person.instructor 31 | width: auto 32 | 33 | #this-week 34 | width: 600px 35 | 36 | section 37 | width: 220px 38 | -------------------------------------------------------------------------------- /templates/_assignment-details.hbs: -------------------------------------------------------------------------------- 1 |

Due: {{date Due}}, {{@root.assignmentsFrontmatter.[Due time]}}

2 |
3 | {{#each PDF}} 4 | {{@key}} 5 | {{/each}} 6 | {{#each ZIP}} 7 | {{@key}} 8 | {{/each}} 9 |
10 | -------------------------------------------------------------------------------- /templates/_references.hbs: -------------------------------------------------------------------------------- 1 | {{!-- Squashing the Handlebars against the is important so that :empty works --}} 2 | 6 | -------------------------------------------------------------------------------- /templates/assignments.hbs: -------------------------------------------------------------------------------- 1 | {{#each this}} 2 |
3 |
4 |
5 |

{{Label}}

6 |

{{{Description}}}

7 |
8 | {{> _assignment-details }} 9 |
10 | {{#if Submittable}} 11 | 17 | {{/if}} 18 | {{#each Solutions}} 19 |
20 | Solutions: 21 | {{@key}} 22 |
23 | {{/each}} 24 |
25 | {{/each}} 26 | -------------------------------------------------------------------------------- /templates/lectures.hbs: -------------------------------------------------------------------------------- 1 | {{#each this}} 2 |
3 |

{{Title}}

4 | 5 | {{#each Events}} 6 |
7 |
8 |

9 | {{Label}} 10 | {{shortDate @key}} 11 | {{#if Video}} 12 | Video 13 | {{/if}} 14 |

15 |
16 |
17 |
    18 | {{#each Topics}} 19 |
  • {{@key}}
  • 20 | {{/each}} 21 |
22 |
23 |
24 |

References

25 | 26 | {{> _references }} 27 |
28 |
29 |

Slides and Notes

30 |
    {{#each [Slides and Notes]}}
  • {{maybeLink this}}
  • {{/each}}
31 |
32 |
33 | {{/each}} 34 |
35 | {{/each}} 36 | -------------------------------------------------------------------------------- /templates/this-week.hbs: -------------------------------------------------------------------------------- 1 |
2 |

This week

3 | 4 |
5 | {{#with lecture}} 6 |
7 |

Topics

8 |
    9 | {{#each Events}} 10 | {{#each Topics}} 11 |
  • {{@key}}
  • 12 | {{/each}} 13 | {{/each}} 14 |
15 |
16 |
17 |

References

18 | 19 | {{#each Events}}{{> _references }}{{/each}} 20 |
21 | {{/with}} 22 | {{#with lecture}} 23 |
24 |

Slides and Notes

25 |
    {{#each Events}}{{#each [Slides and Notes]}}
  • {{maybeLink this}}
  • {{/each}}{{/each}}
26 |
27 | {{/with}} 28 | {{#with assignment }} 29 |
30 |

{{Label}}

31 |

{{{Description}}}

32 | 33 | {{> _assignment-details }} 34 |
35 | {{/with}} 36 |
37 |
38 | --------------------------------------------------------------------------------