Example Course Structure
In the Data Systems course at Denison University, we use Jupyter iPython notebooks as the primary programming environment. These are used for homework assignments, for practicum activities, and for the starting point to set up in-class activities engaging the students. Examples of the notebooks, both in source form and converted to HTML, are available on this page.
To simplify delivery of material to students, expecially given the dependencies between the homework and class notebooks and the associated data files, we use a read-only GitHub repository for the students. Here, all the materials are gathered and organized in a structure that satisfies the needed dependencies. Before starting a class with an activity or before beginning a homework, students simply perform a "git pull" to obtain updated materials.
In this section, we present the structural context for two of our most recent instances of the course. We provide links to public versions of the student repository as well as to 14-week class schedules and planning.
Data Systems Course, Spring 20
GitHub Repository, Spring 20
In this instance of our Data Systems class, one objective was to interleave and integrate data forms and data sources earlier in the semester. So instead of leaving chapters from Part III of the book to the end, we moved them up. In particular, after units on foundations and the tabular model (using local files), we then covered the relational model, and had a focus on remote databases and queries over the network. We then moved on to networking and HTTP, and then went back and covered the hierarchical model, using XML and JSON acquired over the network.
The link in this section leads to a Google Spreadsheet that was a live document, updated through the semester, and containing the daily topics and coverage.
Data Systems Course, Fall 20
GitHub Repository, Fall 20
In this semester, due to hybrid learning models and pandemic requirements, we strove for flexibility. We started the semester with a high level set of goals per week. Then through the semester, we generated week by week plans to target the given goals. We give here links to the overall schedule, as well as to the plans per week in the expansion in this seciton.
Homework Notebook Examples
Class Activity Notebook Examples
|dbutil.py||Collection of utility functions for use with database connection setup. Used in some of the exercise and class activity notebooks.|
|mysocket.py||Set of functions as a thin wrapper over the socket interface, used in the textbook, exercise, and class activity notebooks.|
|util.py||Set of functions to enable flexible exploration of (primarily) hierarchical data to ease discovery and understanding of structure.|
|modules.zip||Compressed ZIP archive of the above three modules.|