November 9, 2003

Bulk view

Summary of today

Finished the draft of my article for Crossroads. Submitted it already,
but haven’t received any confirmation yet. They’ll notify me of
acceptance or rejection within a few days. Had been thinking of
writing an article on constructivism and collaboration in computer
science education, or perhaps an article on the challenges we face in
a small liberal-arts college, or perhaps the need for alternative
teaching methods that do not require Internet access and fast
computers. Found myself unable to write a coherent article based on
those ideas, though. Grabbed my notes on tutoring and organized them
into a rough article. Come to think of it, those notes are more useful
for Crossroads’ target audience of students.

Also worked on the CS21A syllabus. With some trepidation, have decided
to go for an objects-first approach using the BlueJ learning
environment. Need to make sure to deliver results or the senior
teachers will frown on my experimentation. Feel, however, that this is
the right way to go. Want students to be able to _see_ how their
programs work, how it fits together. Expect them to outgrow BlueJ
eventually. Looking forward to teaching them Eclipse in CS21B, but in
the meantime, BlueJ offers many tools to help beginning programmers

Should also package BeanShell just in case I want to use it to
demonstrate other concepts. Its interpreter is more powerful than
BlueJ’s, but it has non-Java constructs.

Have also spent time browsing through BlueJ mailing list archives. If
am going to use experimental technique this semester (a few days from
now!), must make darned sure I know how to use it.

Sketched out opening day plan. Lots of tasks. Significantly more
housekeeping on the first day in order to support certain experiments
(study buddy, blogging), but hope that students do not get lost.
Revised classroom policies to explain _why_ things were prohibited.

Most students not content with teachers who read off the slides. In
fact, have not yet found anyone happy with that, although many okay
with it because it makes reviewing for tests easier. Still, it’s a
colossal waste of time.

Tomorrow: Will go to school for early morning meeting (yikes!), file
for new ID, install software on lab computers, have CDs burned, write
documentation, and prepare for school. Have way too much to do, but do
not have time to pack tonight so will end up coming home. (Must be
fetched, probably.)

Guidelines for BlueJ

– Guideline 1: Objects first.
– Guideline 2: Don’t start with a blank screen.
– Guideline 3: Read code.
– Guideline 4: Use “large” projects.
– Guideline 5: Don’t start with “main”.
– Guideline 6: Don’t use “Hello World”.
– Guideline 7: Show program structure.
– Guideline 8: Be careful with the user interface.

The ACM competition

Judging the 2003 ACM ICPC Manila regionals was tons of fun. Although I
was somewhat delinquent in terms of making problems – I’d only made
one which was simplified due to contest limitations – my problem was
nonetheless included and a few teams actually solved it.

It was a straightforward problem – a text-based database. Helpful
teacher that I was, I made several test cases that checked for
specific errors in program logic, but had to merge them into one
enormous test case for the contest. Coded the solution in 10 to 15
minutes and submitted it via PC^2 for testing. Very glad to see it
work on the first run.

Had some tussles with PC^2 and compiler support. Jerome knew the magic
cmd trick, though, so we managed to get all the compilers to work.

Glad to see the other people from the SEARCC contests. Seemed like
nothing had changed. Mike still crazy-funny self. Chipi still somewhat
insane (but very good). Mars (Gabutz) somewhat less insane (no more
Wendy’s action figures? awww).

Story: It was an hour or so before the contest and Ces still didn’t
have judges’ test data for her problem. General panic. We quickly
prepared 10 copies of a 10×10 matrix for her 3-D problem and started
filling in letters. We finished the test data but weren’t quite sure
if it worked, so I sat down and quickly wrote a solution. Actual
output and expected output differed. Inclined to trust program, so
copied actual output into sample output for initial testing and then
spent some time debugging the test data. (Debugging the test data!
Pfft.) Eventually worked. Felt very pleased when other people solved
the problem, as that confirmed that test data was now correct.

Rejoiced when a team finally solved my problem. Had been on pins and
needles previously as had thought my problem ridiculously easy, thus
lack of attempted solutions was most worrisome. A number of teams
didn’t test with sample output given in problem, tsk tsk.

Went bowling with Dominique, Chipi, Mike, Jerome, and Mars. Non-zero
score. Very happy.

Ateneo still top-ranked Philippine team. Yay. =) Also, they beat more
foreign teams than last year. 5th place, big improvement.

Must work on consistency, though. Last team freaked out and did not
solve any.