Table of Contents
CSE 30332 - Programming Paradigms

Programming Paradigms

CSE 30332


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 link

Logistics


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
Instructor
Bill Theisen (wtheisen@nd.edu)
*Professor Theisen, Professor Bill, Bill
Office Hours
M/T/W/R 1:00 PM - 3:00 PM, and by appointment
Office Location
150A Fitzpatrick Hall (CSE Commons)
Graduate TA
Nhat Le (nle5@nd.edu)
Undergraduate TA
Gavin Uhran (guhran@nd.edu)
Office Hours
M/W 3:00PM - 4:30PM
Office Hours Location
Innovation Lounge (Duncan Student Center)

Schedule


Unit 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
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
Applied Functional Programming in Python Mon 01/30 Folding
Slides Panopto Code
Wed 02/01 Concurrency
Fri 02/03 Flex Day 1
Unit 02: Object-Oriented Programming
OOP Mon 02/06 TBA Homework 02
Wed 02/08 TBA
Fri 02/10 Project Workday Project Checkpoint 01
Mon 02/13 TBA
Wed 02/15 TBA
Fri 02/17 TBA
Mon 02/20 TBA Homework 03
Wed 02/22 TBA
ORM Fri 02/24 TBA
Mon 02/27 TBA
Flask Wed 02/29 TBA
Fri 03/03 TBA
Exam 01: Midterm Exam
Midterm Exam Mon 03/06 Midterm Review Homework 04
Wed 03/08 Midterm Exam Exam 01
Fri 03/10 Project Workday Project Checkpoint 02
Spring Break

Requirements


Component Points
Homeworks Bi-weekly individual assignments. 6 × 75
Project Individual Semester project. 4 × 25: Project Checkpoints
1 × 100: Final Submission
Exams Two timed exams. 1 × 150: Midterm
1 × 200: Final
Total 1000
Grade Points Grade Points Grade Points
A 930-1000 A- 900-929
B+ 870-899 B 830-869 B- 800-829
C+ 770-799 C 730-769 C- 700-729
D 600-699 F 0-599

Policies


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

Recalling one of the tenets of the Hacker Ethic:

Hackers should be judged by their hacking, not criteria such as degrees, age, race, sex, or position.

Students are expected to be respectful of their fellow classmates and the instructional staff.

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.

Any academic misconduct in this course is considered a serious offense, and the strongest possible academic penalties will be pursued for such behavior. Students may discuss high-level ideas with other students, but at the time of implementation (i.e. programming), each person must do his/her own work. Use of the Internet as a reference is allowed but directly copying code or other information is cheating. It is cheating to copy, to allow another person to copy, all or part of an exam or assignment, or to fake program output. It is also a violation of the Undergraduate Academic Code of Honor to observe and then fail to report academic dishonesty. You are responsible for the security and integrity of your own 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, late submissions will not be accepted and will be marked as a 0.

This course will be recorded using Zoom and Panopto. This system allows us to automatically record and distribute lectures to you in a secure environment. You can watch these recordings on your computer, tablet, or smartphone. In the course in Sakai, look for the "Panopto" tool on the left hand side of the course.

Because we will be recording in the classroom, your questions and comments may be recorded. Recordings typically only capture the front of the classroom, but if you have any concerns about your voice or image being recorded please speak to me to discuss your concerns. Except for faculty and staff who require access, no content will be shared with individuals outside of your course without your permission.

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

Honor Code


CSE Guide to the Honor Code

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.