secant workshop 2008 teaching key principles ofteaching key...

23
SECANT Workshop 2008 Teaching Key Principles of Teaching Key Principles of Computation without Programming without Programming Dr. Tom Cortina Assistant Teaching Professor Assistant Teaching Professor Computer Science Department Carnegie Mellon University

Upload: others

Post on 19-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

SECANT Workshop 2008Teaching Key Principles ofTeaching Key Principles of

Computationwithout Programmingwithout Programming

Dr. Tom CortinaAssistant Teaching ProfessorAssistant Teaching ProfessorComputer Science Department

Carnegie Mellon University

Page 2: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

How do we introduce non-majors(and budding majors) to CS?(and budding majors) to CS?

CS0 I d i C S i• CS0 Introduction to Computer ScienceTypically a crash-course in every computer science topic in one class.Students are bombarded with one week of each major area of CS.How much do they really absorb?

• CS1 Computer Programming with x(where x = Java, C, Scheme, C#, etc.)

Students spend a great deal of time learning how to "speak" in thisStudents spend a great deal of time learning how to speak in this new language (syntax).Different paradigms don't help matters.S CS1 i ld lti di b ti tSome CS1 courses use micro-worlds, multimedia, robotics, etc.

Page 3: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Principles of Computation(15-105)(15 105)

S f h j ib i d i i d• Survey of the major contributions and issues associated with computer science, focusing on the study of the process of computationprocess of computation.

CS is not viewed through a specific programming language.CS is not viewed through a specific application area (e.g. multimedia, robotics, etc.)

• This course focuses on what it means to perform computation and what issues arise as mankindcomputation and what issues arise as mankind automates this process using computers.

• Designed for students who will probably take only oneg p y yCS course in their lives.

Page 4: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

• History of ComputationWhat societal needs caused mankind to make great advances inWhat societal needs caused mankind to make great advances in understanding and automating computation?

Page 5: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

?

Set y = 1

Set x = 0

noX > 100yes no ?

Add y to x

Add 1

no

yes

E i C t ti i Al ith

Add 1 to y

Output x

• Expressing Computation using AlgorithmsWhy do computations need to be expressed precisely?How do we trace an algorithm to see what it is computing?How do we trace an algorithm to see what it is computing?What common building blocks are used to specify algorithms?

Page 6: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Exploring Computation Without Syntax

O bli• Our course uses a public-domain program called RAPTOR, a flowchart ,simulator.

• Students can build simple procedural programsprocedural programs without learning the syntax details of a language.

• Contains conditionals, loops, input and output, arrays subroutinesarrays, subroutines, graphics. http://raptor.martincarlisle.com/

Page 7: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Programming without Syntax

15 Puzzle15 Puzzle

Four In A RowLights Out

Page 8: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

O i i D t• Organizing DataAre there better ways to structure data than just using a linear arrangement (vector)? j g g ( )In what situations would we use these structures?

Page 9: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

• Expressing Computations to a ComputerHow do we use programming languages to express our algorithms to a computer so it can compute them?Why are there so many programming languages?Why are there so many programming languages?Does the computer "understand" any of them?

Page 10: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

BRIDGE$3

TUNNEL$10$3 $10

• "Tricks of the Trade" (Algorithmic Techniques)How do we express computations recursively? Is this more intuitive?How is "divide and conquer" used in computation? Does a greedy approach to solving a problem always give theDoes a greedy approach to solving a problem always give the optimal answer?

Page 11: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

Cyes

BODY OF LOOP

no

• Perfecting Computation• Perfecting ComputationHow do we know if a computation is correct? Why is this important?How do we measure how efficient a computation is?p

Page 12: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

• The Limits of Computation• The Limits of ComputationWhat makes a computation intractable?Are all computations theoretically solvable?Can we describe a universal computer?

Page 13: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

• Parallel and Distributed ComputationParallel and Distributed ComputationWhat problems occur if multiple computational processes need to use the same resources? Can deadlock be avoided? If we run a computation in parallel, how much faster do we get an answer?

Page 14: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Course Topics

• Applications

http://www.jyi.org/volumes/volume8/issue2/images/srivastava1.jpg

ApplicationsWhat are the computational aspects of public-key, RSA encryption?How intelligent are computers anyway?

• Future of Computing (DNA and quantum computing)

Page 15: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Enrollment

E ll t• Enrollment

40

50

60

Fall 2005Spring 2006

10

20

30

40 Spring 2006Fall 2006Spring 2007Fall 2007Spring 2008

• RequirementsTechnical Writing: Required as 1 course of a 2 course CS sequence

0

10

Enrollment

Spring 2008

Technical Writing: Required as 1 course of a 2 course CS sequence.Business: Acts as an alternative to Introduction to Programming.Humanities/Social Science: Satisfies a Gen. Ed. requirement for modeling (mathematics and experiments).( p )

Page 16: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Student Feedback2006-20072006 2007

C ti th f R t ?• Continue the use of Raptor?Continue 30%Continue but use more graphics 55%Use another language/application 20%Stay off the computer! 5%

• Did you take another CS class before or during this class?Yes 20% No 80%

• Are you interested in taking another CS class if you could?Yes 55% No 35% Unsure 10%Yes 55% No 35% Unsure 10%

• Would you recommend this course to your friends?Yes 85% No 15%

Page 17: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Feedback

• “I wish I had taken this course before my programming class. Now I understand what I was doing in Java.”

• "An alternative/substitute to [introductory programming]."[ y p g g]• "You learn a lot more than just how to code."• "It's a lot better than doing real programming."• "Understanding the world of computing beyond programming, and

why and how programs and computers actually work."• "It's a way to stay away from programming while actually learning y y y p g g y g

something."• "The fundamentals of programming.“ (?)

Page 18: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Computer Science Unplugged(K-12)(K 12)

• CS Unplugged is a book of activities that illustrate computer science principles without using a computer.Activities are short and are designed to be easily integrated into• Activities are short and are designed to be easily integrated into classes and include exercises and lesson plans for teachers.

Page 19: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

CS Unplugged: The Book

• The basic edition of Computer Science Unplugged has 12 classroom exercises forUnplugged has 12 classroom exercises for you to use with your students.

• Each exercise has a number of extensionsEach exercise has a number of extensions, activities and background information.

• All activities can be done without the use of act t es ca be do e t out t e use ocomputers, but they all demonstrate fundamental principles used in computers today.

Page 20: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Card Flip Magic

Page 21: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Beat The Clock

Page 22: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Treasure Hunt

What is thequickest

t ?route?

"directed graph"

Page 23: SECANT Workshop 2008 Teaching Key Principles ofTeaching Key …secant.cs.purdue.edu/_media/cortina-revised.pdf · 2008. 11. 3. · SECANT Workshop 2008 Teaching Key Principles ofTeaching

Summary

• Computer science has revolutionized how scientists do science businesses do businessscientists do science, businesses do business, …

• Students still see CS as just programming.• Principles of Computation and CS Unplugged• Principles of Computation and CS Unplugged

show the principles of computer science to all students without delving into complex stude ts t out de g to co p eprogramming syntax.

http://www.cs.cmu.edu/~tcortina/15-105sp08http://www.csunplugged.org