CSC 151.01, Class 01: An introduction to algorithms
Overview
- Preliminaries
- Notes and news
- Upcoming work
- Extra credit
- Questions
- Introduction - What is CS?
- Exercise - An everyday algorithm
- Debriefing on exercise
- Common parts of an algorithm
- Friday PSA
News / Etc.
- Welcome to CSC 151!
- I’m Sam (or SamR)
- Your class mentors are Hongyuan, Jemuel, and Marli.
- You should have received four handouts at the start of class.
- A playing card
- The CS Department Academic Honesty Policy
- Assignment 1
- A packet of readings
- Reading: Algorithms
- Reading: Linux
- Reading: The DrRacket Programming Environment
- Reading: Beginning Scheme
- Since it’s the first day of class, I’ll be taking attendance. (It will take
a few weeks for me to learn all of your names; even more than normal because
I’m teaching approximately 150 students this semester.)
- “Hi, my name is FORENAME SURNAME.”
- “You can call me PRIMARY NAME.”
- “If you must address me by surname, you can call me Mr./Ms./Mx./[nothing] SURNAME.”
- I’m from …
- Optional: “My pronouns are ….”
- Disclaimers
- Sam is slightly hard of hearing.
- Sam is incredibly snarky. (Sam = Snarky and mean)
- Contact Sam if you would like to be on the department mailing list.
Upcoming Work
- Assignment 1 Due Sunday night.
- Readings (handed out today), due before class Monday.
- Signed academic honesty policy due in class on Wednesday.
- If you are uncomfortable signing it, make an appointment to chat with me.
Extra credit (Academic)
- CS Table, noon, Tuesday, Whale Room (I hope)
Extra credit (Peer)
- Men’s Soccer 4:30 p.m. against Luther Norse on the Soccer Fields
Good things to do
- Ag Days in Grinnell, Thursday the 31st. More info forthcoming.
Questions
- How do we get extra credit?
- Email me a reflective paragraph within two days of the event.
- You may not understand what I’m asking, but what kind of Linux does
- the CS department run?
- Sam doesn’t really know. Some flavor of Debian. It’s okay if you have no idea what that means.
Introduction - What is CS?
Write down a definition (your definition). You may be called upon to share it with the class.
- Putting pieces together differently to create software.
- Learning how to use computer programming/code to create cool computer stuff.
- Studying how the computer works (e.g., how it stores data, gathers information from users and presents it to them).
- Thinking like a computer does. (Well … understanding how computers process. They don’t think. Yet.)
- Study of algorithms and data and other stuff
- We will both learn about how algorithms work and how to build them
- We will both learn about how the computer organizes data and design ways to organize data.
- What’s an algorithm? An algorithm is a set of repeatable and predictable instructions that end when they achieve a goal or reach a state. The instructions take some input set of stuff, transform the stuff, and give you new stuff.
Exercise - An everyday algorithm
Basic instructions
- Get with your matching number group.
- Introduce yourselves to each other.
- Write unambiguous instructions that teach me how to make a PB&
Stage one
- Sam attempts to make a sandwich.
- We have a crumpled plate.
- We have bread on the floor.
- But we did end up with two pieces of bread on a plate.
- Students return to writing instructions.
Questions
- Who started with the marmalade and who started with the WowButter
- Who pronounces marmalade with a long a and who pronounces it with a short a?
Debriefing on exercise
- Instructions must be unambiguous. Vague instructions are likely to be interpreted in a way differently than you intend. Don’t make assumptions.
- Sometimes we repeat things: Spreading Wow! butter and marmalade. Opening jars. Etc.
- Keep instructions small.
- We work better in teams
- It’s fun and humorous when things go wrong
- Experiment and change is a part of life.
- Order of instructions matters.
Friday PSA
You are almost certainly awesome people. Take care of yourselves.