This is a challenging course, covering the fundamentals of programming (program structure, flow control and basic data structures) as well as environmental and career-related topics related to computer science.

We will be using the Python 3 Tutorial on this site to cover the programming aspect of this course, supplemented by other non-programming materials (algorithm design, pseudocode, flowcharts) as indicated. I’m in the process of changing it from a topic-as-a-unit approach to a more introduce-topics-as-a-spiral approach, so bear with me.

Link to the Python 3 Tutorial

Prefer to learn from video tutorials? Try some of these series. Note that I have not watched all of them, so they may not cover 100% of this course, but they should provide a great starting point.

Students wishing to work ahead may find the following free books by Al Sweigart of interest. They are fantastic, easy-to-read, and full of great ideas.

Students who have programmed before, or students that are sufficiently motivated, may wish to try some of the programming challenges at Project Euler.

Want to do some Python programming outside of class?

Topics Covered

  1. History, Research and Careers
    1. Video: Pathways In Computer Science
    2. Video: Teaching Computers How to See
    3. Video: Modern Marvels, Creation of the Computer
  2. Computer Hardware and Data Representation
    1. Computer Hardware: Slides | Video 1 (short) | Video 2 (longer)
    2. How Computers Work: Slides
    3. Decimal, Binary and Hexadecimal: Slides
    4. ASCII and Unicode: Slides
  3. Getting Started With Python
  4. Conditional Processing
  5. Code Repetition
  6. Algorithm Design and Documentation
    1. Video: How to Cook Beef Stroganoff (and Fight Off a Ninja)
    2. Video: Honda: The Cog
    3. Video: The Page Turner
  7. Strings and String Formatting
  8. Tuples, Lists and Dictionaries
  9. User-Created Functions
  10. Environmental Impact of Computers
    1. Ghana: Digital Dumping Ground (PBS Documentary)
    2. The Story of Electronics