CSCI P-14110 Introduction to Programming, Computational Science, and Data Visualization

This is the course website CSCI P-14110

Syllabus

  • Summer, 2020
  • Zoom, M/T/W/Th/F, 12-3pm (EST)
  • Instructor: Jill P. Naiman
    • Email: jnaiman@illinois.edu, jill.naiman@cfa.harvard.edu
    • Office: Zoom Room
    • Office Hour: M-F, 4-6pm EST
    • Preferred Contact Method: email

Course Description

This course is an introduction to programming methods with an emphasis on data visualization and computational modeling. The increasing prevalence of massive data sets and falling computational barriers have rendered computational modeling and data visualization necessary in most of the contemporary sciences. With this in mind, this course prepares students to select and properly undertake commonly encountered modeling and visualizing tasks. The course first teaches relevant concepts from programming using hands-on activities. Students then apply their new programming skills to guided problems of orbital motions of multiple planetary systems (like that around our sun and other stars) and end the course with both two- and three-dimensional interactive movies of their datasets using a variety of visualization libraries and methods.

Statement of Learning Philosophy

Because there are many ways to approach a problem, there are thus many ways to learn effective problem solving techniques in a particular field. With this in mind, we will be cultivating a “growth mindset” in this class with predominantly inquiry based activities - in other words, we will spend a little bit of time talking about science but a lot more time actually doing science because this is how we will improve our skills.

Prerequisites

A good working knowledge of geometry, trigonometry, and algebra. Students must bring a full-sized laptop computer (not a netbook) to each class meeting. No previous programming experience is required.

Course Schedule

Days will be split roughly into two parts, with the first spent on programming or data visualization concepts and the second spent on hands-on coding with these concepts.

Below is an approximate outline of the course and required and optional reading for each lesson. It is recommended that you do the reading the night before the day its listed with. This course is always under development and the course outline below is subject to some flexibility; students will be encouraged to provide feedback on the topics covered, particularly toward the end. Topics that are of particular interest will be emphasized.

Required texts:

Optional texts:

Acronyms for books:

Day Topics Reading
Day 1: June 29 Intro to class, Intro to programming 1. Py4E: Ch. 1, 2, 6 & 8
Note: some of this reading covers conditionals (Ch. 3) & iterations (Ch. 5) which are covered tomorrow in class.
Optional: Intro to Jupyter Notebook Video
Optional: Software Carpentry (SC) Variables lesson and SC’s conversion lesson
Day 2: June 30 Programming syntax, flow control 1. Py4E: Ch. 3 & 5 (you can just skim the Try & Except section)
Optional: Loops Lecture, IS452 and if-then Lecture, IS452
Optional: SC’s loops lesson
Day 3: July 1 Data storage & operations, functions 1. Py4E: Ch. 4 & 7
2. SC’s Data with Pandas lesson
Optional: IS452’s notebook on functions
Day 4: July 2 What is data viz? 1. FDV, Ch. 1: Introduction
2. FDV, Ch. 17: The principle of proportional ink
Optional: More DataFrame operations with Pandas
Optional: Same Data, Multiple Perspectives
Optional: VAD, Ch. 1: What’s Viz, and Why Do It?
Day 5: Holiday! NA 1. FDV, Ch. 2: Visualizing data: Mapping data onto aesthetics
Optional: VAD, Ch. 2: What: Data Abstraction
Optional: More DataFrame operations with Pandas
Optional: More plotting with SC’s matplotlib plotting lesson
Day 6: July 6 Intro to colors & colormaps 1. FDV, Ch. 4: Color scales
2. Perception in Visualization (pay attention to the parts about color) - NOTE: its to just glance over this!
Optional: VAD, Ch. 10: Map Color and Other Channels
Optional: Palettable Docs
Day 7: July 7 Intro to maps, beginning interactivity 1. FDV, Ch. 15: Visualizing geospatial data
2. FDV, Ch. 7: Visualizing distributions: Histograms and density plots
3. This intro to ipywidgets (you don’t have to “get” everything on this page, just read and play with some widgets!)
Optional: Geopandas Docs & Example Widgets Notebooks
Optional: VAD Ch. 8: Arrange Spatial Data, Ch. 11: Manipulate View & Ch. 7: Arrange Tables
Day 8: July 8 Linked views with bqplot and planetary data 1. Crash Course Astronomy: Solar System Video
2. Crash Course Astronomy: Exoplanets
3. Video about bqplot
Optional: ipywidgets Docs; Traitlets Docs; bqplot Docs
Optional: Intro to Ellipses
Optional: Crash Course Physics: Gravity
Day 9: July 9 Sci Viz vs. Info viz, Movies - 2D & 3D, Publish your viz (optional) 1. FDV, Ch. 13: Visualizing time series
Optional: yt project; ipyvolume docs
Optional: info about GitHub pages (video on page)
Day 10: July 10 3D graphics concepts, Online interactive 3D geometry with Sketchfab 1. This short Pixar explaination of rendering
2. Info about the Sketchfab platform

Learning Outcomes

Students will demonstrate an understanding of data visualization as it relates to plotting datasets related to the orbits of planets around stars and/or motion of stars in galaxies. By the end of the course, students will have a basic understanding of programming and the “best practices” behind data visualization. In particular, each student will be able to:

Course Materials

There is no required physical textbook for this course. All course materials will be posted to the GitHub repository at https://github.com/jnaiman/csci-p-14110_su2020.

As the course progresses, a list of recommended readings available online will be generated for each class.

About Your Instructor

Dr. Jill Naiman’s background is in theoretical and computational astrophysics with a current research emphasis on scientific data visualization. She is currently Teaching Faculty at the iSchool, UIUC and a Visiting Scholar at the Advanced Visualization Lab at the National Center for Supercomputing Applications. She is currently involved in projects related to increasing access to industry-standard special effects software for scientists - more info can be found here and here. Information about her research and outreach efforts can be found here.

Class Participation Policy

Leaders are expected to clearly detail issues and problems and how analytical tools can help solve these issues. The way we foster this in the course is that you must participate in the classroom discussion. You are not required to “speak up” during every class session, but you do need to attend and contribute to the class and/or forum discussion over the course.

Leaders are also expected to foster productive environments for those around them. Those in this class come from a variety of backgrounds and comfort levels with the material and programming - it is expected that all students (and instructor!) will remain cognizant of this fact at all times and any demeaning language or behavior will not be tolerated.

That being said, we are living through a hard and trying time in human history, so it may be hard to give your 100% in class and in assigments. This is normal. The instructors will practice maximum flexibility – please reach out to us if you have any issues with assignments/reading/homeworks or participating in class. We want to work with you so you can do your best!

Academic Integrity

Please review and reflect on the academic integrity policy of Harvard Summer School, https://www.summer.harvard.edu/resources-policies/student-responsibilities to which we subscribe. By turning in materials for review, you certify that all work presented is your own and has been done by you independently.

If, in the course of your writing, you use the words or ideas of another writer or programmer, proper acknowledgement must be given. Not to do so is to commit plagiarism, a form of academic dishonesty. If you are not absolutely clear on what constitutes plagiarism and how to cite sources appropriately, now is the time to learn. Please ask me!

Please be aware that the consequences for plagiarism or other forms of academic dishonesty will be severe. Students who violate university standards of academic integrity are subject to disciplinary action.

Accessibility Statement

To obtain accessibility-related academic adjustments and/or auxiliary aids (academic and physical) students must contact the Accessibility Services Office. Please see their website for more information: https://www.summer.harvard.edu/resources-policies/accessibility-services

Sources

No curriculum develops in a vacuum. Here are some sources to check out that were used in this one’s development: