COMSC132: Programming Concepts & Methodologies II

Fall 2024 Sam Bowne

Mondays and Wednesdays from 12:45 to 2:10

To attend class online:
https://twitch.tv/sambowne

For interactive help, connect to:
https://zoom.us/j/4108472927
Password: student1

Schedule · Lecture Slides · Projects · Syllabus

Class Description

This course covers techniques relevant to program design and selection of data structures for larger programs. Topics covered include design techniques, effective use of recursion, algorithmic efficiency and O-notation, linked-lists, stacks, queues, trees, hash tables, heaps, graphs and sorting and searching techniques. Extensive programming of a variety of data structures is required.

Textbook

Hands-On Data Structures and Algorithms with Python: Store, manipulate, and access data effectively and boost the performance of your applications, 3rd Edition

Quizzes

The quizzes are multiple-choice, online, and open-book. However, you may not ask other people to help you during the quizzes. You will need to study the textbook chapter before the lecture covering it, and take the quiz before that class. Each quiz is due 30 min. before class. Each quiz has 5 questions, you have ten minutes to take it, and you can make two attempts. If you take the quiz twice, the higher score counts.

Use this Canvas server:

Enroll Here · View Course · Reset password

Schedule

DateDueTopic
Mon 8-26  Class Introduction


Wed 8-28  1. Python Data Types and Structures
Demo: VP 20


Mon 9-2  Holiday

Wed 9-4  Binary Games: Nybbles
Demos: VP 21, VP 23


Mon 9-9Quiz Ch 1 & 2
VP 11
2. Introduction to Algorithm Design
Binary Games: Bytes
Demos: VP 22, C 106


Wed 9-11  Demos: Binary Games: Hex , VP 24, VP 25


Mon 9-16Quiz Ch 3
VP 20 & 21
3. Algorithm Design Techniques and Strategies
Demos: VP 12, VP 26


Wed 9-18  3. Algorithm Design Techniques and Strategies
Demos: VP 27, VP 28


Mon 9-23Quiz Ch 4
VP 22 & 23
4. Linked Lists
Demo: VP 29


Wed 9-25  Demos: VP 23, VP 31


Mon 9-30Quiz Ch 5
C 106 & VP 12
5. Stacks and Queues
Demos: ED 102, more VP 26


Wed 10-2  Demos: C 101.5 (XOR), R 10, R 20


Mon 10-7Quiz Ch 6
VP 24 & VP 25
6. Trees
Demo: VP 32


Wed 10-9  Demos: C 101.6 (XOR), VP 30


Mon 10-14Quiz Ch 7
VP 26 & VP 27
7. Heaps and Priority Queues

Wed 10-16  7. Heaps and Priority Queues

Mon 10-21Quiz Ch 8
VP 28
CLASS ONLINE ONLY
8. Hash Tables

Wed 10-23  CLASS ONLINE ONLY
8. Hash Tables

Mon 10-28Quiz Ch 9
VP 29
9. Graphs and Algorithms

Wed 10-30  9. Graphs and Algorithms

Mon 11-4Quiz Ch 10
VP 30
10. Searching

Wed 11-6  10. Searching

Mon 11-11  Holiday

Wed 11-13  TBA

Mon 11-18Quiz Ch 11
VP 31
11. Sorting

Wed 11-20  11. Sorting

Mon 11-25Quiz Ch 12
VP 32
12. Selection Algorithms

Wed 11-27  12. Selection Algorithms

Mon 12-2Quiz Ch 13
VP 33
13. String Matching Algorithms

Wed 12-4  13. String Matching Algorithms

Mon 12-9  TBA

Wed 12-11  Last Class

Fri 12-13
through
Fri 12-20
  Final Exam available online throughout the week.
You can only take it once.

All Quizzes due 30 min. before class

Lecture Slides

1. Python Data Types and Structures · PDF · Keynote
2. Introduction to Algorithm Design · PDF · Keynote
3. Algorithm Design Techniques and Strategies · PDF · Keynote
4. Linked Lists · PDF · Keynote
5. Stacks and Queues · PDF · Keynote
6. Trees · PDF · Keynote
7. Heaps and Priority Queues · PDF · Keynote
8. Hash Tables
9. Graphs and Algorithms
10. Searching
11. Sorting
12. Selection Algorithms
13. String Matching Algorithms

Projects

Enter Flags · Scoreboard · Details
Please use a fake name

Prepare a Python Environment

Recommended

VP 11: Python 3 on Google Colab (10)
VP 12: Debugging in Google Colab (10)

Optional

VP 10: Python 3 Installed Locally (10 extra)
ML 125: Jupyter Notebook on a Mac M1 (10 extra)

Basic Data Types

VP 20: Arithmetic in Python (10 + 45 extra)
H 101-104: Binary Games (20 extra)
C 101.5 - 7: More Binary Games (15 extra)
VP 21: ASCII and Bytes in Python (10 + 25 extra)
VP 22: Lists and Dictionaries (15 + 10 extra)
VP 23: Crib Drag (15 + 35 extra)
C 106: The Rho Method (30)
VP 24: Assembly Code (15 + 10 extra)
VP 25: Ship Navigation (15 + 10 extra)
VP 26: Bus Schedules (15 + 50 extra)
VP 27: Bitmask (15 + 15 extra)
VP 28: Conway's Game of Life (25 + 55 extra)
VP 29: Parsing Arithmetic (15 + 30 extra)
VP 30: Tiles (15 + 60 extra)
VP 31: Allergens (15 + 15 extra)
VP 32: Combat Game (15 + 40 extra)

AI Code Generation

ML 160: GitHub Copilot (15 extra)
ML 161: Codeium (15 extra)
ML 131: Generating Python Code with Gemini (40 extra)

Assembly-Level

ED 30: Linux Virtual Machine (15 extra)
ED 202: Linux Buffer Overflow Without Shellcode (115 extra)

Rust

R 10: Rust Basics, Overflows, & Injection35 extra
R 20: Dangling Pointers & Memory Leaks in Rust35 extra

Last Updated: 10-9-25 4:23 pm