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  2. Introduction to Algorithm Design
Binary Games: Hex

Mon 9-16Quiz Ch 3
VP 20 & 21
3. Algorithm Design Techniques and Strategies

Wed 9-18  3. Algorithm Design Techniques and Strategies

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

Wed 9-25  4. Linked Lists

Mon 9-30Quiz Ch 5
C 106
5. Stacks and Queues

Wed 10-2  5. Stacks and Queues

Mon 10-7Quiz Ch 6 6. Trees

Wed 10-9  6. Trees

Mon 10-14Quiz Ch 7 7. Heaps and Priority Queues

Wed 10-16  7. Heaps and Priority Queues

Mon 10-21Quiz Ch 8 8. Hash Tabless

Wed 10-23  8. Hash Tables

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

Wed 10-30  9. Graphs and Algorithms

Mon 11-4Quiz Ch 10 10. Searching

Wed 11-6  10. Searching

Mon 11-11  Holiday

Wed 11-13  TBA

Mon 11-18Quiz Ch 11 11. Sorting

Wed 11-20  11. Sorting

Mon 11-25Quiz Ch 12 12. Selection Algorithms

Wed 11-27  12. Selection Algorithms

Mon 12-2Quiz Ch 13 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
5. Stacks and Queues
6. Trees
7. Heaps and Priority Queues
8. Hash Tables
9. Graphs and Algorithms
10. Searching
11. Sorting
12. Selection Algorithms
13. String Matching Algorithms

Projects

Enter Flags · Scoreboard
Please use a fake name

Prepare a Python Environment

Recommended

VP 11: Python 3 on 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)
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)

AI Code Generation

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

Last Updated: 9-7-24 5 pm