NUCS-349-Fall21.github.io

NUCS 349 - Prequisities

In the course description, we have listed several prerequisites such as

  1. COMP_SCI 214 OR COMP_SCI 325 and OR Graduate Standing in Computer Science or Computer Engineering and equivalent programming experience.
  2. GEN_ENG 205 OR equivalent experience in Linear Algebra

We understand it may have been a while since those courses were taken. For this reason, we provide a list of materials to help refresh your memory.

Python Programming

Introduction to Python

  1. Nice Documentation that shows you the essentials
  2. Interactive python tutorial in browser

Introduction to Numpy and Vector Math

Numpy will be a core package that you use in NUCS349. We will implement most of our algorithms using numpy functionality only.

  1. Linear Algebra in NumPy

Vectorizing For-Loops with Numpy

Many of the algorithms implemented in this course will run slowly if implemented using only “for-loops.” I understand that coming from a Java/C++ background, avoiding for-loops might be a bit counter-intuitive. Still, it’s an essential part of data-science prototyping with Python (and even more critical in Matlab). I recommend you to use Matrix algebra WHENEVER possible because it speeds up your code tremendously! Please find some resources here:

  1. numpy array programming
  2. Turn your loops into numpy vectors

Trees and Graphs (Important for decision trees)

To understand decision trees you need to understand what trees or graphs are. You don’t have to learn those concepts by heart, but just reading through them really helps:

  1. A gentle intro to graph theory
  2. Applying graph theory in Python
  3. Tree traversal
  4. Everything you need to know about tree data structures

Linear Algebra

Linear Algebra is essential for understanding Machine Learning algorithms, and without understanding Linear Algebra, you will have a tough time in this course. Please read through the following resources to get a refresher on Linear Algebra if you feel you need it:

  1. Andrew Ng’s linear algebra review video
  2. A great book chapter on Linear Algebra from the famous “Deep Learning Book”. The first chapters until 2.5 are prerequisites for this course.
  3. This is a beautiful lecture on Linear Algebra (quite lengthy)
  4. A short video series on Linear Algebra, aimed at ML applications
  5. Jeremy Watt’s explanations of Vector and Vector Operations, Matrix and Matrix Operations, Eigenvalues and Eigenvectors, and Vector norms

Statistics

Watching the following videos (about 90 min in total) on probability will help:

  1. Introduction to Probability, Basic Overview - Sample Space, & Tree Diagrams
  2. Probability - Independent and Dependent Events
  3. Conditional Probability With Venn Diagrams & Contingency Tables
  4. Bayes’ Theorem of Probability With Tree Diagrams & Venn Diagrams
  5. Compound Probability of Independent Events - Coins & 52 Playing Cards
  6. Multiplication & Addition Rule - Probability - Mutually Exclusive & Independent Events