Your Professor:
Matt Lavin
My Email:
lavinm@denison.edu
My Office:
BRMG 411
Office Hours
10:30 - 11:30 a.m. M W by appointment, 12:30-1:30 p.m. T walk-in
Our Classroom:
Barney-Davis Hall 212
When We Meet:
9:30-10:20 a.m. MWF
This course provides a broad perspective on the access, structure, storage, and representation of data. It encompasses traditional database systems, but extends to other structured and unstructured repositories of data and their access/acquisition in a client-server model of Internet computing. Also developed are an understanding of data representations amenable to structured analysis, and the algorithms and techniques for transforming and restructuring data to allow such analysis. The primary programming language used in the course will be Python.
At the end of the course you should be able to:
I am always happy to see students during my office hours, whether it's to discuss this class, majoring in DA, how I can contribute to your learning at Denison, or your plans for life after graduation (career, graduate school, etc.). Like many professors, I offer mix of in-person appointments (via Google Calendar) and drop-in office hours.
For office hours by appointment, visit my appointment page, where you will see a real-time account of when I am available. You can book the appointment with one or two clicks by selecting any time when I'm listed as available. My standard appointment slots are divided into 20-minute blocks from 10:30 to 11:30 a.m. on Mondays and Wednesdays. Note that these appointment slots will disappear from my calendar once I've been booked, and you are required to book appointments at least 24 hours in advance.
Drop-in office hours will be held in my office from 12:30 to 1:30 p.m. on Tuesdays. For these, you will not need an appointment, and I encourage you to drop by or work in or near the lab space across the hall from me. I see students in the order they arrive, so there is no guarantee that I will have time for everyone on a given day. In other words, if you have a very specific or time sensitive question or concern, it's best to make an appointment or email me.
If I ever need to cancel by-appointment office hours on a given day (say, for example, if I'm ill), I will update the calendar and email anyone with an appointment. If I ever need to cancel office hours on a given drop-in day, I will post to Canvas or e-mail the entire class.
The Pragmatic Programmer, 20th Anniversary Edition by David Thomas and Andrew Hunt (Pearson, 2019): $39.99 ($28.99 ebook). Print or eBook, buy online or at the university bookstore. Note that you need to get the 20th anniversary edition. Match to ISBN-10: 0135957052 or ISBN-13: 978-0135957059 when ordering online.
Introduction to Data Systems: Building from Python (Spring 2020). Free to read and download online. You can buy the print edition online if you want, but it's not required.
Selected readings will be made available as html or pdf, and linked to the course website or shared via Canvas.
All assignments in this course will be scripted and analyzed using Python . All of my demos will use Jupyter Notebooks as a programming environment. You are welcome to use Jupyter Notebook , JupyterLab , or any other Integrated Development Environment (IDE) of your choice when writing code. Most assignments, however, will require you to turn in a .py
or .ipynb
file and/or a written document (.docx, .pdf). Many assignments will require specific Python dependencies, such as a particular module or library, so it is recommended that you install the Anaconda platform, which includes Python , Jupyter Notebooks , and most if not all of the libraries we will use. Lastly, for our unit on relational databses, we will use the desktop software DB Browser for SQLite , which is free to download and use.
Assignments will be shared via GitHub Classroom , which provides a collaboration and version control system via Github . Typically, Github Classroom assignments will contain datasets, assignment template files and/or starter code. In some cases, if a dataset is too large for Github 's file size limits, assignments will come with instructions on how to download the data online, or from a Google Drive folder. Completed assignments will be turned in for grading on Canvas , and all grades and student feedback will be issued on Canvas in order to maintain educational privacy.
As a general rule, the expectations in this course are high, and I'm confident you can all do great work. The feedback I provide on assignments is designed to help you get there. My goal is to provide specific, relevant, and honest feedback when I grade your work. This will include constructive criticism, strategies for improvement, and guidance on how students can achieve success. I will not do "compliment sandwiches" just to begin and end on a positive remark, but this means that, when I praise your work, it's an honest (and I think more meaningful) act of praise.
Item | Percentage | Comments |
---|---|---|
Attendance and Participation | 15 | See description below |
Quizzes and Homework | 25 | Full list of assignments on Canvas |
Midterm 1 | 10 | In-class, individual assignment, cumulative (covers material up to the class before the exam) |
Midterm 2 | 10 | In-class, individual assignment, cumulative (covers material up to the class before the exam) |
Project 1 | 10 | Team-based assignment (full description on Canvas) |
Project 2 | 10 | Team-based assignment (full description on Canvas) |
Final Exam | 20 | In-person, individual assignment, cumulative (covers material from the entire course) |
In a liberal arts context, it is particularly important that students arrive on time and come prepared to engage with the community we will be building in our classroom. I expect you to attend class every class meeting, and I expect you to arrive on time. Attendance will be taken every day. If you cannot attend class, it is your responsibility to get (from a classmate) all written notes about what we discussed in class, including in-class announcements.
Note: Late arrival counts as half an absence. If you have a commitment immediately before this class that will force to come late (say, a class in Mitchell) you should either drop that class or drop this one.
Since regular attendance is a prerequisite to passing this course, missing more than five classes will result in an additional penalty of -5% from your final course grade for each unexcused absence beyond the fifth.
Participation will be assessed using a mix of preparedness, speaking during class discussions, remaining attentive during lectures, and completing in-class assignments. An unexcused absence will result in a participation score of zero for the day, and coming late will result in a maximum participation score of 50 for the day.
Creating distractions in class is especially frowned upon. Disruptions such as falling asleep, leaving class excessively, and talking over the professor are frowned upon. Cell phones should be off and put away. Laptops are okay for notes and such but, when laptops are being used, you should not be messaging, using Facebook, etc. In the event of a disruption, I will typically give a verbal warning for your first offense. After that, I reserve the right to ask you to leave class and mark you absent for the day.
If you have a legitimate emergency such as a serious illness, a mental health emergency, or a death in the family, I will grant an appropriate extension with a new due date. The trade off is that work turned in this way is probably not going end up in my hand when I grade everything else, so it's going to get very sparse feedback. If you miss a deadline entirely without getting an extension, you will automatically lose 10 points off the top of your grade for each day it is late, in addition to any points you lose for the quality of the work. Retroactive and last-minute extensions will not be granted.
Coming to class prepared means that you have the day's reading in hand (printed or digital) and have come to class with a way to take notes (printed or digital). If you are not prepared for class, I reserve the right to grade as if you were absent for that day. Anything due on a given day is due at the start of class. Any digital submission of material is due by the time class starts on the day the hard copy is due.
If you are a student who feels you may need an accommodation based on the impact of a disability, you should contact me privately as soon as possible to discuss your specific needs. I rely on the Academic Resource Center in 020 Higley Hall to verify the need for reasonable accommodations based on documentation on file in that office.
The Peer Learning Strategists (PLS) program was developed by Denison students and faculty for those in introductory science classes. It is an initiative of a larger program called RAISE (Readiness and Inclusion in Science Education) and is a great resource to learn how to study more efficiently and learn more effectively. The PLS program employs peer-to-peer mentoring focused on teaching overarching learning strategies crucial to success in college science classes. Trained science majors work as PLS mentors to help hone your learning approach since skills most helpful in college often differ from skills that led to high achievement in high school. Students meet one-on-one with a PLS mentor one hour weekly for at least three weeks with some students continuing beyond the three-sessions recommendation. PLS mentors are not tutors, content is not course-specific, and conversations provide space for attaining skills for lifelong learning and success. Contact Science Initiatives Coordinator Jeni Miller or Dr. Melanie Lott with additional questions.
Proposed and developed by Denison students, passed unanimously by DCGA and DenisonÕs faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty. Cases are typically heard by the Academic Integrity Board, which determines whether a violation has occurred, and, if so, its severity and the sanctions. In some circumstances the case may be handled through an Administrative Resolution Procedure. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated.
Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes but is not limited to providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted--not merely for quoted phrases, but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense incases of plagiarism. It is the studentÕs responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.
Note on Technology: Unauthorized use of technology (including, but not limited to, artificial intelligence sites and translation programs) in the preparation or submission of academic work can be considered a form of cheating and/or plagiarism. Instructors may at their discretion create assignments that incorporate the use of supporting technologies and will inform students of acceptable uses of technology in their courses. It is the responsibility of the student to ask the instructor for clarification whenever they are unclear about the parameters of a specific assignment and to understand that presenting the work of artificial intelligence as your own constitutes a violation of Denison's Code. Cases of suspected inappropriate use of technology may be submitted to the Academic Integrity Board to initiate an investigation of academic dishonesty. For further information about the Code of Academic Integrity, see https://denison.edu/academics/curriculum/integrity .
Denison's mission statement articulates an explicit commitment to liberal arts education. It emphasizes active learning, which defines students as active participants in the leaning process, not passive recipients. Denison seeks to foster self-determination and to demonstrate the transformative power of education. A crucial aspect of this approach is what Denison's mission statement refers to as "a concern for the whole person," which is why the university provides a "living-learning environment" based on individual needs and an overriding concern for community. This community is based on "a firm belief in human dignity and compassion unlimited by cultural, racial, sexual, religious or economic barriers, and directed toward an engagement with the central issues of our time."
In this class, we will discuss inequality directly. In many cases, you will asked to apply quantitative reasoning skills to these subject, which can be difficult because there is always the potential for the available data to complicate or contradict something you may feel very passionate about. In these cases, you should aspire to adopt an attitude of critical skepticism, i.e. wary of claims that are not supported by evidence but potentially willing to be persuaded by evidence if you find it compelling, and willing to give that evidence a fair hearing.
How we treat one another will be a cornerstone of these conversations. Denison's "Guiding Principles" speak of "a community in which individuals respect one another and their environment." Further, "each member of the community possesses a full range of rights and responsibilities. Foremost among these is a commitment to treat each other and the environment with mutual respect, tolerance, and civility." It's easy to treat someone this way when you like them and agree with their ideas, but the real challenge is treating those who differ from us with the same compassion and respect. However, I consider disruptive, deceitful, or hateful behavior to be breaches of these responsibilities. Bullying, trolling, hate speech, and harassment of any kind will not be tolerated.
Essays, journals, and other coursework submitted for this class are generally considered confidential pursuant to the UniversityÕs student record policies. However, students should be aware that University employees are required by University policy to report allegations of discrimination based on sex, gender, gender identity, gender expression, sexual orientation or pregnancy to the Title IX Coordinator or a Deputy Title IX Coordinator. This includes reporting all incidents of sexual misconduct, sexual assault and suspected abuse/neglect of a minor. Further, employees are to report these incidents that occur on campus and/or that involve students at Denison University whenever the employee becomes aware of a possible incident in the course of their employment, including via coursework or advising conversations. There are others on campus to whom you may speak in confidence, including clergy and medical staff and counselors at the Wellness Center. More information on Title IX and the UniversityÕs Policy prohibiting sex discrimination, including sexual harassment, sexual misconduct, stalking and retaliation, including support resources, how to report, and prevention and education efforts, can be found at: https://denison.edu/campus/title-ix .
This course has regular coding homework assignments, which will be scored primarily on completion (check-plus, check, check-minus scale). I will post written comments on each cluster of homeworks, and we will typically discuss homework solutions in class. I also reserve the right to add intermittent quizzes on material from readings and lectures if I feel that students are not completing the work as assigned or paying attention in class.
Both midterm exams will be in-class, individual assignments. They will both be cumulative to the date of the exam and will include a mix of questions related readings, lectures, and coding assignments. Additional questions may assess your synthesis of the course content. I will provide a study guide for each exam.
Our two major project assignments will be team-based and problem-focused. They will both require working with data, writing Python code to solve a problem or analyze a question, and explaining your work in the form of a written report. Each of these assignments will have more detailed written instructions, which will be shared on Github Classroom.
The final exam will be an in-person, individual assignment. It will take place on our scheduled final exam date, and it will cover material from the entire course. It will include a mix of questions related readings, lectures, and coding assignments. Additional questions may assess your synthesis of the course content. I will provide a study guide in class before the exam.
Note: Denison policy does not permit me to accommodate requests to reschedule your exam, except in the case of a medical or family emergency. Travel plans such as plane tickets do not count as a valid reason to reschedule, so please plan accordingly.
Weekly Rhythm
Monday | Wednesday | Friday |
---|---|---|
Hands-on activity, live-coding, etc. | Instructor slide presentations. | Discuss readings or do activity based on reading. Both midterms held on Fridays. |
Week 1: Python
(Monday, January 20, 2025 - Friday, January 24, 2025)
Learning Outcomes: Understand professor's expectations; identify the focus of the class
By Friday: Sign up for Github, Complete Course Survey
By Friday: Read "The Zen of Python" (https//peps.python.org/pep-0020/ ) and "Software Entropy," "Stone Soup and Boiled Frogs," "Good Enough Software," "Communicate!", *Pragmatic Programmer* pp. 6-13; 19-24 (on Canvas)
By Next Monday: Install Anaconda; install Github Desktop or set up credential on command line
Week 2: Python
(Monday, January 27, 2025 - Friday, January 31, 2025)
Learning Outcomes: Verify that all software dependencies are covered; review file paths, git/Github workflows, Jupyter Notebooks.
By Wednesday: Complete homework 1.1
By Friday: Read "Version Control," "Debugging," and "Naming Things" *Pragmatic Programmer* pp. 84-97 and pp. 238-242 (on Canvas)
By Next Monday: Complete homework 1.2
Week 3: Python
(Monday, February 03, 2025 - Friday, February 07, 2025)
Learning Outcomes: Understand and apply advanced python concepts (without pandas)
By Wednesday: Complete homework 1.3
By Friday: Complete homework 1.4
On Friday: Low-stakes review quiz
By Next Monday: Check out homework 2 from Github Classroom
Week 4: Tabular Data
(Monday, February 10, 2025 - Friday, February 14, 2025)
Learning Outcomes: Explain the philosophy of tabular data analysis in Python, pandas startup
By Wednesday: Complete homework 2.1
By Friday: Read Wickham, "The Split-Apply-Combine Strategy for Data Analysis" and "The Essence of Good Design," "DRY," *Pragmatic Programmer* pp. 28-39
By Next Monday: Complete homework 2.2
Week 5: Tabular Data
(Monday, February 17, 2025 - Friday, February 21, 2025)
Learning Outcomes: Use pandas to filter, subset, aggregate, arrange, and mutate rectangular data
By Wednesday: Complete homework 2.3
By Friday: Complete homework 2.4
By Next Monday: Read "Bowling Alone" excerpt (Canvas)
Week 6: Tabular Data
(Monday, February 24, 2025 - Friday, February 28, 2025)
Learning Outcomes: Prepare for and complete first midterm assessment
On Monday: Introduce Project 1
By Wednesday: Schedule 1-2 meetings with teammates to be held before Spring Break
On Friday: Midterm 1
By Next Monday: Check out homework 3 from Github Classroom; Read "Orthagonality," "Reversibility," "Decoupling," *Pragmatic Programmer* pp. 39-50; 130-137
Week 7: Relational Data
(Monday, March 03, 2025 - Friday, March 07, 2025)
Learning Outcomes: Understand theory of relational data, entities, relationships, data types, basics of SQL syntax
By Wednesday: Complete homework 3.1
By Friday: Complete homework 3.2
Week 8: Relational Data
(Monday, March 10, 2025 - Friday, March 14, 2025)
Learning Outcomes: Practice using SQLite/python to perform single-table data analysis operations
By Friday: Complete project 1
Spring Break
(Monday, March 17, 2025 - Friday, March 21, 2025)
Reminder: No class
Week 9: Relational Data
(Monday, March 24, 2025 - Friday, March 28, 2025)
Learning Outcomes: Practice using SQLite/python to perform multi-table data analysis operations
By Wednesday: Complete homework 3.3
By Friday: Read ER Diagrams Guide (nulab) and ERDs with draw.io
By Next Monday: Complete homework 3.4
Week 10: Relational Data
(Monday, March 31, 2025 - Friday, April 04, 2025)
Learning Outcomes: Prepare for and complete second midterm assessment
On Monday: Introduce Project 2
On Friday: Midterm 2
By Next Monday: Check out homework 4 from Github Classroom
Week 11: Hierarchical Data and Synthesis
(Monday, April 07, 2025 - Friday, April 11, 2025)
Learning Outcomes: Practice data munging and more advanced Pandas operations
By Wednesday: Complete homework 4.1
By Friday: Read "Refactoring," "Test to Code," *Pragmatic Programmer* pp. 209-224
Week 12: Hierarchical Data and Synthesis
(Monday, April 14, 2025 - Friday, April 18, 2025)
Learning Outcomes: Understand theory and affordances of hierarchical data
By Friday: Complete project 2
By Next Monday: Complete homework 4.2
Week 13: Hierarchical Data and Synthesis
(Monday, April 21, 2025 - Friday, April 25, 2025)
Learning Outcomes: Practice using json/python to traverse json files (and use APIs)
By Friday: Complete homework 4.3
Week 14: Hierarchical Data and Synthesis
(Monday, April 28, 2025 - Friday, May 02, 2025)
Learning Outcomes: Practice using python to traverse html files (web-scraping)
By Friday: Complete homework 4.4
Week 15: Exam Week
(Monday, May 05, 2025 - Friday, May 09, 2025)
Reminder: Last day of classes is Monday, May 5
Reminder: Final exam, in person, Thursday, May 8, 2:00-4:00 p.m.