Course To Do List Submit a question for class

Other Useful Information
Associated Reading and Other Resources
Tests
----- Part 1 : Basic structures -----
Module 1 : Getting Started

In this module we'll introduce terms and establish foundational information needed to understand future modules.


Module Concepts: course introduction; introduction to computational thinking; different ways to write and run a Python application; Hello World in Python; algorithms; flowcharting; and Python turtle


Supporting Material:
Assignments:
Demo Code:
Module 2 : Variables, Arithmetic Operations, & Conditionals

Now that you've got your environment setup and you can write basic code, it's time to exapand on that and add some basic tools to your toolbox. In this module, you'll learn about variable use, basic math, and if statements.


Module Concepts: Variables; data types; strings; boolean variables; conditionals; nested conditionals; debugging; and style


Supporting Material:
Assignments:
Demo Code:
Module 3 : Functions and Testing

Software developers prefer to write as few lines of code as possible. After all, we don't get paid by the line. In this module we'll go through how to make repeatable blocks of code called functions so we can reuse helpful code over and over.


Module Concepts: Functions; proper main file setup; comments; testing


Supporting Material:
Assignments:
Demo Code:
Module 4 : While Loops

The foundations of all algorithms are sequence, selection, and iteration. We've explored the first two now let's look at iteration.


Module Concepts: Sequence, Selection, and Iteration; counting while loops; conditional while loops; infinite while loops; break and exit; continue; validating user input; nested while loops; debugging iteration


Supporting Material:
Assignments:
Demo Code:
Module 5 : Strings and Lists

We'll come back to iteration next module. For this week, I want you to practice what you've learned and add lists to your coding tool box.


Module Concepts: Strings; objects in memory; immutable and mutable objects; reading official documentation; lists and tuples; lists of lists; pass by reference vs pass by value


Supporting Material:
Assignments:
Demo Code:
Module 6 : for Loops

Previously you were introduced to counting while loops. We don't typically use counting while loops. We have a much better structure for that. This week we'll learn about the for loop.


Module Concepts: Counting for loops; iterating through a string; iterating through a list structure; indexing with a for loop; nested for loops


Supporting Material:
Assignments:
Demo Code:
----- Part 2 : Preparing you for the future-----
Module 7 : Recursion

These modules are designed to give you more practice in coding and help prepare you for more complex classes by introducing you to intermediate and advanced topics. With this first one we will explore recursion. Make sure you that you walk through the process slowely and that you understand what's going on. Don't program by accident.


Module Concepts: Recursion; the execution stack; solving problems with recursion


Supporting Material:
Assignments:
Demo Code:
Module 8 : Error Handling

It's time to learn some more about design. Never trust your users other coders, or even your future self to do the right thing. Make it so they have no choice. In this module you'll learn how.


Module Concepts: Defensive programming, isinstance, built in errors, raise, and try/except


Supporting Material:
Assignments:
Demo Code:
Module 9 : Dictionaries and Sets

In this module we will take a short look at data structures within Python. This is an extensive topic that you will be exploring this in much more detail in future courses.


Module Concepts:Dictionaries, sets


Supporting Material:
Assignments:
Demo Code:
Module 10 : Classes and Objects

You've been using objects, but did you know you can create your own? In this module you'll learn exactly how. Make sure to get the basics down. We'll have an entire class 5004 that explores this concept extensively.


Module Concepts: Classes, objects, constructors, tests


Supporting Material:
Assignments:
Demo Code:
Module 11 : Stacks and Queues

Using the correct data structure can make certain tasks much easier and more efficient. We will explore this idea further in this module by examining stacks and queues.


Module Concepts: basic data structures, stacks, queues


Supporting Material:
Assignments:
Demo Code:
Module 12 : Effciency: Searching & Sorting


Module Concepts:


Supporting Material:
Assignments:
Demo Code: