Getting Started

Joining late? First and foremost: Don’t panic! You have not missed any graded assignments! You might have missed a practice assignment or two, but, they will be easy to do quickly, and you have not lost any points!

With that out of the way, you can simply follow the rest of the directions here, and you’ll be all set!

Bookmark The Website

You’re already here, but you’ll probably be back. So, it is probably a good idea to bookmark this website. We will use many different websites and services in this course, but this website is really the only place that you need to remember to check, as it will direct you everywhere else you may need to go.

We plan to post information about assignment deadlines and the office hours schedule on the landing page. That way, you will have easy access to time sensitive information.

Within the content section of the website, you’ll see a link for each module of the course.

On that page, you’ll see the topics, learning objectives, and readings for each module.

Check Your Email

We will use email to make announcements in CS 307. Hopefully, you’ve already seen an email or two from Dave. Even if you have, it would be a good idea to add to your email’s safe senders list. While I still think it is more reliable than other announcement tools, University email has too often been marked as spam recently.1

We recommend that you check your University email at least once a day.2

I will generally try to not overwhelm you with email announcements. Usually, the plan is to send one a week, at the end of each week, that will recap what was discussed that week, and what upcoming deadline exist. During the first couple weeks, I will likely email a bit more frequently, especially because it is likely that our roster will be shuffling during that time.

Read The Syllabus

Read the syllabus! We know that it is long and boring, but being familiar with this information will help you succeed in the course. At the top of the syllabus, we also have some suggestions for when to read the syllabus. Students often incorrectly believe that reading the syllabus is only a start-of-the-semester activity.

To make the syllabus less overwhelming, we also have created additional policy pages for each of the assignment types for the course.

There isn’t a huge rush to read each of these, but you certainly should as you attempt each of the assignment types for the first time!

Register For Ed Discussion

We will use Ed Discussion to manage a discussion forum for the course. You should have already received a link to join. Check your email! As noted in the syllabus, we have a preference for using the discussion forum rather than email for answering questions. Please take a look at the pinned posts which set some expectations for how to interact with the forum. There is also a thread where you can introduce yourself if you’d like!

If you are joining late and have not yet seen an email with the link to join the forum, please be patient. There is nothing you need to access there at the moment, and we will be sending that link repeatedly during the first two weeks. We’ll be sure to send it a final time after the last day to register.

Join The Class On PrairieLearn

Head to PrairieLearn and use the “Enroll Course” button towards the top left of the page and join the Spring 2024 instance of CS 307.

After joining, provided you have done so before the first discussion, there may be no content on PrairieLearn. This is expected. The first PrairieLearn assignments, Homework 00, Lab 00, and MP 00, will be released and completed during the first discussion section.3 More on this below.

Check Canvas Access

Verify that you have access to CS 307 on Canvas. If you do not have access, and have recently registered, please be patient. Rostering with Canvas can be slow, but you do not need access for anything in the first couple weeks! Please do not email asking for access unless it has been 48 hours since you have registered. We promise, we are not hiding anything!

Like PrairieLearn, once you have access, there will likely be nothing there! The first Canvas assignment, Lab 00, will be released and completed during the first discussion. More on this below.

Check ClassTranscribe Access

Verify that you have access to ClassTranscribe, which is where we will post recordings of lectures.

We will generally try to post video shortly after lecture each day, but if there is some delay, don’t panic! If the delay is more than two days, Dave has probably forgotten, and he could probably use a reminder.

Except for the first discussion, where we will discuss assignment policies, we do not plan to record and post video of discussion sections.

ClassTranscribe access control is somewhat manual, so if you register late, please let Dave know if you do not have access!4

Check PrairieTest Access

Exams will be taken at the CBTF, but scheduling will be done through PrairieTest.

We will try to keep the roster on PrairieTest updated, but it is a manual process, so please let us know if you do not have access. You’ll need it before February 8.

Take Note Of Quiz Dates

Take some time now to note the dates of the three quizzes for the course.

Why are there start and end dates for each quiz? Because they will be administered through the CBTF and pending availability, you will be able to schedule your quizzes any time that you’d like during those days.

The reservation date is the first day that you can schedule your quiz. Reservations will be done through PrairieTest.

Discussion sections will be cancelled during those date ranges. However, Wednesday lecture will still go forward as usual, so we recommend taking your quizzes on Monday or Tuesday.

Quiz 01

  • Reservation: Thursday, 2024-02-08
  • Start: Monday, 2024-02-19
  • End: Wednesday, 2024-02-21

Quiz 02

  • Reservation: Thursday, 2024-02-29
  • Start: Monday, 2024-03-25
  • End: Wednesday, 2024-03-27

Quiz 03

  • Reservation: Thursday, 2024-04-11
  • Start: Monday, 2024-04-22
  • End: Wednesday, 2024-04-24

Go To Discussion Section

Attend the first discussion section on Monday, January 22. During this discussion section, your will meet your TA, and complete (large portions of) Homework 00, Lab 00, and MP 00, which will help get you get setup to complete assignments in the course.

Bring your laptop! If you do not have access to a laptop, please contact the course instructor to discuss potential solutions.

Setup Your Computer

Together in discussion, we will complete Homework 00, Lab 00, and MP 00 together during discussion. If you can successfully follow along on your laptop, you’ll be all set! If you encounter issues, we will reserve time at the end of discussion for “laptop support office hours” and assist you getting your machine prepared for the semester.

You essentially need seven things:

  1. Python, specifically python3.11 but not python3.12
  2. Visual Studio Code (VSCode)
  3. Python VSCode Extension
  4. Jupyter VSCode Extension
  5. Python Data Science Packages
  6. Quarto CLI
  7. Quarto VSCode Extension

To test your setup, launch VSCode, create a new Jupyter notebook and attempt to run the following:

# checking numpy
import numpy as np
x = np.array(range(0, 10))
rmse = np.sqrt(np.mean((x - np.mean(x)) ** 2))
print(f"The RMSE is {round(rmse, 2)}.")

# checking python
import sys
major = sys.version_info.major
minor = sys.version_info.minor
micro = sys.version_info.micro
print(f"Using version {major}.{minor}.{micro}!")
The RMSE is 2.87.
Using version 3.11.8!

If your output matches, you’re probably all set! If not, we’ll fix it in discussion.

We will require additional software and packages later in the semester, but we will provide installation instructions as we encounter these tools.

Managing Python and Python Packages

Managing Python can be a bit of a pain.5 Students often have several versions of Python installed before they enter CS 307!

That said, we absolutely recommend installing Python directly from (Again, specifically 3.11.x but not later.) Yes, this might add another version of Python, but it will be worth it.

Later in the course, we will use pytorch, but it is not currently supported on the most recent version of Python, 3.12.x. To install an “older” version of Python, select 3.11.7 from under the “Looking for a specific release?” section of the download page.

Better yet, use these links which will download the current version for your OS!

After installing Python, launch Visual Studio Code and create a new Jupyter Notebook. In the top right corner, click “Select Kernel.” This will show you a list of available Python kernels. If you see the version you just installed, click that! Do this each time you create a notebook.

Next to the version numbers in this list, you’ll see the full path to the Python installation that it refers to. If that includes either conda, anaconda, or homebrew, we do not want that! Those are likely not what you just installed.

To ensure that you are installing packages into the correct version of Python, we recommend doing so within a Jupyter Notebook using magic commands. Specifically, we will use %pip to insure that packages are installed within the current kernel. To install all of the packages listed above, you can use:

%pip install --upgrade pip
%pip install ipykernel numpy scipy pandas matplotlib seaborn scikit-learn

Later in the course, if you need to install another package, you’ll want to use:

%pip install packagename

Be sure to use % and not !. Using % is nearly guaranteed to work, while ! assumes you have a very specific setup, which is a bad assumption.

Complete Homework 00

Complete Homework 00 during discussion! Dave will do Homework 00 together with the class. This will be an opportunity to learn about the homework process on PrairieLearn in addition to testing your laptop setup.

Homework 00 is not part of your grade. It is only for practice.

Complete Lab 00

Complete Lab 00 during discussion! Dave will do Lab 00 together with the class. This will be an opportunity to learn about the lab process, which utilizes both Canvas and PrairieLearn.

Lab 00 is not part of your grade. It is only for practice.

Complete MP 00

Complete MP 00 during discussion! Dave will do MP 00 together with the class. This will be an opportunity to learn about the MP process on PrairieLearn in addition to testing your laptop setup.

MP 00 is not part of your grade. It is only for practice.

Know Where Your Towel Is

Do you have a towel? Do you know where it is? Are you confused why you’re being asked about a towel? Like other things you’ll encounter during the course, such as the number 42, this is a phrase from The Hitchhiker’s Guide to the Galaxy6. Long story short7, it is a metaphor for being prepared!


  1. To combat this, I will (try my best to remember to) also post the text of email announcements to the course discussion forum.↩︎

  2. This is a good habit to establish generally, not just for CS 307.↩︎

  3. They may be released before, but we want to set this expectation in case they are not.↩︎

  4. Send an email that follows the email policy.↩︎

  5. Dave, coming from the R community, is learning this the hard way.↩︎

  6. Dave is getting old. He’s an “millennial” or whatever that means. Some of his references will be dated. Hitchhikers however is timeless.↩︎

  7. 42 is harder to explain.↩︎