Welcome!
COMP_SCI 111
About Me - Prof. Connor Bain
Undergrad at the University of South Carolina in Computer Science, Math, and Music
MS/PhD from Northwestern University in Computer Science and Learning Sciences
I'm the Faculty Chair at Willard Residential College
Other classes I teach:
CS 110 - Introduction to Computer Programming
CS 212 - Mathematical Foundations of Computer Science
CS 396 - Communicating Computer Science
CS 397/497 - Pedagogical Design in CS
My research focuses on the idea of computational literacy (both from a design and a cognitive perspective). My office is Tech L374.
The goal of this class is not to manufacture expert programmers. Our goal is to build your computational literacy–your ability to see the world as computable. We'll do this by learning how to reason about and design computer programs.
Course Tenets
This is a learning community
Lecture 0
What is computation? + Course Overview
Plan for Today
What’s the information revolution?
The first tool that strengthened the power of his brain rather than his arm.
Cultural changes?
but what is computing?
The functional model of computation
A computation
input(s)
output
COMPUTE
The functional model
f(input) = output
Question answering
Q: What’s seven plus three?
Pretty much everyone agrees that this is a case of computation
A: Ten
What’s <really-big-number>�plus <other-really-big-number>?
What’s different here?
Behavioral equivalence
speech
speech
writing
writing
add1
add2
write
read
What do we compute with?
Everything in this lecture is data
Programmability
Who can program?
Course Overview
COMP_SCI 111
Intro programming sequence
By the end, you’ll know all the basics of CS as well as have experience with a number of different programming languages.
This course
Functional programming
What if I’m interested in CS but I don’t want to major in it?
There are several other formal options for you to consider:
big course ideas
Computation is a tool
Computation is a medium of expression
Computation is language for biology
Computation is language for art
Computation is language for psychology
Computation is language for…
Computation is a playground
Major course themes
Aesthetic values in program design
Programming as com/position
https://youtu.be/BC7P89dw9HQ?si=x1I6PcHaAAuNhHQ9
Skill Building
1. composing programs
2. decomposing / debugging programs
3. communicating about programs
administrative stuff
Class Rhythm
Partially flipped classroom
Note, there are a few exceptions to this rhythm as noted on the Course Schedule on Canvas.
Tutorial Sessions
Homework Exercises
Ethics Modules
Mini-Quizzes
Quizzes
Quiz | Focus Topic |
Q1 | Fundamentals |
Q2 | Recursion |
Q3 | Imperatives |
Q4 | Summative |
Academic Integrity
Attendance
Other Class Resources
Difficulty curve of the course
Writing
functions
Lists and
higher order functions
Recursive functions
Imperative programming
and object-oriented programming
For Friday…
On Friday in class we'll…