

British exam board removes C and PHP from Comp-Sci A-Levels - petercooper
http://www.theregister.co.uk/2010/05/12/aqa_c_php/

======
elbenshira
I'm not from the UK, but I think this is silly. Consider their goal:

"The Computing A Level is not intended as a programming course but a course
that covers the fundamentals of computing of which programming (and problem
solving) form a key component."

I'd say that C is a key component of computer science; it is the closest thing
to the hardware withholding assembly and machine code.

I think schools should teach C, Lisp, and Python. Paul Graham tells it well in
his "The Roots of Lisp" essay (<http://www.paulgraham.com/rootsoflisp.html>),
where he asserts that C and Lisp are the two clean programming constructs in
which languages of the future will be based off (and this has held true in my
opinion). Python falls in the middle of C and Lisp and thus is a useful
comparison (and everyday-living) language.

~~~
daeken
In addition to C, some Lisp, and Python, I'd say that a strictly typed
language would also be good. Some ML derivative would probably be good. At
that point, you've at least touched the whole spectrum. (Well, outside of
assembly, but as much as I love it, its usefulness is dropping every day...)

~~~
rntz
"Touched the whole spectrum"? Hardly. What about logic programming languages
(eg. Prolog), stack-based programming (eg. Forth), concurrent programming (eg.
Erlang)? And that's leaving out more esoteric ideas like FRP (Functional
Reactive Programming), the funky type systems needed for efficient purely
functional languages, and the less-well-known OO constructs (multimethods,
metaobject protocols, etc).

No CS curriculum can ever both touch the whole spectrum of what there is to
offer and be reasonable to mandate for all students. Inevitably, some students
will want the minimum necessary for practical work and others will want to
explore as many avenues as possible. The importance is in striking a good
balance: exposing students to enough different paradigms to produce good
computer scientists without requiring so much that they never get enough real
experience with specific languages to be good programmers.

~~~
Zak
_and the less-well-known OO constructs (multimethods, metaobject protocols,
etc)_

Using Common Lisp provides the option to do that, but there's still plenty
from the realm of programming languages that would be left out. It might me a
mistake to try to do too much at the high-school level though; C, Lisp and ML
would allow access to a very broad range of programming concepts - far more
than any three of the approved languages.

------
angrycoder
Pascal/Delphi? Visual Basic 6? Those are still in the wild? As TEACHING
languages? That is the definition of "please, think of the children".

~~~
gaius
Pascal was _invented_ as a language with which to teach procedural
programming. Using it for "real work" came later.

~~~
ohashi
Pascal was one of the first languages I learned, only after learning Pascal
did I really understand a lot of fundamental concepts. That said, I never used
it to make anything half-useful. I used C, C++, PHP, Java.

------
petercooper
_I understand that the reason for AQA dropping C#, PHP and C from the AS
Computing examination is one of demand_

The institutions choosing the languages to teach to students are crazy if they
think choosing Delphi, Python, or VB will provide them with better
opportunities in the future than C, C# or PHP. And if practicality isn't
concern #1, then why not pick a language that's _really_ well-suited to a CS
education, like LISP/Scheme?

------
blahedo
This is just bizarre: _"Teachers planning to use Java are warned that many
universities are considering dropping it from their first year computer
science programmes, "as has happened in the US"."_

There certainly are some places where Java is on the outs, but this makes it
sound like US universities have entirely moved away from Java, which is
completely untrue.

~~~
alexgartrell
Carnegie Mellon Universities new undergrad curriculum has no mandatory Java
courses. The students will be able to learn Java, but will not be forced to.

In case you were curious, the intro class will be python, and then later
classes will be ML and a new language that is a typesafe C (currently in
development at CMU). After that, they'll learn C.

Of course, CMU is just one school, but it definitely represents a departure
(and the lack of any mandatory OO-focused languages (yeah yeah, Python HAS
classes, but you don't HAVE to use them) is weird).

~~~
endtime
Stanford still uses Java for the intro classes (as well as a number of grad AI
classes - info retrieval, NLP, general game playing, and probably others I'm
not thinking of). I don't see it getting replaced here for a while...too much
starter code that no one wants to rewrite.

~~~
stcredzero
Once more, the legacy of marketing!

------
gcheong
"Most centres offer Pascal/Delphi and Visual Basic as the language of choice
for their students. This selection is based on the experience of the teacher
in that centre and their own comfort with that language."

I would argue that any teacher not comfortable enough with C to teach it at
the high school level should not be teaching computer science fundamentals.

------
stuartloxton
Although I don't actually take Comp-Sci myself, a few of my friends have in
the past and still do; at all colleges near me all default to VB with
absolutely no consideration to other languages to the point of running windows
on brand new iMacs for better support.

VB is a horrible language to learn, but the UK system of learning computing is
the worst I've ever seen anywhere; I took it as a GCSE and at the same time as
getting through a fair amount of Google Code Jam, Getting a job building web
apps I managed to fail the web design module - was my site valid? yes, did it
follow the spec? yes. I failed because I didn't submit my write-up as a .doc;
instead I used a valid open .rtf format.

------
Todd
Is this a joke? VB may be "easy" but it's terribly verbose. VB 6 was end-of-
lifed two years ago. Pascal was a good idea 30 years ago. And Delphi's
designer was hired by MS to build a better language 14 years ago, which became
C#.

Now, let's look at the languages with momentum. MS has bet the farm on .NET
and C# is the primary vehicle. The Mono project is going strong. The most
important web programming language (if brain damaged) is PHP. And the language
underlying ALL OF COMPUTING AND THE INTERNET is C and C++.

Um.

~~~
stcredzero
_The most important web programming language (if brain damaged) is PHP._

If we went with "the most important, even if brain damaged" then VB would've
been the language of choice years ago. I'd rather go with, "whatever will
produce the most savvy programmers." In this light, there are good reasons to
pick Scheme. Before that, I would also opt for a simplified assembly language,
with a simple compiler targeting that language. For the first intro course,
Python isn't a bad choice. Look how many programmers in their 40's got started
in BASIC, then graduated to 6502 Assembly.

------
Herald_MJ
I did a computing A level in the UK , and I had no idea languages other than
pascal and visual basic were options. Good to see python on the list.

The computing a level is a massive mess, though. The extent of programming
taught is practically an afterthought and the curriculum is polluted by
massively outdated stuff - i had to learn a textbook definition of baud rate
and how to do binary subtraction on paper. The whole thing is in need of an
overhaul.

------
gaius
When I was at school (in the UK) we learnt LOGO, BBC Basic, then Borland Turbo
Pascal.

------
metatronscube
I would agree that this should be kept to university only (where hopefully it
will be taught correctly). Schools need to concentrate on the basics (reading,
writing, arithmetic, mathematics and traditional sciences). I'm from Scotland
so we don't do A-levels (our equivalent is standards, highers and advanced
highers) and although we did get C/C++ it was never covered very well. Its
such a critical component of computer science that it has to be done right.

------
hugh3
While I'm sorry to see C go, I can't see any possible reason why a high-school
level computing course should allow eight different languages.

~~~
petercooper
I believe it's not that each institution offers 8 languages, but that the exam
board offers support and syllabi for 8 languages that the schools can choose
from. They're chopping the languages that the fewest schools are choosing to
teach.

~~~
pbhjpbhj
Yes, exam questions ask you to "write program code",
<http://alicious.com/2010/aqa-computing-exams-2009/> rather than specifying
the language. I wonder if they'd accept languages not in the syllabus? LOLCODE
anyone?

~~~
petercooper
I'd pick that language that entirely uses whitespace.

------
pbhjpbhj
It looks like the AQA A-level is called "Computing",
<http://alicious.com/2010/aqa-computing-exams-2009/> gives an example paper on
scribd, at page 6 you can see the type of questions being asked.

------
mgrouchy
Comp-Sci A-Levels? I have no idea what this means, is this like first year of
university?

~~~
travem
A-Levels are taken by UK Students before University (typically aged 16-18), I
guess the last 2 years of US High School.

