FM 101
FM 302
Money Gate

Com Sci Alone
Course Assignments & Resources
CTS & IB Course Bundling, Descriptions & Credits: html pdf wpd doc

2008 Iverson Exam [U of Calgary] [U of Alberta]

Why Study Computer Science [pdf]

Courses >>> CS 101 CS 201 CS 202
CS 31 IB CS 33 IB

CS 35 IB

Sedgewick

IBID 2003 Solns

Student Sites

Student Kjell

MIT Introduction to Computers and Engineering Problem Solving [Fall, 2005]

CS 302


1   2   3   4  

Chat Time


Association
of Computing
Machinery



Java
Programming
Notes



Java
Glossary



Programming
Concepts




ACM Java
Task Force


Kjell Tutorials[csg] [web]



CCC Solutions
[csg] [web]
[Java-Scanner]


Max
Surprise
Video




Girls'
Java
Cafe




Learn
Podcasting

Big Java Site

Horstmann's Site

Java-o-matic
Tutorials


Eclipse
Shortcuts


Install Eclipse & Plug-ins





Print Line Number In Eclipse

Jeff Hunter's Programming

10 Tips
[csg] [web]
Eclipse Video Tutorials

First Project

Code Completion

Refactoring

CVS
Deitel 8 9 10
Litvin's Interfaces
Inherit Tut: web csg Don't fear the OOP
Kjell's OOP: 25 26 27 28 29 30 31 32 33 34A 34B 35 50 51 53 54

Java World's
OOP Basics


Baldwin's
OOP Tutorials



[web]


Dictionary of Algorithms and Data Structures

Eclipse Tutorials

Dave Powell's Eclipse Video Tutorial

Eclipse for Beginners
[csg] [web]

Using the Debugger
[csg] [web]

Eclipse: Persistence
[csg] [web]

Show Me Do

Dossier 2006

Learn Javadoc

Learn Debugging

Learn UML

Learn JUnit

Make Jar Files

Prototype Solution

Learn Apache Ant

Generic Data Structure Viewer

Visual Paradigm

Kjell's Tutorials
GUI: 55 56 57 58 59 60 61 62 63 64
Exceptions & I/O Streams: 80 81 82 83 84 85 86 87

Deitel 14 16 19

Litvin's Lists Trees

Baldwin's
Data Structures
2008 ACSL All-Star Question Set
Standard IB Certificate
Alice Extended
Unified Modelling Language
Kjell's Assembly
Game Development
Ajay's Game Dev't.
Java Robots
Dr. Scheme
BlueJ
Robocode
Karel J. Robot
Karel Calculates PI
Marine Biology Case Study
SWING (Java)
An Eventful Approach
Analysis of Algorithms
Do C/C++ Using Eclipse
Skiena's CD on Internet


[csg]


GridWorld AP Case Study

CD 2003

Java Glossary

Java Practices

Best
Practices


Primary
Resources


Java
API 5.0


Interactive
Java
Class
Diagrams


Knoppix:
Linux CD
Waterloo: Com Sci 133
UofC: Com Sci 233
UBC CPSC 211 [csg]
Easy Buttons & Textfields
Files For Easy Buttons 
Sun's Tutorials
Sun's SWING Audiocast (pdf)
Sun's SWING Tutorial
Object First Approach
Java GUI Primer
Sun's Java Tutorial
Poseidon for UML
Smartdraw for UML
Thinking in Java
Think ... Com Sci
Intro to Java Prg
Java Au Naturel
Gamelan
Bleed At Keyboard
Brewing Java
Andrew's PASS Site

Java Programming Notes


Java Almanac Examples
Submit Java Source

Case Study 2006 (pdf)
No Questions Yet.

Walls & Mirrors: pdf ppt code

Pair Programming

Begin Java Objs pdf
Begin Java Objs ppt

IB Computing Home
IB Computing Home Java
Escuela Campo Alegre
Asseley.com
Free & Easy Java

Structures & Algorithms
Interactive Visualizations
Interactive AVL Trees
Data Structure Viewer
epp Searching & Sorting

Leggo My Logg-O
Circuit Simulation

7 Day UML local
7 Day UML remote

Donaldson's Com Sci Gate

[EFC Blue Ribbon - Free Speech Online]

[Swinging Gate]
Schaum's C++ Rational Class
Swiss Development
Source Code From Deitel C++ 4th Edition

Java 5.0 Enhancements Including Using the Scanner Class For I/O
September 25, 2005

Finally Sun MicroSystems has given Java a class that greatly simplifies user console input. It is the Scanner Class. Believe it or not, Sun simplified I/O in this particular way to make Java more compatible with the C programming language!

Mike Orsega of Central Carolina Community College made a PowerPoint presentation about new features in Java 5.0 that gives a very nice introduction to and examples of Java's new Scanner Class.

More explanation and examples are found in a supplement to Data Structures and Algorithms in Java 3rd Edition by Michael Goodrich and Roberto Tamassia.

I really like the somewhat more extensive explanations of Daniel Liang in updates to his textbook, Introduction to Java Programming, Fourth Edition.

Also check out Nell Dale's brief Scanner Class treatment.

Here's a small example using console code. Notice that Java 5.0 also intoduced a formatting option that is similar to but more limited than the printf() function in the C programming language.

David J. Barnes and Michael Kölling, authors of a great but limited book called Objects First with Java wrote a supplement to that book where they discussed some of the new language features available in Java 5.

Check out these other examples of I/O using the Scanner Class as well, taken from online material for the INTRODUCTION TO PROGRAMMING IN JAVA: COMP101 course at the University of Liverpool taught by Dr Frans Coenen.

All Churchill students programming in Java in courses beyond Computer Science 101 are expected to know how to use the Scanner Class, and students doing an IB dossier must use the Scanner Class for user console input."

Private, Protected, Default and Public Access
December 26, 2004

In a public forum Joseph Bergin of Pace University explains the subtle but important differences among these scopes.

At 8:57 AM -0600 12/17/04, Stephen Andreas wrote:
>Is it good programming practice to use protected fields in a class?
>Will an AP student loose points if they use protected fields on the test?

I will leave the second question for others.

Mostly protected is harmful in Java. You must understand that its meaning is different in Java than in C++. It is ONLY useful if you are writing a class in a package and you expect the class to be extended in another package. In library code this is useful. If you write a collection that will be extended elsewhere, for example, and especially if you put your code in a jar and SEAL it.

"private" means only this class can see the feature. "default" means that, in addition to the above, things in this package (including subclasses) can see the feature "protected" means that, in addition to the above, subclasses in another package can see the feature. "public" means everything can see the feature.

So in Java, you would often use default (no keyword) visibility where you would use protected in C++. It is intended for library code and for work on large projects with lots of programmers who work on different packages, not just different classes and simply must extend each other's work. You are OPENING visibility (over default), not closing it. Thus it is a problem for encapsulation, not a solution.

Joe
--
Joseph Bergin, Professor
Pace University, Computer Science, One Pace Plaza, NY NY 10038
EMAIL berginf@pace.edu
HOMEPAGE http://csis.pace.edu/~bergin/
---
"In theory, theory is the same as practice, but not in practice ."
- Fnord Bjørnberger

The Origins of "foo" and "bar"
December 26, 2004

We often use the otherwise meaningless method names "foo" and "bar" for examples with source code, such as when method foo calls method bar. Periodically a student asks about the derivation of these terms. Embarassing though it be, I have discovered that the origin appears to have been in an expression used by the U.S. military - "fubar" - meaning " Fouled Up Beyond All Recognition" - or something like that. Actually, the military used a somewhat different term than "fouled" - but you get the idea.

For a well researched explanation, consult the following link.

http://www.faqs.org/rfcs/rfc3092.html

IB Study Guide for 2006 Released
April 24, 2004

IBO has released the new Computer Science Study Guiide For First Examinations in 2006. The significant change is that Java is the only prescribed computer programming language whereas, prior to 2006, teachers could choose from among a number of different languages including Pascal, Modula 2C, Ada, Structured BASIC, C, C++ and Java.

Big-O Notation PowerPoint Slideshow
March 13, 2004

Owen Astrachan is a well known author of textbooks on computer programming. He recently gave a talk at The Computer Science and Information Technology Symposium 2004 which was held at SIGCSE in Norfolk Virginia in early March of 2004. Check out Owen's Big-O Notation PowerPoint Slideshow. Associated with that talk are the java source code files: FindKth.java and SortedFreqs.java.

Clear A WinTel App Screen in Java
March 7, 2004

Thanks to AP Computer Science teacher JOHN KNIGHTON [SMTP:anabalo@yahoo.com] for the code to clear an WinTel application's console screen in Java. He claims that it works on WIN 98. Unfortunately we could not get it to work with WIN 2000 or WIN XP.

Runtime.getRuntime( ).exec("mode.com con cols = 80 lines = 25");

Note that this code does not clear the "screen" of an applet since an applet does not run on a console "screen" but rather in a in a Java "frame" (window) of a browser. Applets "paint" a frame.

More discussion of the Runtime class is at When Runtime.exec() won't of Java World.

Visual Paradigm for UML
February 7, 2004

Visual Paradigm for UML looks to be an interesting and perhaps preferable alternative to Poseidon for UML in that the free VP-UML Community Edition at least prints one of each kind of diagram per project.

UML For JAVA Programmers
January 26, 2004

UML For JAVA Programmers is precisely the book that I have been looking for to guide the level and types of UML diagrams that our students in the International Baccalaureate program might fruitfully learn and apply without becoming overwealmed with what has become 800 pages of the diagramming documenation standard for all OOP languages.

Robert Martin, the author, argues that it is just as important to decide when not to use UML as when to apply it. Futhermore, he presents only those diagrams that are used most of the time when implementing Java code. Indeed, he completely avoids conceptual level UML and focuses exclusively on the specification and implementation levels and their corresponding UML diagrams, which is good because that is precisely where our students must perform.

Indeed, in Chapter 1 of UML For JAVA Programmers Martin argues that five types of UML diagrams "are enough for most purposes. Most programmers could live without any more knowledge of UML than what is shown here." [page 8] What are those five diagrams?

  1. Class Diagram: shows the major classes and relationships in the program.
  2. Object Diagram: shows a set of objecdts and relationships at a particular moment in the execution of the system. You can view it as a snapshot of memory.
  3. Sequence Diagram: describes how a particular method is implemented, clarifying the order of the messages.
  4. Collaboration Diagram: contain the same informaton that sequence diagrams contain, but clarify relationships between the objects.
  5. State Diagram: provides notation for finite state machines, useful for figuring out how a system behaves.

Videos About Math In Computer Science
January 22, 2004

I just learned of a great series of videos concerning various mathematical topics as they relate to Computer Science. Huge, important concepts are addressed. They're great!

They are part of the series For All Practical Purposes: Introduction to Contemporary Mathematics. You can purchase the videos outright or watch them as streaming videos after registering for no cost.

The five episodes that apply directly to Computer Science are:

  1. Computer Science - Overview
  2. Rules of the Game
  3. Counting by Twos
  4. Creating a Code
  5. Moving Picture Show

UMLet Is A Neat UML Sketch Application
January 11, 2004

Tempus Fugit, n'est pas? Pardon my Latinized French. It has been all too long since I made an entry to this page.

I just learned of a really neat application for making simple UML diagrams. It is written in Java, no less. It is simple to use and open source and thus free for the effort and time of downloading it. I recommend that those getting into UML download it and play with it. It doesn't by itself teach UML diagramming, but it looks like it would be fun (and simple!) learning UML with it.

You can find it at http://qse.ifs.tuwien.ac.at/~auer/umlet/index.html

EventHandler versus Anonymous Inner Classes
October 28, 2003

The Computer Science 31-IB class engaged in a spirited discussion yesterday after I indicated that I thought there should always be a separate GUI class instead of mixing the GUI creation code with application code. Then one student argued that he had seen arguments for creating a separate ActionListener class as well, but I didn't think that was as clearly called for as the separate GUI class because the actionPerformed( ) method often contains the application code, and the actionPerformed( ) method is invoked when the ActionListener object receives an event object.

Then the waters got even muddier when another student arugued for the convenience of anonynmous inner classes, which the Deitel [How To Program 4th Edition] text uses extensively. Many programmers prefer this method to alleviate hassle. On the other hand, as yet another student observed, netBeans automatically generates GUI code as part of a larger class.

Java 1.4 introduced the EventHandler class which dynamically generates listeners, which may be just as useful but replace the use of anonymous inner classes. An excellent and recent (October 21, 2003) article on this topic is Using EventHandler for event listening by IBM's John Zukowski. Zukowski concludes that "it is a matter of style. .... If an IDE generates the code for me, I'd probably just leave it instead of recoding the listeners as anonymous inner classes." Now that we have an authorative and definite reply, we know just how to proceed, right? (Yea, right.)

Run An Applet In BlueJ
June 4, 2003

Thanks to Anund McKague for identifying how to run an applet in BlueJ.

  1. You must first compile the applet.
  2. Select (focus) the applet icon.
  3. Click the right mouse button on the applet icon.
  4. Select "Run Applet".
  5. A dialog box appears.
  6. Select the preferences, Height and Width for the applet frame.
  7. Click "OK".

How To Terminate An Applet
May 11, 2003

Every now and then I read a posting that clarifies an important issue that was previously foggy. Why doesn't a Java applet have an exit button? How do you program the termination of a Java applet? The following posting gives a very clear explanation of that question.


----- Original Message -----
From: "Cristy McCloskey" 
To: "AP Computer Science" 
Sent: Wednesday, May 07, 2003 3:08 PM
Subject: [ap-compsci] Terminating an Applet with an Exit Button

> Is there any way to terminate an Applet/JApplet with an Exit button?  I
> have tried using the System.exit(0);, but that just causes the console
> window to crash and display a variety of messages.  I have also tried
> calling the destroy() method of an Applet and that does not work either.
> What am I missing?  Any suggestions?

-----Reply Message-----
From: Hanna, John
To: AP Computer Science
Sent: 5/9/03 7:00 AM
Subject: [ap-compsci] Re: Terminating an Applet with an Exit Button

Think of an applet as a 'subroutine' of the browser (or "appletviewer" -
just a little browser for the applet). The applet terminates when the
browser/appletviewer terminates (or visits a different page). Pay close
attention to the 5 important functions in an applet: init(), start(),
stop(), destroy(), and paint(). Dietel & Dietel have some good examples of
the purpose of each of these functions.

That's why an applet doesn't have a 'main'!

Rather than an 'Exit' button, try a 'Reset' button that returns the applet
to it's starting state. Or... have an 'exit' button hide all the controls on
the applet. This doesn't stop the applet, but it has the desired effect of
rendering the applet useless!

"the wind is still free",
   John Hanna
   Teaneck High School
        (201) 833-5567
   jhanna@teaneckschools.org
   www.johnhanna.us

         

UML Tutorials & Examples
April 6, 2003

[Smartdraw.com Logo]

Officially, according to UML (Unified Modelling Lanaguage) is:

A specification defining a graphical language for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems. UML 1.5 incorporates Action Semantics, which adds to UML the syntax and semantics of executable actions and procedures, including their run-time semantics.

UML (Unified Modelling Language) has evolved to become the industry standard for making diagrams of OOP language algorithms. SmartDraw offers some of the clearest brief explanations and examples of the nine types of UML diagrams that I have seen. They are:

  1. Class Diagrams
  2. Package Diagrams
  3. Object Diagrams
  4. Use Case Diagrams
  5. Collaboration Diagrams
  6. Statechart Diagrams
  7. Activity Diagrams
  8. Component Diagrams
  9. Deployment Diagrams

Students of the Java programming lanugage should attempt to learn and use UML diagrams as they very nicely provide various ways to document a programme's source code with OOP (Object Oriented Programming) diagrams.

ROBOTICS, LOGO & AI
March 14, 2003

[LOGO Foundation]

I had forgotten about the fun-as-all-get-out yet profoundly powerful LOGO language until I read an email tonight reminding me of it. Seymour Papert rocked the world of programming back in 1980 with a turtle that could be programmed by elementary students using a geometrically based version of the A.I. procedural language LISP (List Processing). The LOGO Foundation is a good place to start for resources and links.


[Terrapin LOGO] LOGO is fun and now it controls the LEGO Mindstorms robot. If you know someone who doesn't think they could ever learn to program, introduce them to LOGO. It is educational and, well, it is really fun!!

Smartdraw.com for UML
March 14, 2003

[Smartdraw.com Logo]

I recommended earlier versions of Smartdraw software to students for its ease of use in creating flowcharts and structure charts. It is good to see that they are also heavily into generating UML diagrams as well.

Poseidon for UML
March 14, 2003

[Poseidon for UML Logo]

The Unified Modelling Language [UML] has become the industry standard for diagramming objects in OOP languages. Throughout my teaching of Pascal and C++, I found that structure charts were powerful tools for students in the pursuit of understanding and representing the, well, the structure of a program that used procedures and functions.

In 2002, my first year of teaching Java, I again asked students to plan with and generate structure charts. It was doable but, somehow, the "structure" or "shape" of the program was not captured to the same degree. There are more functions (now called methods) in Java that are accessed from more classes for even the simplest of programs at a very early level. More seriously, the interaction of methods among the classes was not captured by structure charts. Structure charts are still a powerful tool for understanding, but better visualization tools were clearly needed.

For years I have required that students also create class and object diagrams which were simple but sufficient for the relatively limited use of objects that my students made of OOP in C++. Java has presented an entirely new level of intensity in the use of OOP in programming. In 2002 it become apparent to me that the need for a greater variety and detail of OOP documentation is called for with the use of the Java programming language. That is where UML comes in.

I am now convinced that UML tools and modelling are the way to go in capturing the structure and interaction of classes and objects in Java. Poseidon for UML at this point is represented as a significant tool in learning and applying UML to programs created in the Java programming language. Our trial begins. Poseidon looks very strong indeed. We shall see.

IB Computer Science Text Available
January 11, 2003

[IB Computer Science Text Book]

Finally, more than a year after first hearing of its completion, the first official IB Computer Science text book is available for purchase at IBID Press in Australia for $A45.00.

The Canadian Bank of Canada Currency Converter on February 10, 2003 pegged 1 Australian dollar at 0.9031 Canadian dollars, making the $A45.00 price tag to be a fairly modest $40.64 Canadian. Of course, the UPS charge for shipping it from Australia will add something to the cost, but even so, with computer science text books frequently costing in the $100 CDN range, the cost of this text is refreshingly modest.

Karel Goes Fishing
January 11, 2003

Here is a fun game from PSVM (Public Static Void Main) intended to hook students onto looking at the Marine Biology Simulation Case Study required by the Advanced Placement syllabus.

Intro To SWING Audiocast
December 21, 2002

Sun MicroSytems has a wonderful array of resources for teaching Java, including their Technology Audiocasts that deliver technology tutorials in MP3 and RealAudio formats as well as corresponging pdf files. One particularly relevevent audiocast for my students and I at this point is the Intro To SWING Audiocast. I think these audiocasts and just great. Try out this one and let me know how you liked it.

Good Java "Home Site"
December 21, 2002

I am always on the lookout for great websites that offer clear tutorials or examples of how to better understand and learn. The explosion in Java related software technologies and the language itself has pressed high school programming teachers (and others, to be sure) to move ever more rapidly to identify, generate, and communicate learning resources. I found two websites that may address a number of difficulties that my students have recently encountered.

The Queensland University of Technology [QUT] in Brisbane, Australia offers courses in their Faculty of Information Technology [FIT] on Software Engineering, one discipline that computer programming falls within. Some of these courses address content and objectives similar to that which my students and I are grappling with in the courses that I deliver. QUT FIT courses (just love abbrev's.) employ a Peer Assisted Study Scheme [PASS] which uses senior student leaders to assist and support other students taking FIT courses. One PASS leader named Andrew Yau has a great web site for beggining learning to program in Java. It is appropriately entitled ANDREW'S PASS HOMESITE.

On Andrew's site, you will find examples and links related to elementary Java, frequently asked questions about installing Java and using packages, SWING and AWT, testing and debugging Java code. I recommend that you take a peek!

Computer Science Lab
December 8, 2002

I recently read of a terrific high school curriculum developed by a parent in the U.S. that begins with programmable calculators, then assembly language, then C++. We had an even broader curricula here at Churchill a few years ago and it was very popular. It offered experiences in the history and philosphy of computer science, HTML web page design, assembly language and higher level languages such as Pascal and C++. Changes in both provincial and school philosophy curtailed the amount of time that students could spend in a specific stream of courses, especially at the grade 10 level. That policy has recently been softened to consider the specific needs of students, thank goodness.

Check out Computer Science Lab for this self-paced computer programming curriculum. It is very much in the right direction.

SWING GUI Added to Computer Science 202
December 6, 2002

I have moved the study of the SWING GUI classes to the beginning of Computer Science 202. The SWING classes amply demonstrate implementation of OOP techniques such as polymorphism. Add to that the benefits for Java students to be intimately comfortable with SWING's GUI components while implementing substantive algorithms in the OOP chapters 8 and 9, and we have powerful arguments for placing a focused study of SWING classes into this course even before studying the OOP chapters.

This placement of the SWING material early in the OOP Computer Science 202 course comes after observing that the more challenging problems in the OOP chapter 8 and 9 actually require that background.

I have consequently removed the String Manipulation chapter 10 and Exception Handling chapter 14 from the Computer Science 202 course and tentatively placed them in the Computer Science 302 course from which I have removed the SWING GUI chapters 12 and 13.

GRAPHICS FOR JAVA
Download it for free.
Java: An Eventful Approach
December 1, 2002

A new book and all supporting materials for learning Java from the beginning that emphasizes graphics and mouse events is Java: An Eventful Approach. It looks fascinating. I have added it to the alternatives that students may choose to study in the Computer Science 202 course. If you work with the material, let me know how you liked it and how you think it fits with the rest of our computer science courses at Churchill.

Thinking In Java 3rd Edition
Download it for free.
December 1, 2002

Bruce Eckel has just released the final version of the third edition of one of the easiest books on the market from which to learn to progrm in Java with, Thinking In Java 3rd Edition. Happy studying!

Com Sci 202 Course Summary
November 3, 2002

I spent my Saturday morning and afternoon developing the Com Sci 202 Course Summary in preparation for our new term, which begins tomorrow. This course is still officially known to our counselling department as Computer Programming 301. The name changes will appear in our new course planning guide for 2002-2003 which is usually published just after Christmas.

This will be the first class of that course using the Java computer programming language. Links to each of the Deitel textbook chapters used in this course will be found at the top of this "Welcome Page".

Thinking In Java 3rd Edition is Out
October 27, 2002

Bruce Eckle's Thinking In Java 3rd Edition is one of the most readable and enjoyable Java books ever written. It concentrates on WHY Java is what it is and does what it does. It is in html format and it is free for the effort of downloading it. Don't worry, the author makes his money from those preferring to purchase the hard copy and from the many presentations and seminars that his superb, excellent electronic books generate.

For the same price (free), Bruce also offers Thinking in C++ and Thinking in C#. You will find both at the same link as Thinking in Java.

Get Sun ONE Java IDE
October 27, 2002

The Deitel web site recently posted a wonderful 65 page pdf (portable documemt file - to be read with Adobe Acrobat Reader) - 1.7 MB - that describes how to download, install and use one of the most powerful Java development environments available. (Incidently, it is also free for downloading!) This is precisely what we need to get this super Integrated Development Environment up and going.

Just click on Dive Into Sun One to download the zipped file. Unzip it, read the file into Adobe Acrobat Reader, and follow the directions.

Incidently, I continue to promote JCreator as the very best IDE that I know of for beginning to program in Java for all sorts of reasons: speed, simplicity, ease of use, wide collegial and student acceptance. That said, the sheer power of the Sun ONE Java IDE and the fact that the community edition remains free for downloading makes it a very attractive IDE to grow into after JCreator.

Com Sci Gate Mysteriously Reappears At

www.donaldson.org/

October 26, 2002

For two months Com Sci Gate could not be accessed via the Internet. Nothing I did seemed to work. Then, this last week, mysteriously, my students started reporting that they could access Com Sci Gate via the Internet. I have no idea why it did not earlier work and why it is now working, but I am delighted that it is again available beyond my school's lab. It has been evolving for over six years and I use it to archive resources and organize my courses and presentations. May it survive another season without crashing ... again.

Java Marine Biology Case Study Released
September 24, 2002

Finally it is here. Advanced Placement's Java based Marine Biology Case Study has been released, and it looks terrific wrapped in its new GUI environment. It may be downloaded from AP Central at Computer Science A and AB: Marine Biology Simulation Case Study. This is exciting!

Deitel Java Resources
August 27, 2002

I recently generated an annotation for the Deitel Java resources that I use and/or refer my students to. You may download it in either WordPerfect format or Adobe Acrobat format.

Pair Programming
August 24, 2002

Pair programming is one of the most touted programming practices of recent years. Many high school students will claim that they have done this all along. Simply put, it is the interaction of two programmers working together, programming together. There is now a rapidly developing literature on techniques of precisely how best to do this.

Laurie Williams of North Carolina State University has produced a video to illustrate pair programming in action. It is at <http://collaboration.csc.ncsu.edu/pairprogramming/PP-Demo.zip>. What is there is a 40M zip file of an mpg file, which will expand to about 80M when unzipped. The video is just above 5 minutes in length.

You may also play it directly by clicking here.

Donaldson's Timetable
August 21, 2002

I just got my new timetable. These links will give you an idea of when I teach and what I teach.

I'll Be Gone Until August 11
July 18, 2002

I have updated a number of handouts on installing course software at home and I revamped the links format so students may single click their way to instructions for a specific chapter in their course. That is far from finished and will wait until I return after August 11, 2002.

I also generated a significant document which attempts to describe our new Computer Science program and the relationships among the courses and their prerequisites and which fits entirely on a legal sized (8.5" x 14") sheet of paper. Check out CTS and IB Computer Science Courses, which is also linked to the "New Courses" heading in the above Assignment Table.

I have also tried to clean up my Primary Resources Page. There really are some excellent resources available for learning about Computer Science generally and programming with Java specifically. As students and colleagues view this page, I think they may come to understand why I have been so persistent in building our program around the Deitel textbook: Java How To Program Fourth Edition.

What I have not done is specify exercises for courses beyond Computer Science 201, and even there I have some significant work to do. That will have to wait. Students working on Java over the summer should do 3-4 significant problems per chapter, one for each significant concept. Show these to me in September and challenge the courses by taking paper and pencil tests, and your summer efforts will be well recognized.

Meanwhile I'll be attending a Dr Scheme Workshop at Delphi University on Long Island, New York next week; then a couple of weeks playing tourist in Boston, New York and Washington, DC. Incidently, I am paying for all the travel and accommodation associated with the workshop.

Clothes Do Make A Difference
July 3, 2002

I was reading a doctoral dissertation ( page iii) by Duane Jarc (pdf = 666 KB = 246 pages) today and was struck by a quote in his dedication.

I have serious reason to believe that the planet that the little prince came from is the asteroid known as B-612. This asteroid has only once been seen through the telescope. That was by a Turkish astronomer, in 1909. On making his discovery, the astronomer had presented it to the International Astronomical Congress, in a great demonstration. But he was in Turkish costume, and so nobody would believe what he said. Grown-ups are like that. . . . Fortunately, however, for the reputation of Asteroid B-612, a Turkish dictator made a law that his subjects, under pain of death, should change to European costume. So in 1920 the astronomer gave his demonstration all over again, dressed with impressive style and elegance. And this time everybody accepted his report.
Antoine De Saint-Exupéry

Incidently, Jarc's dissertation addressed the effectiveness of using web-based visualization in learning searching and sorting algorithms that our students study in Computer Science 201. I recommend that students considering a career in computer science take a peak at Jarc's dissertation. That is the sort of thing that you must do to get a Ph.D. in this area.

Sorting With Stacking Cups
June 25, 2002

It was a tremendously successful experiment, in my opinion. For years learning sorting algorithms has been tedious, to say the least. This year I introduced the use of visualizations and stacking cups. What is more, I did so with both my grade 12's and a self-selecting group of eight beginning Java students. One was grade 11; the other seven were grade 10 students.

Judge for yourself as you watch AVI clips of their final tests .. a physical demonstration of each of four different sorting algorithms using a dozen toddler stacking cups.

2002 Dossiers Are Posted
June 24, 2002

I ask my students to accept the premise that, as professionals, we are responsible for publishing the results of our contributions to our professional community. In this case that community consists of past, present and especially future students in the International Baccalaureate Higher Level Computer Science program. Com Sci Gate is our current organ of publication for my students' dossiers. The worst are good and the best stupendous.

Most (not all) of this year's dossiers are now posted on this web site. Go to the menu on your left and left click the PLUS SIGN (+) beside "International Baccalaureate" revealing a drop down menu whereupon you should left click the PLUS SIGN (+) beside "Dossier Projects" revealing another drop down menu whereupon you should left click the PLUS SIGN (+) beside "C++ 2002" revealing another drop down menu whereupon you should left click on the name of any one of the students. A web site created by that student will then launch in a separate window.


[Counter On Strike [Home of Gerry Donaldson's Com Sci Gate]
[Gerry Donaldson's Email Address]
gerry@comscigate.com
[EFC Blue Ribbon - Free Speech Online]

On the Internet Since March 9, 1996    URL:   http://www.comscigate.com    Last Revised:   January 19, 2006.