Exam Board Deletes C and PHP From CompSci A-Levels 663
VitaminB52 writes "A-level computer science students will no longer be taught C, C#, or PHP from next year following a decision to withdraw the languages by the largest UK exam board. Schools teaching the Assessment and Qualifications Alliance's (AQA) COMP1 syllabus have been asked to use one of its other approved languages — Java, Pascal/Delphi, Python 2.6, Python 3.1, Visual Basic 6, and VB.Net 2008. Pascal/Delphi is 'highly recommended' by the exam board because it is stable and was designed to teach programming and problem-solving."
Dumbing Down (Score:5, Informative)
"The board "highly recommended" switching to Pascal/Delphi because it is stable and was designed to teach programming and problem solving. 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"."
Okay, seriously - in London, where I work, I don't think any of these guys would be able to get a job once they had graduated. Job listings I have looked at demand the following skills:
Java (with Spring, Hibernate, Multi-threading, low latency, Swing, Junit)
C#
C/C++ (financial organizations still turn to C for high volume number crunching)
Unix / Linux (are they going to drop this next???)
SQL (Oracle, Sybase, SQL Server)
Subversion, Clearcase, CVS
None of this stuff can be picked up quickly, so the earlier you start, the better. And, no offense, but I rarely - if ever - see a job listing requesting Pascal/Delphi.
Is this a case of dumbing down or are students just becoming lazy(-er)..?
Then why not C? (Score:5, Informative)
How can you understand programming if you don't understand how it works under the hood?
Teaching assembly (which CPU?) wouldn't be practical but C is the next best thing. I agree with you that any programmer should be able to pick up a new language without too much effort, but unless you know how the internal structures of the programs work you will never be able to write good code, at best your code will be painfully slow, at worst it will be outright dangerous.
If only one language is taught, then it should be C for anyone who expects to be a professional programmer, knowing C they can easily pick up any other procedural language. A programmer who doesn't know C is like a doctor who doesn't know anatomy.
Re:Maybe I'm missing something (Score:5, Informative)
Maybe because resumes get sent to HR and management, not experienced programmers?
Exactly. When a manager is looking to hire a person, knowing that "we create our software using C", he expects to see "Knowledge of the C language" on the resume he gets.
Trying to argue that you extensive knowledge of Pascal, JAVA and Assembly for the given platform means you will be able to work efficiently anyways, since you'll very quickly pick up the C knowledge needed, probably won't get you hired, even if it is true.
Of course, there might be the special case where an intimate knowledge of setjump or the structure of the stack during a function call might be needed, but I think those cases are somewhat rare.
Try Scheme, or Haskell (Score:2, Informative)
If you really want a language "designed to teach programming and problem-solving", try Scheme or Haskell. Those are truly stable languages that will help students learn sound computer science principles, basic data structures, and programming principles.
Once that's in place, learning a "real-world" programming language is straightforward. No programmer should master only a single language.
And, yeah - C wouldn't be my choice for a first programming language either.
A-Level, not Degree (Score:4, Informative)
At this level, I agree with the decision. You're looking for aptitude and interest at this stage, not machine specifics. Pascal is a good language for expressing and solving problems and was enough to get my attention when I was doing A Levels twenty years back - in Turbo Pascal.
Cheers,
Ian
Remember this is only A-level (Score:4, Informative)
Re:So what? (Score:2, Informative)
We're talking about A Levels here, two years of education between 16 and 18. To get hired into a serious position as a programmer a Computer Science degree is usually required.
Disclaimer: I learnt Pascal during my Computing A Level and it didn't do me any harm!
A-level == first year of study? (Score:3, Informative)
Re:The lowest common denominator (Score:3, Informative)
You don't seem to be familiar with Pascal/Delphi. It has manual memory management, differentiates between the stack and the heap, has pointers, etc.
Re:Then why not C? (Score:5, Informative)
Re:A-level first year of study? (Score:2, Informative)
I did this course a few years ago... (Score:1, Informative)
And the only programming that was covered was exclusively in QBasic, my coursework was all completed using Microsoft Access. This course is not a gateway into software development rather a more involved version of the ICT A-Level course which is also run by the exam board.
n.b. I'm now working as a software developer using C# so maybe I'm just full of it..
Re:Insider information (Score:3, Informative)
PHP surprises me though perhaps the kids find writing an interface in HTML too challenging?
I think you've got that the wrong way round. To use PHP effectively to build a web app, I think you'd need a good basic understanding of HTML to start with. Of course it's been years since I used PHP, and at Uni we just used to generate raw HTML rather than using any fancy formatting libraries.. which is often what I still do, when I started programming I was living in an offline world and I'm still used to thinking I have to write everything from the ground up rather than searching for libraries to do what I want.. I suppose I learn more about how things work that way, but it's not very efficient.
Re:Maybe I'm missing something (Score:3, Informative)
And importantly, it's not required that students applying to do computer science courses at university should take this A-level. In fact, many universities will recommend doing extra maths (if possible) instead.
The best universities even advise against it -- for instance, Trinity College Cambridge [cam.ac.uk] say it's acceptable only as a fourth subject (most people do three or four A-levels).
Re:Maybe I'm missing something (Score:5, Informative)
Yeah, just to get this down for our transatlantic friends, high school is mandatory until 16. Then we can begin studying S, A/S, and A-levels*, and the grades we get for those are requisites for university entry. A BSc in Biochemistry might require AABB including mathematics and at least one science, for example.
*(Intermediates, Highers, and Advanced Highers in Scotland)
Re:Atleast they still allow Java (Score:3, Informative)
C#:
And then there is VB.NET:
If freaking visual basic can do it, what the hell do you think is special about C in this regard? Nice job cherry picking Java tho.
Anonymous Coward (Score:1, Informative)
At least in the UK there is some choice. I am a high school CS teacher in Texas, and in the US, the Advanced Placement exam (taken for college credit) is language specific to Java. I am not sure how closely correlated the AP exam is with the A-level, but it is more or less the standard CS course in Texas and in many other parts of the country. If you do not teach Java, the students will not pass the exam. I know some teachers that start their classes in Scheme or VB (or Scratch or Alice for that matter) to introduce concepts/algorithms and then teach Java syntax for solving the same kinds of problems. These teachers are taking 2 years to teach CS, but I don't have that luxury so we start and finish in Java. For the vast majority (90-95%) of these students, this is the first time they have written code.
I would have to agree, and my students who return from university to visit say the same, that it is easier (wiser?) to go from C to Java than the reverse.
Re:Maybe I'm missing something (Score:4, Informative)
Re:Then why not C? (Score:3, Informative)