CSE 10102/CDT 30020 is the second course in the core programming sequence in the Computing & Digital Technologies Minor. Building on your prior experience with the Python programming language, you will explore advanced programming paradigms such as regular expressions and object-oriented programming, familiarize yourself with elements of software engineering such as the command line interface, version control, development environments, and testing, and utilize web technologies such as SQL databases, JavaScript, and cloud-based services. To demonstrate your mastery of these skills and concepts, you will work on interdisciplinary team projects throughout the semester that apply your knowledge to problems related to the different CDT areas of focus.

Upon successful completion of this course, students will be able to:

  1. Navigate command-line based environments effectively and productively.

  2. Construct object systems to model complex systems, and to employ regular expressions to process large streams of data.

  3. Package and deploy software as stand-alone scripts, library packages, or web services.

  4. Utilize common software engineering tools and explain how they aid in the process of producing software.

  5. Develop applications that incorporate different web development technologies such as SQL databases, JavaScript, and cloud-based platforms.

  6. Describe the key components of a typical web application and how all the pieces fit together.

Class Information

T/TH 2:00 PM - 3:15 PM
356A Fitzpatrick Hall
Mailing List (Class)
Mailing List (Staff)
Project 01


Peter Bui (pbui@nd.edu)
Office Hours
M/W/F 2:00 PM - 4:30 PM, and by appointment
Office Location
350 Fitzpatrick Hall

Teaching Assistants

Graduate Teaching Assistant
Louis Faust (lfaust@nd.edu)
Office Hours
Monday, 5:00 PM - 9:00 PM
Office Location
La Fortune (East, West, 1st Floor)
Undergraduate Teaching Assistant
Megan Fink (mfink2@nd.edu)
Office Hours
Wednesday, 8:00 PM - 10:00 PM
Office Location
Undergraduate Teaching Assistant
Owen Zidar (ozidar@nd.edu)
Office Hours
Thursday, 3:30 PM - 5:30 PM
Office Location
Engineering Library

Help Protocol

  1. Think
  2. IRC
  3. Think
  4. Email
  5. Think
  6. Office
Unit Date Topics Assignment
Unix 01/12 Introduction, Syllabus, Unix Shell Slides Slides Reading 00
01/14 Raspberry Pi, Git Slides
Packaging 01/19 Scripts, Modules Slides Reading 01
01/21 Packages
Object-Oriented Programming 01/26 OOP Concepts Slides Reading 02
Project 01: DrawIt 01/28 Sprint
02/02 Sprint
02/04 Study Guide 01 Debriefing 01 Project 01
Server-side Programming 02/09 HTML, HTTP Slides Reading 03
02/11 Tornado Files
Databases 02/16 Databases, SQL Slides Reading 04
02/18 Python, SQLite Files
02/23 Relational Databases Slides Reading 05
Project 02: SearchIt 02/25 Sprint
03/01 Sprint
03/03 Sprint
Spring Break
Project 02: SearchIt 03/15 Tornado Templates Reading 06
03/17 Review Project 02
03/22 Study Guide 02 Debriefing 02
Client-side Programming 03/24 HTML, CSS Slides
03/29 Bootstrap Slides Reading 07
03/31 JavaScript Slides
04/05 AJAX Slides Files Reading 08
Project 03: PlayIt 04/07 Sprint
04/12 Sprint
04/14 Sprint
04/19 Review
04/21 Study Guide 03 Debriefing 03 Project 03
Final Project 04/26 Planning, Design Reading 09
05/06 Project Presentations


Component Points
Readings Weekly reading assignments and corresponding writing prompts. 8 × 5
Projects Focused group programming projects. 30 + 40 + 40
Debriefings Examinations after each project. 25 + 35 + 35
Final Project Open-ended group programming project. 40 + 15
Total 300


Grade Points Grade Points Grade Points
A 280-300 A- 270-279
B+ 260-269 B 250-259 B- 240-249
C+ 230-239 C 220-229 C- 210-219
D 180-209 F 0-179

Bitbucket Repository

All your Readings and Projects are to be submitted to your own private Bitbucket repository.

  • Readings are due at midnight on the night before the day assigned in the schedule above (ie. Monday → Tuesday).
  • Projects are due at midnight on the night the day assigned in the schedule above (ie. Tuesday→ Wednesday).



Students are expected to attend and contribute regularly in class. This means answering questions in class, participating in discussions, and helping other students.

Foreseeable absences should be discussed with the instructor ahead of time.

Classroom Recording

Notre Dame has implemented an Echo360 classroom recording system. This system allows us to record and distribute lectures to you in a secure environment. You can watch these recordings on your computer, tablet, or smartphone. The recordings can be accessed within Sakai. Look for the tool labeled "Echo360 ALP" on the left hand side of the course.

Because we will be recording in the classroom and/or using an active learning environment, your questions and comments may be recorded. (Video recordings typically only capture the front of the classroom.) If you have any concerns about your voice or image being recorded, please speak to me to determine an alternative means of participating. No content will be shared with individuals outside of your course without your permission except for faculty and staff that need access for support or specific academic purposes.

These recordings are jointly copyrighted by the University of Notre Dame and your instructor. Posting them to other websites, including YouTube, Facebook, Vimeo, or elsewhere without express, written permission may result in disciplinary action and possible civil prosecution.

Late Work

In the case of a serious illness or other excused absence, as defined by university policies, coursework submissions will be accepted late by the same number of days as the excused absence.

Otherwise, there is a penalty of 25% per day late (except where noted). You may submit some parts of an assignment on time and some parts late. Each submission must clearly state which parts it contains; no part can be submitted more than once.

Honor Code

All work that you submit must be your own. Collaboration is encouraged but must be disclosed by all parties. Print or online resources are allowed, but must be disclosed. However, you may not look at solutions from other current or past students, or any other source.

Students with Disabilities

Any student who has a documented disability and is registered with Disability Services should speak with the professor as soon as possible regarding accommodations. Students who are not registered should contact the Office of Disabilities.


All of the course textbooks are freely available online.


All of the course software is freely available online.

  • Python

    The official Python programming language website.

  • Anaconda

    A large and relatively complete Python distribution for large-scale data processing, predictive analytics, and scientific computing.

  • Enthought Python Distribution

    A free lightweight Python distribution geared towards scientific computing.

  • PythonXY

    Python(x,y) is a free scientific and engineering development software for numerical computations, data analysis and data visualization.

  • Sage Math

    A free open-source mathematics software system.


These are additional resources and references that may be useful.