1 of 30

Welcome to CS17

2 of 30

3 of 30

4 of 30

Facility Location: given client locations, select locations for facilities so that each client is close to some facility

5 of 30

Vehicle Routing: Given delivery locations, find most efficient routes to deliver all packages

6 of 30

Algorithms for political redistricting (anti-Gerrymander)

7 of 30

CS17 first taught twenty years ago

8 of 30

CS17 first taught twenty years ago

9 of 30

Leslie Kaelbling

John Hughes

Amy Greenwald

Claire Mathieu

1998

1999

2000

2009

10 of 30

11 of 30

CS17-18: What is it?

  • Two-course introduction to computer science
  • Both courses address both programming and rigor
  • Multilingual and multi-paradigmatic
  • Collaborative
  • Values:
      • elegance and brevity
      • clarity of thought
      • mastery
      • the craft of programming
      • learning to think as a computer scientist

Previous experience required:

None

Previous experience preferred:

None

12 of 30

  • Integrated — blends teaching of programming with more formal, mathematical aspects of computer science
      • (semi-)formal specs
      • recurrence relations
      • Efficient data structures, fast algorithms, and their analysis

(define (eliza-respond rules phrase) …. )

13 of 30

  • Multilingual and multiparadigmatic:�
      • Scheme
      • ML
      • Java
      • Scala

(okay, Racket)

(in particular OCaml)

(because we have to)

(like Java but done right)

Purely functional

okay, languages support object-oriented

Purely object-oriented

Support for functional and object-oriented

But what is this functional programming stuff?

We’ll come back to that.

14 of 30

  • Collaborative — Work together with other students.�Learn from each other.

Labs: pair programming

Projects: done with a partner

Homework: collaboration encouraged (but your writeup must be done alone).

Find details of collaboration policy in the course policy document.

15 of 30

The craft of programming,� the intrinsic beauty of computer science

  • elegance
  • brevity
  • insight
  • hard thinking and problem-solving
  • mastery

Short programs, no magic

The programs you write are entirely your own.�We don’t rely on mysterious support code or libraries.

Becoming a computer scientist: learning the dance between

  • working within a formal system
  • designing your own formal system

applying the Rulz

making your own Rulz

16 of 30

Alternative to CS17

16

For Concentrators & Non-concentrators:

  • CS15 (fall semester) – Andries (Andy) van Dam
    • also, no prior experience required
    • teaches Object-Oriented Programming (OOP) in Java only
    • celebrates magic!
      • Interactive graphics from the first project with support code
      • Support code “training wheels” are taken away bit by bit
    • fewer, larger programs – many of them are games
      • final projects can be around 1000 lines of code
    • no quizzes/exams, but no collaboration allowed
    • For more information on other CS courses: http://cs.brown.edu/degrees/undergrad/whatcourse/

Andries van Dam © 2017 09/07/17

17 of 30

CS17 Mottos

No magic.

  • You should thoroughly understand all your code.
  • Ideally you should write it all (no support code).
  • We don’t like answering a question by saying �“Don’t worry about that; you don’t have to know it.”

There is no user.

  • In CS17, we don’t do user interfaces.
  • We don’t do error-handling.

Beyond syntax.

  • We study small, simple languages so you can learn the key concepts without getting bogged down.
  • We study multiple languages and paradigms so that you learn to think about computation at a higher level than that of a particular language.
  • Every concept is illustrated with at least two languages.

More mottos to come….

18 of 30

What it takes to succeed in CS17

Prior experience in programming is a barrier �that can be overcome

It helps if you like puzzling things out.

There’s one more thing …

19 of 30

Michaela Kirsch, climbing the Golden Ticket (5.14C)

(Fox & Wickstrom Media, January 2017)

Commitment

20 of 30

How will you accomplish these amazing feats?

We have the world’s best belaying team: your TAs.

We will support you on your path to mastery.

21 of 30

Professor

  • “Mandatory” office hours: you are expected to meet with the professor at least once during the semester, preferably early.

Group office hours will be arranged; you can sign up via a link that will be emailed to you.

  • You can set up an individual meeting with the professor via email.
  • If you feel lucky, you can stop by the professor’s office to see if he is available.

TAs

  • Each TA on duty for two hours a week.
  • Two-hour lab sessions — work with assistance of the TAs.
  • Ask questions on Piazza, an online forum, and staff will answer.
  • TAs will be running optional workshops in which they go over material and practice problems.

Getting Help

We are here to help you. The commitment part is up to you.

22 of 30

Getting Help

Professor

  • “Mandatory” office hours: you are expected to meet with the professor at least once during the semester, preferably early.

Group office hours will be arranged; you can sign up via a link that will be emailed to you.

  • You can set up an individual meeting with the professor via email.
  • If you feel lucky, you can stop by the professor’s office to see if he is available.

TAs

  • Each TA on duty for two hours a week.
  • Two-hour lab sessions — work with assistance of the TAs.
  • Ask questions on Piazza, an online forum, and staff will answer.
  • TAs will be running optional workshops in which they go over material and practice problems.

We are here to help you. The commitment part is up to you.

23 of 30

Is it really that hard?

24 of 30

Forms of work in this course

  • Lectures. We will take notes for you.
      • Quizzes
          • For most quizzes, you will get full credit for simply putting your name on the paper…�but I will be reading some of these so please do your best.
          • For some quizzes, you will be graded on your work. I will try to inform you about upcoming graded quizzes one lecture in advance.
  • Homeworks. Once a week. Some programming, some problem-solving.
  • Labs. Once a week at a scheduled time. Watch for email requesting your lab session preferences.
  • Projects. Four during the semester.
  • Final exam. Take-home. Assigned Dec. 7, due Dec. 11.

25 of 30

Projects

  • Bignum�Modern cryptography uses number theory.�Your browser does multiplication, division, etc. with thousand-digit numbers. How?�You “know” an algorithm for long multiplication — the challenge is coding it.
  • Eliza. One of the earliest applications of natural language processing (1964-66) was a parody of a psychotherapist. It used simple pattern-matching.
  • Program interpretation. You will implement the first programming language we learn, using the second.
  • Game-playing AI. You will implement minimax, the approach used in AI to play strategy games, and use it in a game such as Connect Four.

https://xkcd.com/1935/

https://www.xkcd.com/632/

https://xkcd.com/303/

https://xkcd.com/1875/

26 of 30

Announcements

  • Course web page: Just google CS17. Visit often.
  • Course emails: Soon I will send an email message to all students who are registered or have CS17 in their shopping carts. Please watch for that email. It will include a form in which you can tell us your preferences for lab sessions.
  • If you don’t register (or at least put this course in your shopping cart), you will miss out on lots of important information.
  • Lab sessions will be assigned on Friday afternoon.
  • First homework will be assigned on Friday after class.
  • First lab will be Sunday or Monday.

27 of 30

28 of 30

  • Community for Underrepresented Minorities in Computer Science (Black, LatinX, Indigenous)

Popsicle Party: Sunday 1pm @ Green by MacMillan Hall

Come see us in CIT209

29 of 30

WiCS

Women In Computer Science

Dedicated to improving diversity and inclusion across gender identity in CS.

Join our listserv to get updates and hear opportunities!

Email wics@lists.cs.brown.edu

Ask us about:

Our mentorship program

Industry events

Community building and support

Department diversity efforts

30 of 30

  • “Coffee talks”

12-3pm Sunday, ERC

  • Join!

Email:

designatbrown@gmail.com

  • View our content:

designatbrown.wixsite.com/home

Design@Brown

Do you want to study design but don’t know how?