Recent Reports of Adopters of HtDCH Curriculum
Dan Anderson, Viewpoint High School, Viewpoint, CA
March 8, 2006
Last year, all of my students earned four's and five's on the AP Computer Science exams. Using HTDCH made it easy to teach abstraction and interfaces, topics that typically give students difficulties. Students from other schools have asked me to tutor them and have expressed that when I explain Java to them they "get it" but have difficulties understanding their teachers.
Your material gives my students a competitive advantage over other students in college. Their programs are better structured and clearer to read. Today one of my students, interested in learning C asked me why all of the C books on my shelf are so advanced (they are just a collection of a lot of normal C programming books from about ten years ago). This student was cultivated on HTDP and had not had to learn from any of the industry standard C text books. He was very surprised when I told him that these text books were standard learning text books ten years ago.
Thank you for such wonderful teaching materials.
Michael Olan, Richard Stockton College, Pomona, NJ
January 19, 2006
I certainly support your efforts in developing the HtDCH curriculum. The workshop you held in Summer 2004 was an excellent introduction to a sound collection of simple design techniques that are appropriate at all academic levels.
I regularly teach CS-1 and Data Structures in the fall semesters. Since we do not use Scheme or HtDP in our intro courses, I need to make adjustments to adapt HtDCH for my CS-1 course. However, the basic principle of design recipes is an integral part of my course. Thus I combine HtDCH with the more standard textbook, IDE, etc. approaches which unfortunately brings along some excess Java baggage but HtDCH techniques still have an important place. In particular, the three step process for designing classes, and the design recipes for methods have become standard practice in my CS-1 course.
I also use these techniques in Data Structures. Students may have developed other design habits by then, so I still emphasize the significance of the techniques mentioned above and how they can simplify software design. One example I particularly enjoy is to cover a traditional approach to linked lists following the typical textbook implementation. Then show the students the recursive list approach done in HtDCH. It never fails to leave a lasting impression on a class to see a complete list implementation easily developed in one class period with so little code. Later in the course I have the students develop a binary tree implementation similarly, and the task is much less intimidating.
I do strongly endorse the HtDCH approach and fully support your efforts to further refine it and spread the word to the masses.
David G. Kay, University of California, Irvine
January 20, 2006
Design is the most crucial and most difficult aspect of software development, and teaching design is the most difficult aspect of software development pedagogy. Based as it is on an introductory course in Scheme (which allows students to reach the fundamental concepts early, with far fewer inessential details than are imposed by most other languages used in introductory instruction), HtDCH introduces students to an industrial-strength language in a staged, principled, graduated way, drawing on the understanding students already have of the key concepts.
Lon Levy, Chair of Computer Science Department, Oregon High School, Oregon, WI
Thursday 19 January 2006
The concepts presented in HtDCH, combined with information about the Advanced Placement curriculum of the College Board that I learned about at several other workshops, enabled me to tremendously improve the computer science curriculum at Oregon High School. First, HtDCH made it reasonable for me to teach the Advanced Placement Computer Science AB: Data Structures curriculum (the equivalent of a second semester university level class) instead of the A curriculum (the equivalent of a first semester university level class). Further, I was able to modify the Advanced Placement Curriculum so that I can now teach the Data Structures AB curriculum in a way which my students can unde stand not just the material on the AP Exam, but also the underlying theory of object oriented programming. Dr. Proulx taught me specific techniques that I am using for the Advanced Placement year with my high school students. My students have a solid understanding of Java hierarchies and data structures.
One of my students from last year, now studying at Winona State University, reports back to me that understanding class hierarchies, using Dr. Proulx's approach, has made her Sophomore level computer science classes easy. She is tutoring her fellow students. The HtDCH approach makes a big difference for students who continue in computer science and related fields.
I have neither seen a textbook nor any other workshop that I have attended (and I attend three to five workshops like this every school year) where this material is so understandable.
Stephen Yanover, Henry Wise Wood Senior High School, Calgary, AB
January 18, 2006
I had occasion to teach a course using the HtDCH curriculum from September 2004 - January 2005. The students ranged from those who had a semester of TeachScheme! to those who had a 4 day introduction to the TeachScheme! material. All of the students were able to relate their prior learning in Scheme to the concepts presented in HtDCH. Their familiarity with structs in Scheme allowed them to understand the notion of classes in Java. The emphasis in HtDCH is on breaking down the problem statement to determine what fields you will need. Designing class diagrams gave the students a starting point in analyzing the problem. Early introduction of Object Oriented Programming concepts and the use of the ProfessorJ environment allowed the students to program from the start. Abstraction is introduced early on. UML-like diagrams help students in the design of their classes. Spending time early on designing classes before the introduction of methods reinforces the importance of good class design. I look forward to using this material in the future when I next have the opportunity to teach introductory Java.
Vincent Cowal, Jesuit High School, Portland OR
January 18, 2006
I have taught the HTDCH curriculum once, last spring, and I plan on using it again next semester.
My students were sophomores-seniors who completed one semester of the HTDP curriculum, through binary trees. We used HTDCH for the second semester, and we basically covered all parts of the book written by last spring.
This curriculum, I find, is a superb transition from Scheme to Java. My students were very successful in creating and implementing class hierarchies; the design process is a great help. With all the practice afforded by HTDCH, the students were comfortable in their understanding of inheritance and interfaces. Of course, list processing is natural and makes sense.
Those students who went on to take the year-long AP class with me have been very successful with the AP curriculum.
Dennis McCowan, Weston High School, Weston, MA
March 10, 2006
This year's use of Prof J was even more successful than last --- combined with the hard to measure factor of a stronger group of kids I'm at least three weeks ahead of where I was when tecahing APCS without it.