Computer Science Education

The following describes publications on computer science education by Ian Parberry. See also publications on game programming education. My coauthors in this work include my colleague Mike Fellows, of MegaMath fame. Regrettably, we didn't get to work together as much as I would have liked. Bill Gasarch and I collaborated on the Second Edition of Problems on Algorithms below.

Algorithm Explorer (2007)

Thumbnails.

Erik Carson, Ian Parberry, and Bradley Jensen, "Algorithm Explorer: Visualizing Algorithms in a 3D Multimedia Environment" Proceedings of the 2007 ACM Technical Symposium on Computer Science Education, pp. 155-159, March 2007. [pdf, BibTeX]

Abstract

Computer science courses have increasingly made use of visualization tools to illustrate common algorithms. This paper describes Algorithm Explorer, an educational tool designed for use by instructors and students to examine algorithms in a rich environment composed of 3D data representations, 3D audio cues, and easy-to-use controls. Instructors and students can easily add calls to Algorithm Explorer's C++ API to their programs to quickly develop engaging visualizations, and every detail of the scene can be customized as the developer desires.

Lecture Notes on Algorithms and Complexity (2001)

Thumbnails.

I. Parberry, Lecture Notes on Algorithm Analysis and Complexity Theory, Fourth Edition, 2001. [pdf]

From the Preface

These lecture notes are almost exact copies of the overhead projector transparencies that I use in my CSCI 4450 course (Algorithm Analysis and Complexity Theory) at the University of North Texas. The material comes from

Be forewarned, this is not a textbook, and is not designed to be read like a textbook. To get the best use out of it you must attend my lectures.

Students entering this course are expected to be able to program in some procedural programming language such as C or C++, and to be able to deal with discrete mathematics. Some familiarity with basic data structures and algorithm analysis techniques is also assumed. For those students who are a little rusty, I have included some basic material on discrete mathematics and data structures, mainly at the start of the course, partially scattered throughout.

Why did I take the time to prepare these lecture notes? I have been teaching this course (or courses very much like it) at the undergraduate and graduate level since 1985. Every time I teach it I take the time to improve my notes and add new material. In Spring Semester 1992 I decided that it was time to start doing this electronically rather than, as I had done up until then, using handwritten and xerox copied notes that I transcribed onto the chalkboard during class.

Problems on Algorithms (1995, 2002)

Thumbnails.

I. Parberry, Problems on Algorithms, Prentice Hall, 1995. Second Edition, with William Gasarch, 2002. [pdf]

From the Preface

The ability to devise effective and efficient algorithms in new situations is a skill that separates the master programmer from the merely adequate coder. The best way to develop that skill is to solve problems. To be effective problem solvers, master-programmers-in-training must do more than memorize a collection of standard techniques and applications - they must in addition be able to internalize and integrate what they have learned and apply it in new circumstances. This book is a collection of problems on the design, analysis, and verification of algorithms for use by practicing programmers who wish to hone and expand their skills, as a supplementary text for students enrolled in an undergraduate or beginning graduate class on algorithms, and as a self-study text for graduate students who are preparing for the qualifying (often called "breadth" or "comprehensive") examination on algorithms for a Ph.D. program in Computer Science or Computer Engineering. It is intended to augment the problem sets found in any standard algorithms textbook.

MegaMathematics (1993)

M. R. Fellows and I. Parberry, "SIGACT Trying to Get Children Excited About CS", Computing Research News, Vol. 5, No. 1, p. 7, Jan. 1993. [pdf]

From the Preamble

As an emerging discipline, computer science has a serious communication problem. The public generally is ignorant of what computer science is and what computer scientists do. They tend to hear the word "computer" and assume that we are some kind of technicians. Is it any wonder then that computer science is represented in many schools by either computer games or some antiquated approach to programming, which at worst concentrates on a litany of syntax and at best emphasizes expediency over effectiveness and efficiency? But computer science is not about computers - it is about computation.

Author's Comments

There's a quote in this article that is often attributed to Edsger Dijkstra.

"Computer Science is no more about computers than astronomy is about telescopes"

It appears twice in our article (see the pdf and the images below), once in the running text, and once in a breakout box with "Computer science" abbreviated to "CS".

Our quote.

My coauthor Mike Fellows made a similar statement on p.2 of a 1991 paper (the italics are his):

"Computer science is not about machines, in the same way that astronomy is not about telescopes"

Dijkstra visited the University of Victoria in 1991 or 1992 (Mike's memory is unclear on the exact year), where Mike enthused to him about the MegaMath project over dinner. According to Mike, the quote in question was a rallying cry in that period. Mike is responsible for writing "Computer science is no more about computers than astronomy is about telescopes" in the draft of our 1993 article. I added the afterthought "...biology is about microscopes or chemistry is about beakers and test tubes."

Consulting the extensive archive of Dijkstra's manuscripts at UT Austin, Dijkstra's use of the quote appears to be from a video made in Fall 2000 for Dutch television, broadcast in April 2001. His quote appears at about 1:33 into the video, screenshots of which are given below.

Dijkstra quote.

I believe that Dijkstra's quote should be attributed to Mike Fellows, since it is fairly clear that Dijkstra heard it from him. Although the earliest appearance in print appears to be in our 1993 article, in my opinion Mike deserves sole attribution. He made up the part that is quoted so widely. I simply tacked on a bit at the end that nobody bothers to quote. Here it is again, correctly attributed for posterity.

"Computer Science is no more about computers than astronomy is about telescopes."
Michael R. Fellows

Here is the attribution for the complete quote:

"Computer Science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes."
Michael R. Fellows and Ian Parberry
Computing Research News, 5(1):7, 1993

Created June 8, 2010. Last updated September 17, 2019.