Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Integrated Introduction to Computer Science Prof. John Hughes

Similar presentations


Presentation on theme: "An Integrated Introduction to Computer Science Prof. John Hughes"— Presentation transcript:

1 An Integrated Introduction to Computer Science Prof. John Hughes
CSCI0170 An Integrated Introduction to Computer Science Prof. John Hughes Today’s topics Who should take CS17 CS17-related activities/workload The design of CS17/18 The place of CS A first encounter with a computer programming language Describing functions Good morning. CSCI 0170 Prof. John Hughes Lecture recorded; see course website.

2 CSCI0170  “CS17” Prof. John Hughes  “Spike”
Two simple replacements for remainder of the semester: Lecture recorded; see course website.

3 Lecture recorded; see course website.
TAs Four "head TAs" (HTAs) Veda Sunkara Harriet Small Anna Sabel Katie Scholl 22 "undergraduate TAs" (UTAs) Have been here for a week making the course better! I'm going to let them get out of here right now so they too can shop courses. They're your first point of contact for almost everything in the course. They took the course last year or theyeear before, they know the material well, they know what's hard and what's easy, they make it work. One TA remains: Audrey; note-taker. Put away your laptops, please. And your phones. 1003 Lecture recorded; see course website.

4 Lecture recorded; see course website.
Course Mechanics Banner registration is essential First lab is this weekend You'll get a survey for lab scheduling after class; submit by Friday 3PM “cs accounts” set up from Banner registration list No registration, no account, no lab, … Who gets the survey? Those registered through banner! You may get the survey more than once; once you've filled it out, ignore subsequent s 1004 Lecture recorded; see course website.

5 Lecture recorded; see course website.
Who should take CS17? Prerequisite: high-school algebra Know about “functions”, like 𝑓 𝑥 = 𝑥 2 , and graphing Basic manipulations of equations (e.g., "multiply both sides by 2") Basic manipulations of inequalities You should have used a computer to send/read You should believe that computers can do elementary arithmetic You should believe that computers can associate a name to a thing (as in "myCollegeEssay.doc" to your college application essay) Nothing else! You're at Brown (and a few of you are at RISD); that means you've almost certainly got what it takes to be here in CS17. 1006 Lecture recorded; see course website.

6 Lecture recorded; see course website.
Who should take CS17? (2) What if I can’t program? Then you should take CS17: it's an introduction to CS About half of the TAs had no prior programming experience before CS17 What if I can program? Then you should take CS17 (probably) About half the TAs had some or lots of experience, and still found it valuable. 1008 Lecture recorded; see course website.

7 Lecture recorded; see course website.
Who should not take CS17 Folks not interested in learning about computer science Folks interested in learning about CS, but not willing to work A frequent adjective used to describe the course is "continuous", but 'relentless' comes up too. 1010 Lecture recorded; see course website.

8 Lecture recorded; see course website.
CS017 activities Class, 3 hours per week, required; occasional quizzes 2-hour lab, once per week Homework every week, 1-8 hours Four larger projects, spaced throughout semester Take-home final due near end of reading period (Dec. 11, 11 PM) Optional workshops to reinforce ideas from class Details: see syllabus on website Also: read course missive on website “That sounds like more work than CS15” – not so. Lots of work, but comparable. We spent a lot of time in TA camp trying to make your time be spent on efficient learning. 1012 Lecture recorded; see course website.

9 Lecture recorded; see course website.
Course Content Computer Science is more than programming Programming’s essential So are algorithms, data structures, analysis, … human factors, logic, probability, …. CS15 teaches programming; CS16 covers some algorithms, data structures, analysis Also includes some graphical user interfaces (Uis) CS17/18 sequence integrates big ideas from computer science with learning to program Avoids UIs and almost all interaction with data outside of programs Both are hard to get right, and worthy of their own courses, after the basics Emphasizes detailed understanding of programs 1014 Lecture recorded; see course website.

10 Distinguishing features of CS17/CS18
Multiple languages Algorithms and analysis early (Almost) No magic Pair programming Why pair programming? Faster task completion, xfer of expertise, practice in clear expression of CS ideas (!!!!), preparation for any future CS endeavors Lecture recorded; see course website.

11 Lecture recorded; see course website.
Course Goals Learn strategies for finding efficient and elegant solutions to computational problems Learn multiple languages Learn about other areas of CS through project experience: Bootstrapping (“Bignum”) Natural language processing (“Eliza”) Program interpretation (“Rackette”) Artifical intelligence (“Game”) 1020 Lecture recorded; see course website.

12 Lecture recorded; see course website.
Grading Absolute scale: your grade is independent of other students’ grades Learn the material well, you’ll get an A Details on course syllabus and missive 1021 Lecture recorded; see course website.

13 Lecture recorded; see course website.
"CS15 has less math, and more fun" Math part: true, but… Mathematics is an essential part of CS Delaying it delays your expertise in the field CS16 has more math to make up for what 15 skipped "Fun" part: eye of the beholder Skits are great, but they take up time, and don't seem to actually improve understanding A helpful test for 17 vs 15 If you've ever taken apart something to see how it worked … …or wished you could, but didn't have the tools, parental permission, … …then 17 might be the course for you. Some profs/teaching styles/organizations work for some students, others work for others. 1023 Lecture recorded; see course website.

14 Lecture recorded; see course website.
Questions? 1025 Lecture recorded; see course website.

15 How important is computer science?
It makes your phone work It’ll help you get a job Lecture recorded; see course website.

16 Lecture recorded; see course website.
Pokemon Go Writing Snuggie Computation Antibiotics Toaster oven Rural electrification Fire Farming Lecture recorded; see course website.

17 Lecture recorded; see course website.
To speak a second language is to have a second soul. --Charlemagne Lecture recorded; see course website.

18 Lecture recorded; see course website.
DrRacket demo Start DrRacket; type “17”, and ( ) Lecture recorded; see course website.

19 Lecture recorded; see course website.
Models A “model” is something that partially represents something else A road-map is a model of a network of roads May not include elevation changes Still very useful for getting from here to there Predictive: you can see that if you drive north on interstate 95, you’ll eventually reach the Boston area. Lecture recorded; see course website.

20 Model of program execution
We write a program (a process sometimes called “coding”) in a ”programming language” We then “execute” or “run” the program The program produces results, informally called ”output” If we understand the program well enough, we can predict what this output will be. Lecture recorded; see course website.

21 Why have a model of program execution?
Predictability Analysis of program performance on large data Lecture recorded; see course website.

22 Lecture recorded; see course website.
Models are a big idea Our first encounter with one of the main ideas of CS: abstraction Other big ideas: bootstrapping, scale, recursion, efficiency, … Lecture recorded; see course website.

23 Lecture recorded; see course website.
Every act of conscious learning requires the willingness to suffer an injury to one's self-esteem. That is why young children, before they are aware of their own self-importance, learn so easily; and why older persons, especially if vain or important, cannot learn at all. -Thomas Szasz, author, professor of psychiatry ( ) Lecture recorded; see course website.

24 Lecture recorded; see course website.
Functions Racket is a "functional" programming language Things that are like "functions" from mathematics are at its core Lecture recorded; see course website.

25 Lecture recorded; see course website.
Notation ℤ : integers, …, -2, -1, 0, 1, 2, 3, … (from German "Zahlen", numbers) ℕ: natural numbers: 0, 1, 2, 3, … (some books start with 1; we won’t.) ℝ: real numbers: 0, 2.663, -19, 𝜋, … Sometimes we'll talk about ℝ + , the set of positive real numbers These are almost the only named sets we'll use Lecture recorded; see course website.

26 Lecture recorded; see course website.
What's a set? Informally: a collection of things. If 𝑆 is a set and 𝑥 is any item, then either 𝑥 is in 𝑆 or it's not. Never both! Those in the set are called its "elements". If 𝑥 is in 𝑆, we write 𝑥∈𝑆; if not, we write 𝑥∉𝑆. Lecture recorded; see course website.

27 Lecture recorded; see course website.
Describing Sets To describe sets, we have several tools: English language: "Let 𝐶 be the set of all students in CS17" Enumeration, indicated with braces: 𝑆={1, 5, 7}. This notation means that "1∈𝑆, 5∈𝑆, 7∈𝑆 are all true, but 𝑥∈𝑆 is false, unless 𝑥= 1, 5, 7" In words "1, 5, and 7 are the elements of 𝑆 Discuss with your neighbor: what are the elements of the set 𝑇={1, 5, 1, 7}? Restriction 𝑈={𝑥∈𝑆∣𝑥<6} Before the vertical bar: a name for an element, and a set from which it comes After the bar: a condition that the element must satisfy to admit it to membership in the set Discuss: ℝ + = 𝑧∈ℝ ??? . (Fill in the question-mark area) Lecture recorded; see course website.


Download ppt "An Integrated Introduction to Computer Science Prof. John Hughes"

Similar presentations


Ads by Google