Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia...

13
Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology

Transcript of Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia...

Page 1: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Great Principles of Computing:

Computing for Everyone

Mark Guzdial

College of Computing/GVU

Georgia Institute of Technology

Page 2: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

A Computer Science Undergraduate Degree is Facing Irrelevancy

We’re losing students, at an increasing rate. Women and minority percentage of

enrollment dropping High failure rates in CS1 (35-50% or more) Fewer applications into CS

“All programming jobs going overseas” Research results: “Tedious,” “boring,”

“lacking creativity,” “asocial”

All of this at a time when we recognize the critical role of IT in our economy, in all jobs

Page 3: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Strategy: Ubiquitous Computing Education

Everyone needs computing, andwe should be able to teaching computing that everyone cares about. Make computing relevant and accessible to students. Minors, certificates, joint degrees, alternative paths to the

major. At Georgia Tech, we do require every student to

take an introductory computing course. Used to be just one, based on TeachScheme approach

(HTDP) Then came the “Recent Unpleasantness”…

Page 4: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

CS1315 Introduction to Media Computation

Focus: Learning programming and CS concepts within the context of media manipulation and creation Converting images to grayscale and negatives, splicing and

reversing sounds, writing programs to generate HTML, creating movies out of Web-accessed content.

Computing for communications, not calculation Required course at Georgia Tech for Architecture,

Management, and Liberal Arts students; Optional for Biology

121 students in Spring 2003,303 in Fall ’03, and 395 for Spring ‘04 2/3 female in Spring 2003 MediaComp

Page 5: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Teaching computing, not programming

These students do not want to learn to program. In fact, some drop as soon as they learn that programming

IS still required. We use a data-first approach

Real professional computer users are not eager to use the computer

They (reluctantly) learn applications and programming because they have data that they want to manipulate

Today’s undergrads have digital pictures, sounds, and video We give them the tools to manipulate them. Then we introduce the Great Principles in the task context.

Page 6: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Rough overview of Syllabus Defining and executing functions Pictures

Psychophysics, data structures, defining functions, for loops, if conditionals

Bitmap vs. vector notations Sounds

Psychophysics, data structures, defining functions, for loops, if conditionals

Sampled sounds vs. synthesized, MP3 vs. MIDI Text

Converting between media, generating HTML, database, and networking

A little trees (directories) and hash tables (database) Movies Then, Great Principles topics (last 1/3 class)

Page 7: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Some Computer Science Topics inter-mixed We talk about algorithms across

media Sampling a picture (to scale it) is

the samealgorithm as sampling a sound (to shift frequency)

Blending two pictures (fading one into the other) and two sounds is the same algorithm.

We talk about representations and mappings (Goedel) From samples to numbers (and

into Excel), through a mapping to pixel colors

We talk about design and debugging But they mostly don’t hear us

Page 8: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Computer Science Topicsas solutions to their problems

“Why is PhotoShop so much faster?” Compiling vs. interpreting Machine language and how the computer works

“Writing programs is hard! Are there ways to make it easier? Or at least shorter?” Object-oriented programming Functional programming and recursion

“Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” Algorithmic complexity

Page 9: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

Does the class work? In Spring 2003, 121 students

(2/3 female), 3 drops

Fall 2003, 303 students, 8 drops Women had higher grades and

fewer drops than men 60% of students surveyed

at end of course say that they want a second course. These are non-majors, who

have already fulfilled their requirement

We are getting transfers into the CS major.

Success Rate

AverageGT’s CS1(2000-2002)

72.2%

Media Computation Spring 2003

88.5%

Media Computation Fall 2003

87.5%

Page 10: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

What do the Great Principles offer this course?

Identifying the principles that we can cover in the course. We chose the ones we did from CC2001’s CS1

requirements and from what fit naturally into a media context.

Peter’s lists highlight the important topics that we might cover, that need to be introduced (even for non-majors) Perhaps not all in the first course.

Page 11: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

What does this course have to offer the Great Principles?

Especially for non-CS majors, we can’t separate off programming. Cognitive science: Concrete before abstract These students grapple with what we see as

“simple” concepts: Sequencing of operations, iteration, conditionals, indexing (e.g., of arrays)

Need to understand what a computer is before they can grasp what a computer enables

But we can teach programming as a context for teaching the Principles, not as an end goal.

Page 12: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

What do the Great Principles offer CS Undergraduate Education? Stop teaching syntax of languages!

In the Media Computation class, we never teach else, we only touch on while, and students never make their own classes. We don’t need them for our goals, and they get in the way.

If our goal is to teach the Principles, we don’t need every language feature.

Our focus in CS1 is not to create programmers! The goal of Introductory CS, like any other Introductory

course, is to introduce the Great Principles of the field—NOT create professionals in the discipline!

Page 13: Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.

What do the Great Principles offer undergraduate education?

Peter’s “Ladder of Expertise” is a very important idea.

Our CS undergraduate programs do tend to focus at the middle level.

As Peter points out, we do the upper levels a disservice.

But we also do the lower levels a disservice. Not everyone needs to be a proficient as a professional

programmer! But how much more impact can we as a field have if we

can help biologists, architects, and business majors actually understand the Great Principles of computing, as beginner and intermediate programmers?