[Bluej-discuss] bluej-discuss Digest, Vol 52, Issue 12
Stephen Bloch
sbloch at adelphi.edu
Sun Oct 14 18:25:13 BST 2007
Aryeh M. Friedman" <aryeh.friedman at gmail.com> writes:
>1. Java is likely already too complex for a true beginners language but
>since qbasic is not around any more it is the best we have
A number of the people on this list agree: Java is too complex to
teach as a first programming language, no matter how good the IDE.
Many of us use Scheme as a first language (see
http://www.teach-scheme.org), and once students have grasped a bunch
of basic concepts (variables, functions, requirements analysis,
testing, function composition, re-use, helper functions,
conditionals, classes with fields, polymorphism, recursion,
higher-order functions, etc.) switch to Java and show how the same
concepts are implemented in a more "mainstream" language. Others use
Python, Alice, or a tiny pseudo-subset of Java as a starting point.
>2. Control flow is the single most confusing part of learning
>programming for most students.... 3. Almost all beginners have a
>very hard time mentally visualizing how there program is executed.
>What I mean by this is they often get then and else clauses mixed up
>and such or complex statements completely baffle them.
Some would respond to these problems by using the jGrasp IDE, with
its automatic code annotations for control flow. However, those
annotations don't say anything about the content of a Boolean
expression, only which code will be executed when. Another approach
is to use a functional, rather than an imperative/sequential,
approach in which the control flow and the execution model are
typically much simpler and more transparent.
> Specifically how to construct
>logically correct conditions (I was amazed when I found not a single one
>of my class mates or tutoring students [about 150 total] had ever heard
>of DeMorgan's Law).
That should be remedied in a Discrete Math course that all
programming students take in the first year; a programming course
shouldn't need to teach this, only to give concrete examples of it.
Coordinate with your Discrete Math instructor.
--
Dr. Stephen Bloch
Math/CS Department
Adelphi University
More information about the bluej-discuss
mailing list