IFT6758: Data Science -- Prerequesite page

IMPORTANT: Please do not register for this class unless you have read and carefully considered all the class requirements listed in the following two sections.

Requirements and prerequisites

Data Science is a very exciting discipline, but requires building upon some important skills. Before we begin, you should possess good knowlegde of:

  1. Python programming is mandatory. You cannot use a different programming language in the class.
  2. Version system (e.g. git)
  3. Basic knowledge about the web
  4. Basic knowledge of Linear algebra, Probability and Statistics

The pace is meant to be intensive and the homework and exam requirements are going to be challenging. As a result, if you have good level of comfort working with programming languages (Python), databases, command lines and software projects, you should work on these skills first. This class will go fast on the basic required programming, and you will need them to pass the class.

Preparing to take the class

“It sounds scary so far!”

The above stats are meant to give you a clear idea of what to expect rather than to scare you. The good news is that, if you are determined, you can do it! Depending on your level this might require taking other classes first, or working to refresh your existing knowledge. This section will give you advice and resources to improve your background before taking the class.

Ideally, you have already taken undergraduate level classes in: probability, linear algebra and programming. It is hard to make up for those by yourself. Consider taking those classes at your university before you register for IFT6758. Even if you have taken such classes, you might need to work to improve those skills, especially if you took them many years ago, or if you didn’t perform well in those classes.

Q: How do I make sure that I have the programming prerequisites before I take IFT6758?

A: Consider IFT6390’s lab midterm exam from 2019. The exam consists of 10 Python questions. In each question, you are given a description of the functionality of a Python fuction, along with its header. You goal is to implement the body of each function according to the instructions. IFT6390 students who took the exam had full access to internet resources during the exam, but only one hour to finish it. In the end, their solutions were graded by our system for correctness. In each question, the student got the associated points if their implementation passed all of our unit tests. If their implementation of the function returned the wrong answer in at least one of the tests, they got 0 points in that question. Since the goal was to assess effective programming, there was no partial credit for ``semi-correct’’ implementations.

Try taking the exam at home in one hour. Don’t worry if you cannot solve all questions in the alotted time. It is very hard. However, you should be able to correctly implement at least a third of the functions in that time. This means that your code should run, and when you call the function with an arbitrary input it should always give the correct answer.

  • If you are not able to solve at least a third of the questions in the alotted time, you need some serious Python practice before IFT6758 starts. Otherwise, you will struggle in the class.