# Programming Foundations with Python: Intermediate

## Summary

In this course, we'll delve a little deeper into working with data structures such as strings, lists, sets, dictionaries, as well as other sequences and collection. We'll also learn how to work with comprehensions, particularly in conjunction with the widely-used list type. Finally, we'll fine-tune our problem-solving process and learn to use it by working on more complex program, and get familiar with using debugging tools.

#### Major Topics

• Python Collections: numbers, strings, ranges, lists, tuples, sets, dictionaries
• Iteration in Python: `for`, `while`, and comprehensions
• Iterable Unpacking
• The PEDAC process for problem solving
• Selection and Transformation
• Sorting
• Nested Data Structures
• Debugging with pdb
• Project: Tic Tac Toe
• Project: Twenty-One

## Phase

Programming and Back-end Development

## Detailed Syllabus

#### Python Sequences and Collections

• Introduction to Collections in Python
• Sequences
• Dictionaries, Sets and Frozen Sets
• Working with Strings and Ranges
• Working with Lists and Tuples
• Working with Dicts, Sets, and Frozen Sets
• Unpacking Iterables in Python
• Introduction to the PEDAC Process
• The PEDAC Problem Solving Process
• PEDAC Guided Practice: Leftover Blocks
• PEDAC Guided Practice: Sort by Most Adjacent Consonants
• Selection and Transformation
• Practice Problems

#### Advanced Sequences and Collections

• Sorting
• Nested Data Structures
• Comprehensions
• Practice Problems

#### Slightly Larger Programs

• Debugging with pdb
• Tic Tac Toe Problem Decomposition
• Tic Tac Toe - Step 1 - Set Up and Display the Board
• Tic Tac Toe - Step 2 - Player and Computer Turn
• Tic Tac Toe - Step 3 - The Main Game Loop
• Tic Tac Toe - Step 4 - Determining the Winner
• Assignment: TTT Bonus Features
• Assignment: Twenty-One
• Possible Solution: Twenty One
• PyLint Twenty-One
• Assignment: Twenty-One Bonus Features
• Start a Blog