810 likes | 822 Views
Explore the concerns, decline in CS majors, and pathways to ensure the ongoing success of the academic discipline in a thought-provoking and insightful discussion guided by significant questions and historical insights.
E N D
On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan http://www.cs.duke.edu/~ola
Shoulders of Giants, Thanks “… it is a tale Told by an idiot, full of sound and fury, Signifying nothing.” Macbeth, V,v,19
Where are we going … Questions • What should our concerns be for those choosing to major in Computer Science? • courses, research, jobs, … • Should we be concerned by the precipitous decline in those taking our courses? • majors, technical students, non-technical … • What can we do to ensure the ongoing success of our academic discipline? • Look inward, look to others
Questions If you gotta ask, you’ll never know Louis Armstrong: “What’s jazz?” If you gotta ask, you ain’t got it Fats Waller: “What’s rhythm?” What questions did you ask in school today? Arno Penzias via Isaac Isadore Rabi
Questions and Answers • Judge a man by his questions rather than by his answers
Don’t know much about history We are doomed if we don’t pay attention
Who, when? “No stretching … is required to envision computer consoles installed in every home. Everyone will have better access to the Library of Congress than the librarian himself now has. Full reports on current events, whether baseball scores, the smog index in Los Angles or the minutes of the 178th Korean Truce Commission will be available for the asking.” John, McCarthy, Information, Chapter 1, 1966
You win some, you lose some People will soon become discontented with the “canned” programs available; they will want to write their own. The ability to write a computer program will be as widespread as the ability to drive a car. Not knowing how to program will be like living in a house full of servants and not speaking their language. Many people can write simple programs after an hour or two of instruction. … Programming is far easier to learn than a foreign language or algebra.
Then and Now Ouchless I/O Bailey, SIGCSE 1972 All of the Fortran statements were to be introduced as the need arose within the context of a problem-solving situation—that is, a here-is-what-we-want-how-can-we-do-it approach…the overall objective of the course was to make the instruction as interesting and informative as possible. It is remarkable that the majority of students can indeed handle fairly complex I/O by the end of the first six lessons, even though they have not actually been formally taught how to do it.
Now and Then Java IO and Testing Made Simple, Proulx and Rasala, SIGCSE 2004 We believe that the combination of the well-designed tools with well-designed abstractions presented here provide a solid foundation for introducing input processing to novice programmers. In addition to making the input from the user an integral part of student's programs, students learn from seeing and using abstractions that provide tangible and significant benefits.
Teaching Compsci in 1984 • 64K memory, 128K extended • 8-bit, 1 Mhz 6502 processor • 5Mb drive: $3500 • UCSD Pascal: >$100 • Owen's machine: $3000 • $677.80 in 1984 has $1200 "purchase power" in 2003 • http://eh.net/hmit/ppowerusd/
Typical machine in 2004? • 1 Gb memory • 3+ GHz, 32-bit chip • Cache, … • 160 Gb disk • Lots of free resources • Good academic pricing • Under $1000
What has changed in 20 years? • Machines • Characteristics and Availability • Internet • Availability, IM, web, Google, … • Students • Comfort with technology, Expectations
The more things change…? Assume I took your first course(s) in 1984 and understood the concepts so completely that I could still get a 100 on the final from 1984 if I took it today (e.g., I've been in a cryogenic chamber). How would I do on the 2004 final exam?
What has changed in Physics? "You'd get a 100 plus or minus sigma. Intro classical physics hasn't really changed that much over the last 100 years. In graduate level e.g. E&M or quantum classes I think ditto, although sigma would be bigger (and might depend more on the instructor variation than on any real variation in the material). The main difference is, I think, that your chances of GETTING 100 now would be much higher." Rob Brown, Poohbah of Physics Instruction
What has changed in Biology? "The basic principles and concepts of biology haven't changed much in 20 years. What has changed relates to specific content, and in this arena the changes have been enormous. 20 years ago, we barely knew how to sequence DNA; today information of this kind has had a major impact on just about every topic in the biological sciences. Thus, some questions on an exam today would address topics that would be completely unfamiliar to a 1984 time-traveller. " Greg Wray, Director of Undergraduate Studies, Biology
What has changed in Economics? "… we now cover material that was only introduced in an advanced or intermediate course in 1984. In 1984 we spent the bulk of the time dealing with the Keynesian model and virtually no dialogue about supply side policies. Now the Keynesian stuff is a small subset of a much broader exposure to Aggregate demand and supply… Also there is more international coverage now - as opposed to 20 years ago for obvious reasons." Lori Leachman, Director of Undergraduate Studies, Economics
What has changed in Calculus? We have two varieties of calculus courses, the lab courses and the traditional ... The latter two have not changed significantly in decades, and I think that a student who fared well on the 1984 exam in those courses would do well today, and vice versa. [In the lab courses] You would ace about half the exam. The other half would be unfamiliar to you. For example, you would probably not know how to answer a problem on modeling a set of data, creating an approximation using Euler's method, interpreting derivatives in the context of applications in other fields, or giving explanations of ideas … Lewis Blake, Supervisor of First-year Instruction
Changing CS? Rock, Hard place • If Computer Science has changed drastically is it to keep up with fads and stylistic changes or because of fundamental changes in the discipline? • Are we leveraging the technological and intellectual resources at our disposal • If we haven’t changed, is it because of a solid bedrock of principles that endures? Or because we’re lazy, good-for-nothing, …
1985, AP Computer Science, Q2 Write a procedure Compact that eliminates all elements with value 0 from its argument, a list. Compact leaves the order of the other elements unchanged. For example, if list is (0,9,7,0,0,23,4,0) When the procedure is called, it should be (9,7,23,4) After the procedure executes. All local variables should be scalar. (declaration for Pascal record with array and count)
Concepts and Solutions • Why the restriction to use only scalar variables? • Force an expected solution? • Punish students? • What is expected solution, O(n) or O(n2) • What if I make a new array? • What does this look like today? (to appear)
2004, AP, Question 1 public class WordList { ArrayList myList; public void removeWordsOfLength(int len) { // you write this } }
Details of Question Revisited Write the WordList method removeWordsOfLength. Method removeWordsOfLength removes all words from the WordList that are exactly len lettters long leaving the order of the remaining words unchanged. For example assume that the instance variable myList of the WordListanimals contains the following: {“cat”, “mouse”, “frog”, “dog”, “dog”} After the call animals.removeWordsOfLength(3) {“mouse”, “frog”}
What is CS? Why study it? • Do we have Physics (Math, …) Envy? “It's hard for voice over Internet Protocol or e-commerce to compete with finding the age of the universe,” Peter Lee, CMU • Does familiarity breed contempt? • What was different in 1984 than today?
Cause for comfort or concern? Source: CRA
COHFE Amherst College, Barnard College, Brown University, Bryn Mawr College, Carleton College, Columbia University, Cornell University, Dartmouth College, Duke University, Georgetown University, Harvard University, Johns Hopkins University, Massachusetts Institute of Technology, Mount Holyoke College, Northwestern University, Oberlin College, Pomona College, Princeton University, Rice University, Smith College, Stanford University, Swarthmore College, Trinity College, University of Chicago, University of Pennsylvania, University of Rochester, Washington University in St. Louis, Wellesley College, Wesleyan University, Williams College, Yale University
What’s wrong with this picture? Why is the first year different from all other years?
If you don’t take a course in CS, you won’t major in it. Why is the first year different from all other years?
Interdisciplinary minors • At Duke it is difficult to double major in sciences • Too many requirements, 17 courses in biology • Students are interested in credentials • No business major/minor, certificate program (requires intro, capstone, six courses) • Minor requires five courses, double counting ok • Three courses in CS, two in econ or biology • From gene to social networks, data mining, …
Genome Revolution Focus Course • Arts in Contemporay Society, Exploring the Mind, Evolution and Humankind, 20th Century Europe, Visions of Freedom, The Genome Revolution and its Impact on Society, … • Three of four courses, one writing, two others. Interdisciplinary 0.5 credit seminar P/F • Seminars, students live in same dorm • 600+ out of 1600 in FOCUS course • For Genome, 80 applicants for 30 slots, 65% women • In CS Genomics course 8 women, 9 men
Simple examples • Given strand of DNA, calculate CG ratio • Potential source of proteins “CGGATTATC” • Given protein “HLVWW” calculate number of different DNA strands that could code for it • 64 codons, 20 amino acids • Find heaviest protein in array of proteins • Given atomic mass of amino acids • Interpret ORF data from NCBI website
From Algorithms to Objects • Read DNA assumed to be in 5’ to 3’ orientation • Use BioJava to read via http • Construct reverse complement (3’ to 5’) • From CAATT produce AATTG • How big is the human genome? • Runtime of algorithm O(1)