- Lecture
- M/W/F 10:30 AM - 11:20 AM
- Location
- 356A Fitzpatrick Hall
- Zoom Meeting
- 948 3826 0745
- Mailing List (Class)
- sp23-cse-30332-01-group@nd.edu
- Mailing List (Staff)
- sp23-cse-30332-01-staff-list@nd.edu
- Slack
- #cse-30332-sp23
CSE 30332 is a required Junior-level course in the Computer Science and Engineering program at the University of Notre Dame. This course will introduce the idea of Programming Paradigms to students. It is a course that is heavily focused on practical programming, reflected in the design of both the homework assignments and semester project. Upon successful completion of the course, students will be able to:
All slides shown during the tutorial will be available here after the lecture is delievered. If you have any specific questions or topics you would like to see covered please enter them in the google form below. This form is anonymous. Before every lecture I will select a few of the most common questions to cover in addition to the stated topics.
Question submission linkUnit | Date | Topics | Assignments |
---|---|---|---|
Unit 01: Functional Programming | |||
Introduction | Wed 01/18 |
Syllabus,
Introduction to Paradigms Slides Panopto |
Homework 01 Project Intro |
Functional Programming Theory and Review | Fri 01/20 |
Systems Programming Review,
Lambda Calculus, and
Lambda Functions Slides Panopto Code |
|
Mon 01/23 |
Why bother with Functional Programming,
Reviewing Recursion,
Closures, and
Continuation Passing Style Slides Panopto Code |
||
Applied Functional Programming in Python | Wed 01/25 |
Iterables,
Comprehensions,
Generators, and
Lazy Evaluation Slides Panopto Code |
|
Fri 01/27 |
car and cdr,
Sorting Slides Panopto Scheme Code Python Code |
||
Mon 01/30 |
Folding Slides Panopto Code |
||
Wed 02/01 |
Concurrency Slides Panopto Code |
||
Fri 02/03 | Flex Day 1 Slides Panopto Simple Threading Code |
||
Unit 02: Object-Oriented Programming | |||
OOP | Mon 02/06 | A Theoretical Introduction to Object Oriented Programming Slides Panopto (Failed to Record) Code |
Homework 02 |
Wed 02/08 |
UML Diagrams Slides Panopto |
||
Fri 02/10 | Project Workday | Project Checkpoint 01 | |
Mon 02/13 |
Inheritance Slides Panopto Code |
||
Wed 02/15 |
Composition and
Encapsulation Slides Panopto Code |
||
Fri 02/17 |
Polymorphism Slides Panopto Code |
||
Mon 02/20 |
Design Patterns Slides Panopto Singleton Code Factory Code |
||
ORM | Wed 02/22 |
SQLAlchemy 1 Slides Panopto SQL Code ORM Code |
|
Fri 02/24 | SQLAlchemy 2 (No Class) | ||
Flask | Mon 02/27 |
Flask Slides Panopto Code 1 Code 2 |
Homework 03 |
Wed 02/29 |
Combining Flask and SQLAlchemy Slides Panopto Database Code |
||
Fri 03/03 | Flex Day 2 Slides Panopto Scoping Code |
||
Exam 01: Midterm Exam | |||
Midterm Exam | Mon 03/06 | Midterm Review Panopto |
Study Guide |
Wed 03/08 | Midterm Exam | Exam 01 | |
Fri 03/10 | Project Workday | Project Checkpoint 02 Midterm Cif | |
Spring Break | |||
Unit 03: Basic Front-End Development | |||
Reviewing Flask | Mon 03/20 |
Flask endpoints Slides Panopto Code |
|
Wed 03/22 |
Flask templating Slides Panopto Flask Endpoints About HTML Base HTML |
||
HTML | Fri 03/24 |
Introduction to HTML Slides Panopto |
|
Mon 03/27 |
HTML Tags and Elements Slides Panopto |
||
Wed 03/29 |
HTML Forms and Flask Slides Panopto Flask Forms HTML Form 1 HTML Form 2 |
||
Fri 03/31 |
Flask Session Variables Slides Flask Session HTML Session 1 HTML Session 2 (AJAX) |
||
Mon 04/03 | HTML Tables and Lists | Homework 04 | |
CSS | Wed 04/05 | Introduction to CSS | |
Easter Break | |||
CSS | Wed 04/12 | CSS Selectors and Properties | |
Fri 04/14 | CSS Box Model and Layout | Project Checkpoint 03 | |
Unit 04: Javascript | |||
Javascript | Mon 04/17 | Introduction to Javascript | Homework 05 |
Wed 04/19 | Javascript Variables, Datatypes, and Operators | ||
Fri 04/21 | Javascript Functions, Conditionals, and Loops | ||
Mon 04/24 | Javascript DOM Manipulation and Events | ||
Wed 04/26 | Javascript AJAX and JSON | ||
Fri 04/28 | Javascript Frameworks: React and Angular | ||
Mon 05/01 | Javascript Libraries: jQuery and D3 | ||
Wed 05/03 | Project Workday | Project Checkpoint 04 |
For the assignments in this class, you may discuss with other students and consult printed and online resources. You may quote from books and online sources as long as you cite them properly. However, you may not look at another student's solution, and you may not copy any significant portions of other's solutions. Furthermore, you may not utilize AI powered tools such as Co-Pilot or Tabnine for any of your programming assignments.
The following table summarizes how you may work with other students and use print/online sources:
Resources | Solutions | AI Tools | |
---|---|---|---|
Consulting | Allowed | Not Allowed | Not Allowed |
Copying | Cite | Not Allowed | Not Allowed |
See the CSE Guide to the Honor Code for definitions of the above terms.
If an instructor sees behavior that is, in his judgement, academically dishonest, he is required to file either an Honor Code Violation Report or a formal report to the College of Engineering Honesty Committee.