Announcements

4/28

The Final Exam will take place on Saturday 5/2, 1300-1600.

  • Location: CH117
  • Part 1 (20%) – Writing basic Altair and Pandas code with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
    • Basic charts with Altair: point, bar and line marks; X, Y, and size encodings; binning and counting data; aggregation
    • Basic data wrangling with Pandas: query rows, sort rows, select/rearrange columns, remove columns, rename columns, use assign to create new columns.
  • Part 2 (20%) – Multiple choice with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
  • Part 3 (60%) – Writing code in Jupyter notebooks.
    • You are allowed to use:
      • Your class materials (e.g., lesson notes, projects). Handwritten notes on paper are permitted.
      • References linked directly from the course website (e.g., Altair and Pandas documentation).
    • No general internet searches allowed. No generative AI allowed. No devices other than your computer allowed.
  • You must turn in Part 1 before starting Part 2. You must turn in Part 2 before starting Part 3.
  • No collaboration allowed during any part of the exam.

4/21

Quiz 4 will take place in class on Thursday 4/23.

  • Covers Lessons 19-21.
  • 15 minutes, pen-and-paper, multiple choice.
  • You are not allowed to use any outside assistance on this quiz: closed book, closed notes, closed internet, etc.
  • No collaboration allowed.

4/17

Project 6 is due on Tuesday 4/28 at 22:00. See below for details.

4/2

Project 5 is due on Thursday 4/16 at 22:00. See below for details.

3/31

Exam 2 will take place in class on Thursday 4/9.

  • Focuses on Lessons 12-19.
  • Part 1 (20%) – Writing basic Pandas code with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
    • Query rows, sort rows, select/rearrange columns, remove columns, rename columns, use assign to create new columns.
  • Part 2 (20%) – Multiple choice and short answer with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
  • Part 3 (60%) – Writing code in Jupyter notebooks.
    • You are allowed to use:
      • Your class materials (e.g., lesson notes, projects). Handwritten notes on paper are permitted.
      • References linked directly from the course website (e.g., Altair and Pandas documentation).
    • No general internet searches allowed. No generative AI allowed. No devices other than your computer allowed.
  • You must turn in Part 1 before starting Part 2. You must turn in Part 2 before starting Part 3.
  • No collaboration allowed during any part of the exam.

3/17

Project 4 is due on Thursday 3/26 at 22:00. See below for details.

3/17

Quiz 3 will take place in class on Thursday 3/19.

  • Covers Lessons 12-15.
  • 15 minutes, pen-and-paper, short answer and multiple choice.
  • You are not allowed to use any outside assistance on this quiz: closed book, closed notes, closed internet, etc.
  • No collaboration allowed.

3/3

You may have trouble submitting your completed Project 3 with the submission form because it exceeds the 10 MB limit with all the charts included.

To resolve this, clear all the outputs in your Project 3 notebook. In Jupyter Lab, select Edit → Clear Outputs of All Cells. Then save your notebook and submit it.

This will clear all the charts from your notebook, but your code will remain intact. For all assignments, I re-run your entire notebook before grading it.

2/24

Project 3 is due on Thursday 3/5 at 22:00. See below for details.

2/10

Exam 1 will take place in class on Thursday 2/19.

  • Focuses on Lessons 3-9 (and required background from Lessons 1-2).
  • Part 1 (20%) – Writing basic Altair code with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
    • Basic Altair charts: point, bar and line marks; X, Y, shape, and size encodings; binning and counting data; aggregation
  • Part 2 (20%) – Multiple choice and short answer with pen and paper.
    • No references or outside assistance allowed. No computer allowed.
  • Part 3 (60%) – Writing code in Jupyter notebooks.
    • You are allowed to use:
      • Your class materials (e.g., lesson notes, projects). Handwritten notes on paper are permitted.
      • References linked directly from the course website (e.g., Altair and Pandas documentation).
    • No general internet searches allowed. No generative AI allowed. No devices other than your computer allowed.
  • You must turn in Part 1 before starting Part 2. You must turn in Part 2 before starting Part 3.
  • No collaboration allowed during any part of the exam.

2/5

Project 2 is due on Thursday 2/12 at 22:00. See below for details.

1/29

Quiz 2 will take place in class on Thursday 2/5.

  • Covers Lessons 4, 5, 6.
  • 15 minutes, pen-and-paper, short answer and multiple choice.
  • You are not allowed to use any outside assistance on this quiz: closed book, closed notes, closed internet, etc.
  • No collaboration allowed.

1/21

Project 1 is due on Thursday 1/29 at 22:00. See below for details.

1/15

Quiz 1 will take place in class on Thursday 1/22.

  • Covers Lessons 2, 3, 4.
  • 15 minutes, pen-and-paper, short answer and multiple choice.
  • You are not allowed to use any outside assistance on this quiz: closed book, closed notes, closed internet, etc.
  • No collaboration allowed.

1/7

Welcome!

Show older announcements

Schedule

Date Class Homework

4/28

  • Student opinion forms
  • Work on Project 6
  • Project 6 due Tuesday 4/28 at 22:00

4/23

  • Quiz 4
  • Lesson 23
  • Work on Project 6

4/21

  • Lesson 22
  • Work on Project 6

4/16

  • Finish Lesson 21
  • Project 5 due Thursday 4/16 at 22:00

4/14

  • Start Lesson 21

4/9

  • Exam 2

4/7

  • Work on Project 5

4/2

  • Lesson 20
  • Work on Project 5
  • Work on Problems 1-5 in Lesson 20

3/31

  • Lesson 19
  • Work on Problems 1-5 in Lesson 19

3/26

  • Work on Project 4
  • Work on unfinished homework problems from previous lessons
  • Project 4 due Thursday 3/26 at 22:00

3/24

  • Finish Lesson 18
  • Work on Problems 0-7 in Lesson 18

3/19

  • Quiz 3
  • Lesson 17
  • Start Lesson 18
  • Work on Problems 0-3 in Lesson 17

3/17

  • Finish Lesson 16
  • Work on Problems 1-6 in Lesson 16

3/5

  • Start Lesson 16
  • Work on unfinished problems from previous lessons
  • Project 3 due Thursday 3/5 at 22:00

3/3

  • Finish Lesson 15
  • Work on Problems 0-3 in Lesson 15

2/26

  • Lesson 14
  • Start Lesson 15
  • Work on Problems 1-5 in Lesson 14

2/24

  • Lesson 12
  • Lesson 13
  • Work on Problems 0-4 in Lesson 12
  • Work on Problems 1-8 in Lesson 13

2/19

  • Exam 1

2/17

  • Lesson 11
  • Work on Problems 1-3 in Lesson 11

2/12

  • Finish Lesson 9
  • Lesson 10
  • Work on Problems 1-4 in Lesson 9
  • Project 2 due Thursday 2/12 at 22:00

2/10

  • Start Lesson 9
  • Work on Problems 1-2 in Lesson 9

2/5

  • Quiz 2
  • Finish Lesson 8
  • Work on Problems 1-3 in Lesson 8

2/3

  • Lesson 7
  • Start Lesson 8
  • Work on Problems 1-3 in Lesson 7

1/29

  • Lesson 6
  • Work on Problems 1-5 in Lesson 6
  • Project 1 due Thursday 1/29 at 22:00

1/22

  • Quiz 1
  • Finish Lesson 5
  • Work on Problems 1-5 in Lesson 5

1/20

  • Finish Lesson 4
  • Start Lesson 5
  • Work on Problems 1-6 in Lesson 4

1/15

  • Finish Lesson 3
  • Start Lesson 4
  • Work on Problems 1-5 in Lesson 3

1/13

  • Start Lesson 3
  • Work on Problem 1 in Lesson 3

1/8

  • Course logistics
  • Check Conda installations
  • Lesson 0 – course overview
  • Lesson 2
  • Review Lesson 1
  • Work on Problems 1-4 in Lesson 2
  • Complete the student questionnaire (sent by email)

Show past days

Note. You will need a USNA account to access most of the materials linked below.

Course Logistics

Resources

Lessons

Dates Lesson
  • 4/23
23 Parting thoughts
  • 4/21
22 Web scraping with Pandas
  • 4/16
  • 4/14
21 Regular expressions
  • 4/2
20 Strings and datetimes in Pandas
  • 3/31
19 Combining data in Pandas
  • 3/24
  • 3/19
18 Tidy data
  • 3/19
17 Working with missing values in Pandas
  • 3/17
  • 3/5
16 Split-apply-combine in Pandas
  • 3/3
  • 2/26
15 Creating new variables in Pandas
  • 2/26
14 Sorting rows and selecting columns in Pandas
  • 2/24
13 Filtering observations in Pandas
  • 2/24
12 Introduction to data wrangling – the Pandas DataFrame and Series
  • 2/17
11 Cartographic visualization
  • 2/12
10 Data sources in Altair
  • 2/12
  • 2/10
9 Interactive visualization
  • 2/5
  • 2/3
8 Multi-view composition – facet, concatenate, repeat
  • 2/3
7 Multi-view composition – layers
  • 1/29
6 Customizing visualizations
  • 1/22
  • 1/20
5 Advanced data transforms with Altair
  • 1/20
  • 1/15
4 Basic data transformations with Altair
  • 1/15
  • 1/13
3 Introduction to data visualization with Altair
  • 1/8
2 Warm up
  • 1/8
1 A survival course in Jupyter and Python
  • 1/8
0 Course overview

Projects

Instructions for all projects:

Project Instructions

Project 6 — Exploring Ordnance Loading Operations Data

Due Tuesday 4/28 at 22:00.

Project 5 — COVID-19 in the United States, Revisited

Due Thursday 4/16 at 22:00.

Project 4 — Exploring Tracks on Spotify

Due Thursday 3/26 at 22:00.

Project 3 — COVID-19 in the United States

Due Thursday 3/5 at 22:00.

Project 2 — Corruption and Human Development

Due Thursday 2/12 at 22:00.

Project 1 — Higher Education and Future Earnings

Due Thursday 1/29 at 22:00.

Quizzes

Date Quiz
4/24 Quiz 4
3/19 Quiz 3
2/5 Quiz 2
1/22 Quiz 1

Exams

Date Exam
4/9 Exam 2
2/19 Exam 1