CS 111 f21 — Introduction; A Notional Machine

Table of Contents

1 Personal

  • Name: Aaron Bauer, "Aaron" or A-A-ron
    • Starting my third year at Carleton, live here in Northfield
    • Before this I was doing my PhD at University of Washington in Seattle
  • Interests:
    • games
    • musical theater
    • history
    • politics
    • hiking
    • latest obsessions: Imperial Struggle, D&D
  • Goals for 111
    • (a) convince you that computer science generally and programming specifically are useful tools for solving all sorts of problems
    • (b) give you the skills you need to put this tool to use
    • not mastery of every aspect, but knowing "this is the sort of thing a computer would be good at, and here's how it might do it"
  • takes hard work, persistence
    • my first programming experience was a bit of an emotional rollercoaster
  • nothing magic or innate required
    • Assuming no prior experience whatsoever!
  • help from me, our prefect, our course staff, esp. fellow students

2 Prefect Info

3 Syllabus (course web page)

  • calendar
  • grade breakdown
    • homework (50%)
      • 7 labs, 3 individual, 4 in assigned pairs
    • quizzes (25%)
      • 7 weekly quizzes, posted Friday, due 9pm Monay
      • online, untimed, unlimited attempts
      • intended to help you check your understanding and practice concepts from class
    • final project (25%)
      • you (solo or with a partner of your choice) propose a project of your own design
  • Inclusivity

    Please treat your classmates with kindness and respect, both inside the classroom and out. Classrooms can be vulnerable environments; asking questions and expanding our understanding of new concepts requires us to reveal over and over again that we don't fully know something. It's okay to not know everything immediately! It's not okay to make people feel bad about what they don't know. Our individual differences enrich and enhance our understanding of one another and of the world around us. This class welcomes the perspectives of all ethnicities, genders, religions, ages, sexual orientations, disabilities, socioeconomic backgrounds, regions, and nationalities.

  • Late days
    • 4 late days, used in 24-hour chunks, email me before the homework is due, both partners must have available late days to use them
  • Collaboration
    • You should never be in possession of a (paper or electronic) copy of a classmate's code before the due date for the assignment
    • when getting help, that consultation should be in English and not in Python
    • Need to be able to explain anything you submit, give credit where credit is due
  • Office hours
    • My office (Olin 339) 10-noon Mondays, 4:30-5:30pm Wednesdays
    • The lab (Olin 310) 7:30-9pm Tuesdays
    • Email me to set up other times!
  • Lab assistants in Olin 310 from 1pm onwards most days
  • advice from students in previous terms: start early and ask for lots of help!

4 Writing your name

  • Instructions
    • pen down
    • pen up
    • move with angle and distance
  • Algorithm for AARON
  • Activity: write the algorithm for your own name
    • swap with neighbor, try and execute their algorithm

5 Programming

  • computers are dumb, instruction-following machines
    • pass the salt example
  • always lots of ways to accomplish the same thing
    • I will present a way of doing things that will be helpful to you
  • model of computation (a notional machine)
  • computer scientists borrowed a lot of math terms and symbols for only somewhat similar concepts
  • I'm excited to share my passion for CS with you
    • but you don't need to be a programmer or love programming to find it a handy tool to have in your toolbox