What to do after Python?

Sheila King sheila at spamcop.net
Wed Feb 21 21:43:18 EST 2001

On Tue, 20 Feb 2001 23:16:03 -0500, D-Man <dsh8290 at rit.edu> wrote in
comp.lang.python in article <mailman.982765660.17876.python-list at python.org>:

:| :Sheila King <sheila at spamcop.net> wrote:
:| :> I teach C++ as a first programming language to high school students, via the
:What part of the country do you teach in?

Orange County, California.

:| :> AP Computer Science Curriculum. (The course I teach is supposed to be
:| :> equivalent to a first semester University course for CS majors.) I think that
:| :> the trick, is to use a carefully selected subset of the C++ language.
:| :
:| :- In C++, there are so many low-level issues the programmer has to
:| :  take care of that it distracts from the problem to be solved -- not
:| :  very helpful for learning how to program.
:| I never suggested that C++ was the best choice for a first programming
:| language. In fact, I personally don't care for it, myself (as a first
:I agree with these, C++ is too low-level to beginning.  Something like
:Eiffel, Java or Python (the last shall be first ...) would be better
:suited, IMO.

Whatever. The original question in this thread wasn't even about a
recommendation for a first programming language. It was about a recommendation
for a second language, after having learned Python. I would assert, that after
learning Python, one (among many) appropriate choices for a second language,
would be C++ (as others have also recommended).

:| language). However, the course that I am teaching requires that it be taught
:| in that language. For more information about the AP Computer Science program,
:| go here:
:| http://www.collegeboard.org/ap/computer-science/
:| I didn't write the course. I just teach it.
:Someone ought to point out to the AP committee(s) the pros and cons of
:the various languages, then they would decide that Python is better

I assume you put the winking smiley, because you know that's been done to
death? (I run one mailing list for APCS teachers, and subscribe to another,
and have read many of the language wars on the lists over the last few years.)
To see me suggest/ask about others opinions of Python, read this search result
from the archives of my mailing list:

See professors from Rice University suggest Scheme as a first programming
language, with this search result of my mailing list:

The official College Board list, doesn't have public archives, but alternate
languages have been discussed even more on that list. Let me also point out,
that at many schools, the AP Computer Science course is not a first
programming course, but often a second or third programming course.

C++ remains the official language for the exams to be given in May 2001, 2002,
and 2003. Beginning in May 2004, until the foreseeable future, the programming
language will be Java.

:My brother and his friend
:took the Intro to C++ course (20 weeks, half-year) last year.  I don't
:think they should call it C++ because they barely got throuh if,
:while, for, and functions and didn't mention classes at all. 

I can't speak for what others schools do. A semester course in C++ for a first
programming course certainly doesn't sound like enough time to me.

Here is what I covered with my students before Xmas break:
Karel++ Chaps. 1-5
(see http://csis.pace.edu/~bergin/karel.html )
Introduces Object/class/inheritance. Loops, conditionals, defining new
classes. That was the first 1.5 months of my class. In the next two months I
covered (teaching the C++ language) all the basic types, conditionals, boolean
expressions, arithmetic expressions, all the different looping structures,
functions that return a value and void functions, nested loops, and a brief
intro to the apstring class and a brief intro to value vs. reference

Before the end of the first semester, I also introduced some additional
classes from the Marine Biology Case Study that I have to teach.

Since the end of the first semester (Jan), we've covered file I/O, the
apvector class, structs, enumeration types and just started writing our own
classes yesterday. My students will learn all of the A topics listed on this

before the end of April. (I have a few studying independently, who will also
learn the AB topics, as well.)

I think one point of the AP committee that should be mentioned, is that the
course is not advertised as a C++ course (it is not intended to teach the
language), but rather as a Computer SCIENCE course, thus the emphasis on
things like program design, sorting algorithms and the like.

: I highly
:doubt they used any of the C library stuff (like str functions).  They
:didn't use new/delete or malloc/free either.

I hardly think that memory management is an appropriate topic for a one
semester, first programming course. Also, malloc and free are not C++. They
are C. new/delete are only used with pointers??? And other dynamically
allocated types?

: Actually, I think it is
:a bit unfair and misleading to tell the students they are learning C++
:when they don't even mention 90% of the language to them.

Do you know for a fact, that that is what the students were told? Or did you
only hear the students' version of what they thought they were told? (These
are not always one and the same, says the 18-year veteran high school
teacher.) In any case, I cannot really have any meaningful comment on what
isolated schools do. I suppose that if they really told the kids they were
"teaching them C++" in such a way as to make the kids believe, that in one
semester, they would know the entire C++ language (something I find hard to
imagine), then that wasn't very nice.

:  It would be
:really cool if they taught a nice, clean, small and very useful
:language like Python instead, but ...

You will see me suggest some of the exact same things on the archives of my
mailing list. I don't recall anywhere suggesting that I recommended that C++
be the first programming language of choice. I merely said, that it could be
done. I stated that only in the context of justifying it as a reasonable
choice for a second language, for someone who had first learned Python.

Sheila King

More information about the Python-list mailing list