Course Content Lessons

Lesson Topic
00 Course Introduction
01 Introduction to Programming
02 Introduction to Python
03 Variables and Types
04 Conditionals
05 Iterations
06 Functions
07 Strings
08 Files
09 Lists
10 Dictionaries
11 Web Services and API’s
12 Data Analysis
13 Visualization

Lesson 00: Course Introduction

Overview

In this lesson we learn:

  • What is this course about?
  • Course content, how you will be evaluated, course policies and procedures.
  • Instructor expectations of students in and out of class and getting help.
  • How the technologies we used in the course keep you engaged and help you to learn.
  • How to access the components of the course: Zybook, Github, gitter.im, SU Google, Zybook Participationzes, and attendance and class participation.

Resources

What’s Due?

  • There are no graded work is due but you must complete the Course Setup Checklist by first recitation. Next we we start programming and your laptop needs to be setup!

Lesson 01: Introduction To Programming

Overview

This lesson we learn: - What is programming? Why do it? Why is it difficult? Why programming is a critical 21st century skill? What does it take to be a good programmer? - The input-process-output model, how computers process programs, interpreters / compilers, syntax /semantics, code and execution. - Source code management with Git and GitHub.

Resources

What’s Due?

  • Coding Lab [L01]
    • The lab can be found in part 2 of the Programming walk-through.
    • You will turn in your lab as part of the walk-through.
    • this lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H01]
    • The homework can be found in part 3 of the Programming walk-through.
    • Turn in your homework by following the git submission procedure outlined in the document.
    • This must be completed by end of the week: Saturday evening 11:59pm

Lesson 02: Introduction to Python

Overview

This lesson we learn:

  • What is Python? What are the advantages / disadvantages of the language? How does it compare with other programming languages?
  • The Jupyter Notebook environment. How to execute programs from the Jupyter environment.
  • Python programming language basics. Print, Assignment and Input statements.
  • Writing simple programs in Python following the Input / Process / Output model.
  • Python source code management with Git and GitHub.

Resources

What’s Due?

  • Zybook Participation [Z01]
    • Chapter 1 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L02]
    • The lab is in your Git repository folder: content/lessons/02/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H02] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/02/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 03: Variables and Types

Overview

This lesson we learn:

  • What is a variable? What is its purpose?
  • Variable assignment, and access.
  • Different data types for variables.
  • How to input variables of various types, check types, convert types, and print variables with formatting.
  • Arithmetic expressions, arithmetic operators, and operands.

Resources

What’s Due?

  • Zybook Participation [Z02]
    • Chapter 2 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L03]
    • The lab is in your Git repository folder: content/lessons/03/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H03] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/03/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 04: Conditionals

Overview

In this lesson we learn:

  • How to make our code execute in a non linear fashion through the use of conditionals.
  • Relational and logical operators for making boolean expressions which form the basis of our decisions.
  • Different types of non-linear execution like conditional excution, alternative execution, chaining, and nesting, and their appropriate uses.
  • How to handle run-time errors with try..except.

Resources

What’s Due?

  • Zybook Participation [Z03]
    • Chapter 3 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L04]
    • The lab is in your Git repository folder: content/lessons/04/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H04] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/04/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 05: Iterations

Overview

In this lesson we learn:

  • How to make our code execute in a non linear fashion through the use of iterations, or loops.
  • The while loop for indefinite looping, infinite loops, and the break and continue statements
  • How to build complex loops easily.
  • Definite loops (for loops) and iterators.

Resources

What’s Due?

  • Zybook Participation [Z04]
    • Chapter 4 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L05]
    • The lab is in your Git repository folder: content/lessons/05/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H05] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/05/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 06: Functions

Overview

In this lesson we learn:

  • How to use other functions in modules.
  • How to inspect module contents and get help on functions.
  • The anatomy of custom functions: arguments, named arguments, return values
  • How to modularize our code with custom functions.

Resources

What’s Due?

  • Zybook Participation [Z05]
    • Chapter 5 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L06]
    • The lab is in your Git repository folder: content/lessons/06/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H06] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/06/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 07: Strings

Overview

In this lesson we learn:

  • Strings as an immutable sequence of characters.
  • Index and Slice notation for retrieving sub-strings.
  • Built-in string functions to perform operations on strings.
  • Techniques for parsing and tokenizing string data.
  • How to sanitize input with string functions.

Resources

What’s Due?

  • Zybook Participation [Z06]
    • Chapter 6 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L07]
    • The lab is in your Git repository folder: content/lessons/07/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H07] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/07/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 08: Files

Overview

In this lesson we learn:

  • The importance of a persistence layer in programming.
  • How to read and write from files.
  • Techniques for reading a file a line at a time.
  • Using exception handling with files.

Resources

What’s Due?

  • Zybook Participation [Z07]
    • Chapter 7 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L08]
    • The lab is in your Git repository folder: content/lessons/08/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H08] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/08/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 09: Lists

Overview

In this lesson we learn:

  • Lists as a mutable sequence of values.
  • Indexing list values; slice notation.
  • List functions and operations like add, remove, update, find
  • Common patterns for list management.

Resources

What’s Due?

  • Zybook Participation [Z08]
    • Chapter 8 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L09]
    • The lab is in your Git repository folder: content/lessons/09/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H09] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/09/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 10: Dictionaries

Overview

In this lesson we learn:

  • Dictionaries as key-value pairs.
  • Basic dictionary operations such as getting/setting keys and values
  • Common dictionary use cases, such as representing complex objects.
  • List of dictionary as an in-memory database of objects.
  • Using the json library to load and save dictionaries to files.

Resources

What’s Due?

  • Zybook Participation [Z09]
    • Chapter 9 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L10]
    • The lab is in your Git repository folder: content/lessons/10/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H10] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/10/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 11: Web Services and APIs

Overview

In this lesson we learn:

  • How the web works!
  • Making HTTP requests using Python requests
  • Parsing json into lists of dictionaries
  • General procedure for reading and calling API’s on the web.

Resources

What’s Due?

  • Coding Lab [L11]
    • The lab is in your Git repository folder: content/lessons/11/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 11:59pm before your recitation day.
  • Homework [H11] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/11/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 12: Data Analysis

Overview

In this lesson we learn:

  • What exactly is Pandas
  • What is data analysis?
  • How can Pandas help you perform data analysis?
  • Managing Pandas data structures.

Resources

What’s Due?

  • Coding Lab [L12]
    • The lab is in your Git repository folder: content/lessons/12/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 12:59pm before your recitation day.
  • Homework [H12] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/12/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm

Lesson 13: Visualization

Overview

In this lesson we learn:

  • Why information visualization is important
  • The various ways to visualize information
  • The basic requirements for any visualization
  • How to plot complex visualizations such as multi-series charts and maps

Resources

What’s Due?

  • Zybook Participation [Z10]
    • Chapter 10 Participation Activities
    • It must be completed by 3pm on lecture day.
  • Coding Lab [L13]
    • The lab is in your Git repository folder: content/lessons/13/Class-Coding-Lab
    • Turn in your completed lab using the git submission procedure.
    • Lab must be completed by the end of the day 13:59pm before your recitation day.
  • Homework [H13] Now You Code - as Assigned by your Recitation Instructor
    • The homework assignment can be found in your git repository folder content/lessons/13/Now-You-Code/
    • Turn in your homework using the git submission procedure.
    • Must be completed by end of the week: Saturday evening 11:59pm