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 EditClear 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