EBoard 01 (Section 1): Getting Started

Approximate overview

  • Lots of administrative stuff, including attendance
  • What is “computer science”?
  • A group activity, more or less
  • Debrief on activity

Administrative stuff

Please take a playing card, if you didn’t already.

Introductory Notes

  • Hi, I’m Sam (or SamR).
  • Our class mentors are …
    • Cassandra
    • Quang
    • Here to help you with the class in general.
    • Folks who will wander around during class and answer and ask quetions.
    • Folks who will hold weekly mentor sessions. AN hour-long review session or time to work on homework or ….
    • Our mentors have lives/work outside of mentoring. Do not (ab)use them outside of their normal hours.
  • The class Web site is at https://rebelsky.cs.grinnell.edu/Courses/CSC151/2022Sp/.
    • I will email you the link.
    • The class Web site is (always) a work in progress, but is particularly behind this year. Sorry!
  • CSC-151 is an introductory course in computer science.
    • You can succeed (and even excel) with no prior experience. (Those with no prior experience sometimes spend more time.)
    • We approach material differently than many other intro courses; prior experience may help, but it may also hinder. For example, we will not let you re-assign variables. (Don’t worry if you don’t know what that means.)
  • CSC-151 is a community. We come from multiple cultures and backgrounds. Treat each other with respect and learn to appreciate what each person can contribute.
    • We will return to this issue and the associated learning outcomes throughout the semester.
  • I type our online class notes in a format called “markdown”. You should find it relatively readable. It permits me to make “nice” Web pages.
    • Sam: Don’t forget to show off today’s eboard.
    • Ideally, things should update automatically on the Web. (They didn’t today. Computers are evil.)
    • Don’t just rely on my notes; There is good evidence that taking your own notes helps you learn.
  • I will record some of our class sessions using Teams.

Other introductory stuff

  • The CS department maintains a mailing list. Let me know if you’d like to be added. (Conveniently, the question is on our intro survey.)
  • We provide supplies in this classroom to support you in working and learning.
    • Small cards to serve as flashcards, which are a good learning technique.
    • Also medium-sized grided post-it pads.
    • And pens.
  • I prefer to have you book office hours. First priority in any time slot goes to those who book. https:/bit.ly/book-samr
  • I will hold office hours online while we are in code blue or code teal. (Also if we reach code yellow, code red, or code infrared.)
  • You’ll learn more introductory stuff when you read the syllabus.

Apologies

  • I am old. My hearing is not great, even with hearing aids.
  • Our Web site is not as up to date as I’d like. But it will be. Soon. Ish.
  • I am traditionally bad at names+faces. I will be worse with masks. It will take me some time to learn your names.
  • More to come ….

Upcoming activities

Guidelines

  • You can earn “tokens” (more info follows) for attending designated academic events or supporting your classmates in their pursuits.
  • Attend (or watch recording within a day or so) and record a one-paragraph reflection asap afterwards.
  • Only those activities I list count.
    • But you can suggest others. In fact, you should suggest others.
  • Unless otherwise specified, these each earn one token.

Events

  • None yet.

Upcoming work

Attendance

  • Sam will (attempt to) call you by first name.
  • You will respond with
    • “Hi, my name is PROPER-NAME FAMILY-NAME
    • (Optional pronouns.)
    • I prefer to be called NAME.
    • If you must call me by last name, please call me Mr./Ms./Mx. NAME.
    • This semester , I am excited about ….
    • Optionally, ask me a question. You’ll also have another chance later.
  • Note: For the first few weeks of class, please say your name each time you ask or answer a question.

Excited About

  • Forcing students to write their names on masks.
  • Mentoring the class [x2]
  • Learning about a new topic.
  • Taking the first clas sin the CS major [x2]
  • Exploring lots of new classes [x4]
  • Taking CS classes [x2] for the first time [x3] to learn a new subject
  • Free time
  • Extreme cold
  • Snow [x2]
  • Sports season (remind us about matches)
  • Learning weird new programming syntax
  • Learning to code well (this student is optimistic)
  • Discovering what CS is.
  • Coding again, not in an anegnieering class.
  • Typing in cool fonts.
  • Coding on my laptops

Q&A

Are we using DrRacket as our IDE?

Yes.

What’s an IDE?

A TLA for “Integrated Development Environment” - Where you develop software.

What’s a TLA?

Three-letter acronym.

Will we use mulitple programming languages in this class?

One seems like enough, for now.

But we’ll also learn a markup languags, such as HTML/XML.

Which of Sam’s three sections of 151 will ask the best questions?

We shall see. This one asked the fewest.

What is computer science?

  • Computer science is the study of algorithms and data structures
    • Algorithms: Sets of (unambiguous) instructions for solving a task.
    • Data Structures: Ways to organize information.
  • We study algorithms by …
    • writing algorithms to accomplish certain tasks.
      (E.g., Organizing or searching information.)
      • identify problems
      • generalize / simplify
      • write instructions that allow “you” to solve them
    • analyzing their efficacy.
    • writing systems that implement those instructions (e.g., hardware or languages).
    • considering their effects on individuals or society.
  • We study data structures in similar ways.
  • Most of this class will be writing and thinking about sets of instructions in an artificial language (aka a programming language).
    • We use an artificial language because artificial languages can be designed to be less ambiguous. (Also easier for the computer to follow.)

Exercise

Practice writing algorithms!

  1. Form groups.

  2. Sam presents a problems.

  3. You develop algorithms.

  4. Sam attempts to run algorithms, demonstrating ambiguity.

  5. Your further develop algorithms.

  6. Sam attmepts to run algorithms some more.

Debrief

  • You need to be very specific when giving instructions.
    • You also have to think about what’s happening with shat you just did (e.g., is the twist tie still in Sam’s hands?)
  • Break complex problems into smaller problems (Decomposition.)
    • Try your algorithm as you develop it.
  • Be clean; don’t have your program leave a mess.
  • Know what the computer (or Sam) knows. While “bread and “left hand” are defined, “upright” may not be.
  • Things will go wrong. When they do, it’s not a problem; perhaps it’s even funny. (Think back to what could have happened to Sam.)
  • We do better in groups.
  • Be proud of yourselves, you did well. Sam didn’t die. The sandwich didn’t end up on the floor.
  • We sometimes do the same thing more than once, so define it separately.
    • How to spread stuff on bread.
    • How to open a jar.
  • Warning: Computers are sentient and malicious.