Workshop Evaluations of the 2004 of HtDCH Workshop
Workshop Evaluations: July 2004
Question 1:
If someone (your boss, or your colleague) asks you 'what is the key
thing you learned in this workshop?', what would you reply?
An approach to teaching programming/CS that motivates learning "syntax/structures" at an appropriate point in time as opposed to teaching "syntax/structures" and applying them to examples. The result should be an understanding of CS as opposed to learning a bunch of memorized frameworks to recall.
The design recipe approach used in TeachScheme! is applicable to the
learning/teaching/programming in other languages, including Java.Design recipes
Design recipe. Abstract Collections.
Much better ways of teaching Intro CS instead of Intro Programming; and avoiding the worst of Java syntax when I'm trying to explain concepts.
How Scheme and its design recipe approach to programming can be used to begin programming in Java.
Organizing data, and the ability to abstract the data into useful classes is the biggest part of programming and CS.
Examples of using arguments + abstract unions and the datagram during method of showing how it works.
A far better pedagogy for computer science: 1. Exceeds the AP curriculum. 2. Exposes flaws in the AP curriculum. 3. Incorporate a logical and more natural flow of building knowledge. 4. Express flaws in AP languages.
How Scheme would transfer into Java ... and have a lot of work ahead.
I learned that this approach gives understandings that then can be applied to what AP does.
That the programming concepts taught in Scheme can fairly easily be transitioned to Java.
How to apply the Design Recipe approach to writing Java programs.
Question 2:
What topic/lab/lecture did you find most important/exciting/inspiring? Why?
The whole sequence that maps TeachScheme to teaching Java.
-- useful -- The methodological parts -- focus on data, restate contracts, etc.
Again, design recipes in general, one great concept that I want to use. Lots of great examples! Finally, a good reason to use UML diagrams!
The motivation of Interfaces was excellent. Matthias's pep talk cleared up a lot of doubts that I had about the approach - especially when he answered Don's question about when you have to admit that you have to change the approach to fix the fact that Java is broken.
The idea of teaching inheritance (at least, abstract classes) so early - I didn't have the guts to try it, but I think I will now. Also, I was irrationally excited by the graphics game I programmed; which shows me that my disdain for graphics is rather misplaced ... It'll be a great way to get kids excited.
The use of abstractions to develop the need for concept of interfaces. 2. the class wizard for its power in showing Java code as just another model of data definition. 3. The relatively clean and painless way of using graphical games for examples of programming.
The development of interfaces that mirror Comparable and Comparator where(sic) neat. They have helped me understand Java much better.
Problem Solving Design Recipe helps understanding throughout all topics. - abstract classes, abstract + concrete classes + implements.
Moving labmda into Java -- clumsy, but powerful. ...this...
... no answer given ...
Wednesday evening - a preview of stuff that I can dwell upon...
Friday morning - Java's use of lambda ...
Most of time - the design recipe experienced over and over again;
i.e. 'Read what the contract says on rest.f()...'Drawing - I know my students find this most attractive.
Abstraction - I haven's done it (other than here) but am hoping to get my students to the point that they ask for it.
Question 3:
What topic/lab/lecture did you find most
confusing/overwhelming/difficult and/or useless/irrelevant? Why?
I would have given more/smaller assignments with the graphics. Also, if the goal was to learn to use "libraries" (graphics stuff) that should be explicit in the exercises. The first time through new concepts should be accompanied with more guidance from the exercises.
Pretty quickly, things moved toward using Java vocabulary, where I was at a loss.
The way that methods seem to be added ad hoc to classes is a little bothersome. Will the design of a class include analysis of both data & operations before writing code? -- Where will the algorithms come in?
There was a lot of repetition in the labs. Probably a good idea for the students, but a bit annoying for those of us who have programmed in Java before.
The graphical model was completely confusing in lecture, until I actually played with it. It needs to be heavily revised, but it sounds like the ProfJ people are on top of it.
Obviously IFilter2 was most abstract. Nothing was useless/irrelevant. I am disappointed that the discussion of iterators was not scheduled during regular workshop hours - maybe as an option in place of a practice lab for those more comfortable?
Anything dealing with web pages still confuses me. And I'a not really sure why. - I haven's gotten to lambda in Scheme, so references to it still confuse me. Maybe I need to go to TeachScheme!2.
The last one dealing with IFilter2 when and how to use inner classes or Comparator.
Language levels for ProfessorJ that enforce some silly notions: i.e. 1. restricting if...else from having { }. 2. lack of static for beginning Java.
Methods for lists. trouble getting methods to work correctly.
The game stuff. The motivation of what went where and why -- 'wwww'.
Interfaces - by Friday my head was swimming.
Web pages - because I don't really have much understanding of the underlying data. -- When making examples, I have absolutely no idea if they are reasonable -- which I prefer. If I know that my examples are truthful representation of real data, I am more confident that my program will do what it is intended to do in 'real life'.
Question 4:
How do you expect to use what you learned in this workshop in your teaching?
I expect to use it directly in the I.B. curriculum which is less tightly focused on programming constructs in Java and has more emphasis on program design than the AP curriculum.
-- studying -- Next year I plan to use DrScheme in my -- half-year for 9th graders - Intro Computer Courses, most of which is about keyboarding, Office applications, and using the Internet. I will be studying -- teaching myself -- Java in preparation for teaching it to students the year after next; I hope, during this next year, to be using several different versions of Java, including DrJava, BlueJ, SDK with JGrasp.
One more time, design recipes -- this will be part of my classes very soon
I will use the design recipe. I am seriously considering using the rest of it. Most reservations I expressed in previous evaluations have been addressed to my satisfaction.
I start in Java, not really by choice, but I think I can jump right into this, if a tad slower. I worry a bit that this is a second semester class here at NU, so it seems impossible to come to a good stopping point by the end of CS1 -- when the kids get handed offf to another teacher -- . I'll have an interesting time convincing my colleagues of the efficacy of the TS! way, but I'll try. ProfJ seems not-ready-for-prime-time, but it'll be great when it's done.
I plan on replacing my work in APCS with KarelJ by using this stuff instead - maybe first quarter -- and thus more directly linking it to earlier Scheme work. Since this is a work in progress, let me urge that you rethink the naming conventions, especially abstract class and interface names. Example -- I think calling the interface Valuable rather than IValue connects to Comparable, ... and calling a class A anything is confusing.
I hope to be able to use this in my CS2 class this year during the second semester. It will also help me present things a little better to my CS1 kids through Scheme.
I am stuck with my curriculum but plan to use Design Recipe and examples and datagrams -- especially abstract, concrete, implements -- in all my classes.
This is the beginning of a 2-3 year process of adjusting the curriculum. -- School politics prevent anything faster.
Use it for transitions from Scheme to Intro to Java Class.
I wanna use your stuff in my Spring 2005 course HtDCH after Fall of 2004 with HtDP stuff.
I intend to use this in the fall to introduce Scheme kids to Java.
Programming II will start with ProfessorJ Beginner, following Programming I in DrScheme. I don't know if I will get as far as abstraction with them, but hope in the following year's AP course.