This course is a programming course for students interested data intensive majors. The emphasis is on analyzing real data, focusing on acquiring, analyzing, and visualizing real data. This practical course has lecture once a week and a hands-on lab once a week.

Note: This is a hands-on course for those not majoring in computer science but want technical skills to analyze large amounts of data. If you are interested in majoring in computer science, the first course for computer science majors is CMP 167.

Course(s): Time:Room:
Lecture (everyone attends):Wednesdays, 1:50-3:30Gillet 225
Laboratory meetings (register for one):
Mondays, 1:50-3:30pmGillet 231
Wednesdays, 12-1:40pmGillet 231


Useful Links:


Date: Topics: Handouts: Reading: Classwork & Quiz Topics:
Lab #1
30 January/1 February
Hands-on Introduction: Python & Blackboard Lab 1 Chapter 1: General Introduction and
Chapter 4: Turtle Graphics
#1: Academic Integrity
Lecture #1
1 February
Class overview;
Introduction to Python: printing and turtles, variables, assignment statements, range() function;
Program Design
Programming Problem List,
Lab 1's Turtle example,
Paper plane,
Range examples,
Academic Integrity Policy,
Chapter 1: General Introduction and
Chapter 2: Simple Python Data
#2: Groups: Program Design
Lab #2
6/8 February
Random Walks: random library & more on for-loops Lab 2 Chapter 3: Degugging Interlude 1,
Chapter 4: Turtle Graphics, and
Chapter 5: Python Modules
#3: Turtles and Loops
Lecture #2
8 February
Looping through Lists & Strings;
Getting Input & Converting Numbers to Strings;
Built-in math operators;
Lab 2's randrange example,
looping through strings example
Chapter 2: Simple Python Data, and
Chapter 9: Strings
#4: Groups: Sampling of Grid Program Design
13 February Lincoln's Birthday: Campus Closed/No Classes
Lab #3
15/22 February
Monday labs meet on Wednesday, February 15.
Wednesday labs meet on Wednesday, February 22.

Looping through lists & user input: colors & tic-tac-toe
Lab 3 Chapter 2: Simple Python Data,
Chapter 9: Strings and
Chapter 11: Files
#5: Turtles and Loops
20 February Presidents' Day: Campus Closed/No Classes
Lecture #3
22 February
More on type conversions;
Extracting data from formatted files: turtle directions and plotting points;
More on using packages: CSV;
looping through files
trinket for averaging example
Chapter 9: Strings and
Chapter 11: Files
#6: Programs 1-5
Lab #4
27 February/1 March
Looping Through Lists and Strings Lab 4 Chapter 5: Python Modules,
NYC Open Data Overview
#7: input() & Strings
Lecture #4
1 March
More useful string functions; Using variables as accumulators Chapter 9: Strings and
Chapter 8: More About Iteration
#8: Groups: Making Maps
Lab #5
6/8 March
Mapping Locations from Data Files;
Converting strings to numbers
Lab 5 Chapter 8: More About Iteration #9: Strings & Files
Lecture #5
8 March
Decisions: if-statements and elses; Dictionaries Running Total example,
Dictionary example,
if statement example
Chapter 7: Selection #10: Programs 6-10
Lab #6
13/15 March
Decisions; pandas to read CSV files
NYC OpenData (socrata): Populations in NYC
Lab 6 Chapter 7: Selection #11: Decisions
Lecture #6
15 March
Dictionaries, Multi-way decisions, Designing programs with decisions;
pandas; functions
Pandas cheat sheet Chapter 7: Selection, Dictionaries, and Pandas Intro (10 minutes to Pandas) #12: Groups: potholes
Lab #7
20/22 March
Designing programs with functions & decisions Lab 7 Chapter 6: Functions #13: Programs 11-15
Lecture #7
22 March
Defining Functions;
More on decisions
function examples Chapter 6: Functions #14: Groups: Top-down design
Lab #8
27/29 March
Visualizing data with pandas and folium;
Using github
Lab 8 Chapter 5: Python Modules and Pandas visualization #15: Functions
Lecture #8
29 March
More on pandas: reading files, series, dataframes old exam, Problems 1-4, indefinite loop example Chapter 5: Python Modules, Pandas Tutorials #16: Groups: Loops
Lab #9
3/5 April
Booleans in Decisions and Loops Lab 9 Chapter 8: More About Iteration #17: Programs 16-20
Lecture #9
5 April
More on loops: interactive loops, sentinel values function example Chapter 8: More About Iteration #18: Programs 21-25
10-18 April Spring Recess: No Classes
Lab #10
19/20 April
Monday Labs meet on Thursday this week.
Getting Started with R
Lab 10 An Introduction to R #19: Programs 26-30
Lecture #10
19 April
Introduction to R: Arithmetic, variables, & data types DataCamp: Intro to R An Introduction to R #20: Programs 31-35
Lab #11
24/26 April
Comparing Vectors & plot() Lab 11 An Introduction to R #21: R basics
Lecture #11
26 April
Vectors & Factors DataCamp: Vectors, DataCamp: Factors An Introduction to R #22: Programs 36-40
Lab #12
1/3 May
Reading Data from Files Lab 12 An Introduction to R #23: Vectors in R
Lecture #12
3 May
Data Frames & Lists DataCamp: Data frames, DataCamp: Lists, R graphics tutorial An Introduction to R #24: Programs 41-45
Lab #13
8/10 May
Correlation & ggplot2 Lab 13 An Introduction to R #25: Programs 46-50
Lecture #13
10 May
Correlation & Linear Regression, More on Plotting, Hypothesis Testing Correlation & Linear Regression, Khan Academy on hypothesis testing An Introduction to R #26: Groups: Probability
Lab #14
15/17 May
Hypothesis Testing Lab 14 An Introduction to R #27: End-of-semester survey
Lecture #14
17 May
Review R or Python? #28: Data Science Presentations
19 May Reading Day
24 May,
Final Examination
(This file was last modified on 16 May 2017.)