Note that there separate sets of assignments for CS 451/651 and CS 431/631. Make sure you work on the correct asssignments!

CS 431/631 Assignments

Assignment 0: Warmup due 4:00 pm Jan. 24

This assignment is a warmup exercise to get you familar with some of the basic tools you will need for the remaining assignments. In particular, we will be making use of Python (for programming) and Jupyter notebooks.

The general setup is as follows: for each assignment, you will be provided with a "starter" notebook, which will describe what needs to be done for that assignment. You'll complete the assignment in the notebook, and then submit your notebook to a private Git repository. Shortly after the assignment deadline, we'll pull your repo for marking.

You already have an account on GitLab accessible at git.uwaterloo.ca hosted by the Univeristy of Waterloo. You should be able to log in using your userid and WatIAM password. Create a private repo called bigdata2024w. If you are not familiar with GitLab, there are many resources online that you can use to learn basics of Git.

Python and Jupyter

All of the programming required for the assignments will be in Python. If you have never programmed in Python before, you will need to gradually bring yourself up to speed. There are many on-line resources that can help with this. A good place to start is python.org. In particular, you can start with their Python Tutorial. If you don't like that particular tutorial, there are many others to choose from. There are also many Python books to choose from, if you prefer to learn that way. Choose a book that fits your needs. For example, some books target people who are migrating to Python from other languages, while others are directed at novice programmers.

Most Python tutorials expect you to try out examples as you go along, i.e., they expect you to write and run Python code. This kind of active learing is definitely the way to go. The simplest way for you to run Python code is by using a Jupyter notebook running on Google Colab (see below). This will allow you to run Python in a web browser, without having to install any software on your machine. If you wish, you can also install Python locally on your own machine. Python is freely available for a variety of platforms. Bear in mind that all assignments for CS431/631 will be done using notebooks, so it is not a bad idea to get used to them.

Jupyter Notebooks

For this course, you will be writing and running Python code in Jupyter notebooks. Each notebook consists of a sequence of cells. An cell can hold (formatted) text, Python code, or graphics. A great thing about notebooks is that you can open and run them in a web browser. This means that you can work on your own machine, using only a web browser, without having to install any additional software.

A Jupyter "hub" is a place to store and use Jupyter notebooks. For the CS431/631 assignments, you'll be using a hub operated by Google. To get started, go to Google Colab. Log in using your Google account or create one. (Note that it doesn't call itself a "hub", but it is. Don't look for a link labelled "hub", just upload your file).

Assignment Workflow

The basic workflow for each assignment will be something like this:

  1. Download the starter notebook for the assignment, as well as any other required files, from the assignment web page to your computer.
  2. Use a web browser to log in to the Jupyter hub at Google Colab.
  3. Upload the starter notebook for the assignment, as well as any other required files, from your computer to Colab (File>Upload notebook).
  4. When you are finished with the assignment, download your notebook from File>Download .ipynb to your computer, and submit it to the course staff by following the submission instructions.

Assignment 0

For the first assignment, you will do some simple analyses on the text of Shakespeare's plays. For this assignment, you will need to download a file to your local machine, and then upload it to Colab. Files with names that end in .ipynb are Python notebook files. When you work in a notebook and save your work, your work is saved in the .ipynb file. You'll submit your saved A0.ipynb file to your git repository when you are done with the assignment. That will allow us to open your notebook and review your work.

Submitting Assignment 0

Once you are done with the assignment, submit A0 using the following steps:

  1. Download your A0.ipynb file from Colab to your computer.
  2. Submit your A0.ipynb file to your Git repository using the web interface. Make sure your A0.ipynb file is committed to the repository' default branch (by default GitLab will call this branch "main"). Your assignment should be viewable in the web interface. This file must be in the root of the repository and not in a sub-directory.
  3. Add the user cs451 to your repository as a "Maintainer". To do this, on the project page, from the left menu select "Members". On the "Project members" page, search for "cs451" under "GitLab member or Email address". Then, under "Choose a role permission" select "Maintainer". Leave the "Access expiration date" empty. Click on "Invite".

Back to top