Class 1
Held: Friday, 25 August 2017
We begin the class by exploring the definition of computer science and by trying to write some basic algorithms.
Preliminaries
Overview
- Introduction - What is CS?
- Exercise - An everyday algorithm
- Debriefing on exercise
- Common parts of an algorithm
Related Pages
Updates
News / Etc.
- Welcome to CSC 151!
- I’m Sam (or SamR)
- Your class mentors are Anh Thu, Ritika, and Zander.
- 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
- At the end of class, please restore your station to its original state (or better): Push in your chairs, put the nodepad neatly next to the machine, give your playing card back to the mentors, etc.
- The CS department maintains a listserv of announcements of events and opportunities. If you would like to be added to that listserv, please send me an email.
- Warning! I’m losing my hearing. I’m also snarky. The two are independent.
- Since it’s the first day of class, I’ll be taking attendance.
- It always takes me a few weeks to learn names. This semester it will take even longer, because I am teaching approximately 150 students.
- This exercise will probably take ten minutes. That’s okay, I consider it worth the time. I hope you do, too.
- When I call your name, please stand up and respond with something
like the following
- “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 LOCATION.
- Optional: “My pronouns are ….”
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)
None yet.
Good things to do
- Ag Days in Grinnell, Thursday the 31st. More info forthcoming.
An introductory question
- Rather than telling you exactly what the class is about,
I’m going to start the class with a question for you.
- The question will help ground the class.
- The question will begin to get you used to some aspects of my teaching style (particularly my reliance on recitation-style work).
- The question will test your abilities as a liberal artist.
- What is Computer Science?
- I will give some of my own responses after I’ve heard some of yours.
What is computer science?
- Computer scientists differ in how they define the discipline.
However, most would agree that, at least in part,
Computer science is the study of algorithms and data structures.
- By “algorithms”, we mean sets of instructions that can be used
to solve problems.
- Some problems are mathematical. For example, you might write an algorithm to find the square root of a real number.
- Other problems deal with textual information. For example, you might write an algorithm that tells how to find a name in the phone book.
- Still other problems deal with graphical information. For example, you might write a program that finds text in an image (and then figures out what the text is).
- Clearly, you can write algorithms for a wide variety of problems.
- By “data structures”, we mean mechanisms for organizing information. For example, we organize some information in lists, other information in tables, and other information in more complex structures.
- By “study”, we mean specify, design, describe, evaluate mathematically, evaluate experimentally, implement in software, implement in hardware, prove properties, consider applications and implications, and much, much more.
- In our studies, we rely on the tools and techniques from a number of
other disciplines.
- From mathematics, we take proof techniques, formal language for describing problems and solutions, and even core ideas.
- From science, we take an experimental approach. We show that an algorithm is “correct” by constructing a variety of experiments.
- From engineering, we take techniques for designing and constructing things.
- From psychology and the social sciences, we take techniques for understanding the relationship of our work to human endeavors.
- These diverse perspectives and skill sets make CS interesting and challenging.
- Our European colleagues often refer to the discipline as “Informatics” (that is, implying the study of information), and I will admit that I have come to prefer the term because it distances us a bit from both computers (we are broader than the technology) and from science (since we do not necessarily emphasize the scientific method).
An everyday algorithm
- We’ll explore the problems of writing clear instructions through a simple exercise.
- Challenge: Write a clear, unambiguous, and detailed set of instructions for making a nut butter and preserves sandwich.
- Format: Work in groups of about four.
- I will distribute playing cards to help you identify those groups.
- Each group will write its solution on one of the four boards.
- SamR will play the role of the sentient, but malicious and clueless “follower of instructions”.
Debriefing
- We will consider some of the implications of the activity today.
- Model: Discuss implications in your small group. Then pick a few important topics to share with the larger group.
- We will continue debriefing in the next class period.