Great Principles of Computing: Everyone Mark Guzdial

advertisement
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
Strategy:
Ubiquitous Computing Education

Everyone needs computing, and
we 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”…
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
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.
Rough overview of Syllabus


Defining and executing functions
Pictures



Sounds





Psychophysics, data structures, defining functions, for
loops, if conditionals
Sampled sounds vs. synthesized, MP3 vs. MIDI
Text


Psychophysics, data structures, defining functions, for
loops, if conditionals
Bitmap vs. vector notations
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)
Some Computer Science Topics
inter-mixed

We talk about algorithms across
media



We talk about representations
and mappings (Goedel)


Sampling a picture (to scale it) is
the same
algorithm as sampling a sound (to
shift frequency)
Blending two pictures (fading one
into the other) and two sounds is
the same algorithm.
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
Computer Science Topics
as solutions to their problems

“Why is PhotoShop so much faster?”



“Writing programs is hard! Are there ways to make it
easier? Or at least shorter?”



Compiling vs. interpreting
Machine language and how the computer works
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
Does the class work?


In Spring 2003, 121 students
(2/3 female),
3 drops
Fall 2003, 303 students,
8 drops


60% of students surveyed
at end of course say that
they want a second course.


Women had higher grades and
fewer drops than men
These are non-majors, who
have already fulfilled their
requirement
We are getting transfers into
the CS major.
Success
Rate
Average
GT’s CS1
72.2%
(2000-2002)
Media
Computation
Spring 2003
Media
Computation
Fall 2003
88.5%
87.5%
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.
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.
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!
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?
Download