Skip to main content

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

Updates

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.
  • 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.”
    • 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.