Skip to content

Latest commit

 

History

History
70 lines (59 loc) · 1.93 KB

overview.md

File metadata and controls

70 lines (59 loc) · 1.93 KB

Lab contents

Contents and instructional goals for spring 2015 semester.

Lab 1 - Introduction to Linux and Python

  • Python as calculator (basic operators)
  • Python interpreter
  • Difference between float and int -- talk a bit about float, int (, maybe str)
  • Variables
  • Read the docs!

Lab 2 - Basic Flow Control

  • Boolean logic
  • Types (int, str, float, bool)
  • Conditionals: if/elif/else
  • Loops: while
    • both while waiting for something and doing a set number of times - poor man's for loop
  • Basic string formatting
  • input()
  • Turtle
  • Keywords: and, or, not, if, else, elif, while, import

Lab 3 - Functions

  • Functions
    • Positional and Optional Arguments
    • Recursion
  • Modules
    • import statements
    • main() boilerplate
  • Comments and PEP-8 style
  • Keywords: def

Lab 4 - Lists and Strings

  • Lists
  • Strings
  • For loops
  • Slicing
  • Keywords: in (not in), for
  • Maybe range(), but I think we should focus more on for loops being used in the style of "for each"
  • Talk about types again -- we now have float, int, str, list(, function)
  • matplotlib

Lab 5 - File I/O and matplotlib

  • File I/O using with
  • matplotlib
  • data processing for exercises

Lab 6a and 6b - Collections (6b during midterms)

  • dictionaries, lists, tuples, sets

Lab 7 - Programming Competition (post-midterm lab)

  • algorithm development (redo some questions!)

Labs 8 through 12 - undecided

Foci

  • Algorithm development, critical thinking
    • Introduce common CS algorithms early: binary search, sorting
      • Take a peek at the Google interview prep, programming pearls, and the Cormen book to find good candidates
    • Play around with interdisciplinary themes: genetics, linguistics, physics, image processing
  • Earlier labs: use turtle to demonstrate basic concepts
  • Later labs: start building ONE final project

Possibilities for later labs

  • Functions as first-class citizens
  • Higher order functions
  • Lambda functions
  • Generators
  • Object-oriented?