Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Education Programming United Kingdom

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."
This discussion has been archived. No new comments can be posted.

Exam Board Deletes C and PHP From CompSci A-Levels

Comments Filter:
  • by roman_mir ( 125474 ) on Thursday May 13, 2010 @06:03AM (#32190782) Homepage Journal

    I hope these courses are all about teaching the way to construct programming logic, to think about algorithms, to apply data structures correctly because that can be done in any language (depending on the paradigm that they choose to teach of-course, and it looks they are going with the most common, imperative one, of-course the choice of languages also shows that they are not going into declarative stuff.)

    Any one of these language can be used to teach normal structured programming with normal process flows, data structures. Object oriented stuff should not be taught until the students have basic understanding of the principles of programming.

    But it is too bad they are not including at least some Assembly and C. Actually they should do an overview of different languages and explain that there are different ways to program, they should explain the differences between paradigms, approaches, languages, they should explain computer organization as in how a machine sees the code, how does the code interact with the memory, processor, peripherals. I think it is important at least to know OF these things, if not actually completely knowing how to use them.

    I think before you teach anyone actual programming logic, structures, you explain how a machine executes the commands, so computer organization (state machines, memory, processors) + Assembly, even if only for a few hours this should be done first.

  • Re:So what? (Score:2, Interesting)

    by Rockoon ( 1252108 ) on Thursday May 13, 2010 @06:17AM (#32190866)

    But if you can program in C you are wasting your time with Pascal.

    Explain that to the programmers that went from Pascal to C, said "WTF THIS SUCKS", and moved back to Pascal and then on to Delphi when it hit the shelves.

  • by Rockoon ( 1252108 ) on Thursday May 13, 2010 @06:19AM (#32190872)
    When I was 17, that would have been me.

    By that time, 6502 and 8086.
  • Re:So what? (Score:2, Interesting)

    by Antiocheian ( 859870 ) on Thursday May 13, 2010 @06:30AM (#32190916) Journal

    But if you can program in C you are wasting your time with Pascal.

    Explain that to the programmers

    Linux, Windows, (Open)Office, Firefox, Nethack, Doom, etc, etc, etc.

  • Re:Then why not C? (Score:3, Interesting)

    by mangu ( 126918 ) on Thursday May 13, 2010 @07:11AM (#32191142)

    I think you could say the same about Delphi-style Pascal. You can go as low level as in C there

    I'd say you are 99% right, but not quite. Pascal has a few abstractions that isolate you from the machine, like the set type for instance.

    Also, AFAIK, standard Pascal does not have function pointers, although I believe many versions, including Delphi, have implemented their non-standard extensions for this. Without function pointers it's very hard to do scientific programming, try writing a generic procedure to integrate a function, for instance.

    I learned Pascal in the early 1980s, when the computer I had was an IBM PC with a 4.77 MHz CPU. I did a lot of programming in Turbo Pascal version 3, but I ended learning C because there were some operations I couldn't do with Turbo Pascal. After I learned C, I never felt the need to use Pascal anymore.

  • Re:Then why not C? (Score:5, Interesting)

    by robvangelder ( 472838 ) on Thursday May 13, 2010 @07:12AM (#32191146)

    I agree and disagree.

    My first programming language was Motorola MC68000 on the Amiga 500. I must admit, programming languages are easy once you know what the code compiles into.

    However, object oriented programming was very, very alien to me. There are some programming topics that can't be taught by learning assembly alone.

  • by Chrisq ( 894406 ) on Thursday May 13, 2010 @07:15AM (#32191170)

    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.

    Only it's not true. A programmer who doesn't know C is either very lazy or, given the relative [google.com] abundance [google.com] of each language [google.com] suffers from some weird form of autism.

    There's no denying it, C is the basis of everything in computing. Anyone who has studied or done any professional work in computing has had contact with the C language at some time. A programmer who never had at least the curiosity to learn C, if only to understand some function he downloaded from the web, will never, ever, be a competent programmer.

    Is that still true? A decade or so ago it would have been, but we have some bright young programmers who have only seen Pascal (from early training), Java, Python, and C#. Many examples now are in one of these languages or pseudocode.

  • by Motard ( 1553251 ) on Thursday May 13, 2010 @07:25AM (#32191240)

    I taught a class on Delphi to a group of mostly non-programmers. It was very successful. Consider...

    First project:

    1) Open Delphi
    2) Press Run

    You've just written, compiled, linked and executed your first Delphi program. We'll get into the details later.

    Second Project:

    1) Open Delphi
    2) Drop a button on the default form
    3) Drop a slider on the default form
    4) Double-click the OnChange event on the slider
    5) Type Button1.Left := Slider1.position * 10;
    6) Run

    Now I can show visually show you what this does and talk about components, objects, properties, events, syntax, variables, assignment statements, build cycles, etc. - all in ways that you can see.

    Plus, unlike Java or C#, I can show you procedural (non-OO) console app or service programming. And we can go all the way down to assembly language if you want.

    For Linux see Free Pascal and Lazarus.

  • by GPSguy ( 62002 ) on Thursday May 13, 2010 @07:36AM (#32191306) Homepage

    Retaining VB and VB.net suggest a hefty Microsoft contribution. At least to me.

    I've been watching the dilution of programming skills in our CompSci department over the last several years. The question I've been asking is, "Who's going to write the next OS, or even the next decent compiler, if we stop teaching languages that get us closer to the hardware?" From our administration, the answer's been a bit quiet, but seems to be either, "who cares?", or "why?"

    In an OS class I taught recently, 3 of 5 students had not been exposed to any assembly language over the course of 4 years of CompSci, two had not met a full C programming class, either in high school or college. Most had experience in java. All had taken .net classes. None had any class requirement to be familiar with Linux or Unix. In the comments at the end of the class, several were very unhappy that all my class examples required a command line and didn't show them a flashy GUI to look at registers or other output.

    On the positive side, although the senior professor in OS liked what I'd done, and was nonplussed by the evaluations, the department head has said I wasn't likely to teach again, because I tended to focus on technologies that weren't relevant to our students, like web programming and SAAS. Upon reminding her I'd been assigned an OS class, she said I could have integrated more web programming into the content instead of, say, the lectures on HPC, threading, and message-passing, which is what I do a lot of these days, and an area I feel is underrepresented. That I "wasted" two lectures, and still covered all the (approved) syllabus material, and that the kids all did manage to pass with decent grades, wasn't as important as the fact that I'd not focused on what she (and the students) thought was important. (Strange, when did my syllabus become a topic for debate with the class?)

    And while I'm ranting, there's an awful lot of real science still written in Fortran, but it's not taught much anymore. I'm thinking of reviving a free-university class in fortran to support scientific newbies who need to learn it for their course-work and graduate degrees.

  • by LarrySDonald ( 1172757 ) on Thursday May 13, 2010 @08:08AM (#32191560)
    Teaching foundations is obviously the most important thing, and yes, you can do that well in many languages. BUT while you learn the foundations, you get the bonus of getting comfortable in one or more languages as you write in them. Which one(s) should you use this bonus on? Pascal? Not thinking that's wise. For the record, my school used modula2/3 and ML for functional until later when everything went to C/C++. I would have much rather gotten further comfort in C/C++ and Lisp to start with, seeing as they're actually somewhat used and the basics don't change anyway.
  • by Bootarn ( 970788 ) on Thursday May 13, 2010 @08:12AM (#32191598) Homepage
    It's interesting how different it can be. The first language we were tought in CS was Moscow ML (Similar to Standard ML, or SML). After that we actually learned MIPS assembly, followed by C. We didn't learn Java until the very end. This gave us a fairly decent grasp of the inner workings of a computer, and I'll forever thank them for it. In our first year, we were asked to construct a MIPS compatible architecture in a simulator (logisim). That was extremely fun, and it really opened my eyes to what a computer really is.
  • by Anonymous Coward on Thursday May 13, 2010 @08:27AM (#32191728)

    My first job out after getting my master's degree was at a Canadian / US semiconductor company (whose products you might be using right now). I was entirely self-taught in VHDL, and knew no Verilog at all - which is what they were using. My prospective manager - a brilliant engineer in his own right - knew exactly how much that mattered, and told me I'd pick up Verilog in a month or less. He was entirely correct.

    I consider myself lucky. Every time I read a resume, I see a similar litany of "language skills", everyone except me seems to make a big deal out of knowing the last fad in .NET programming. In my experience, what matters a lot more is domain knowledge, respect for your coworkers/users and good understanding of algorithms.

  • by luis_a_espinal ( 1810296 ) on Thursday May 13, 2010 @08:39AM (#32191846)

    People setting the syllabus should be recommending, a modern, clean, free, cross-platform language. That means something like Python, Ruby, or Java.

    First, how do you teach system-level concepts with those languages. I would grant you that you can learn the basics of programing, Python and Ruby would be fine (not Java since you can't express things procedurally if a problem requires so.)

    But you can't divorce the basics of programing from the fundamentals such as programming on non-memory-managed systems without having to face (and learn to deal with) portability issues. This has been one of the greatest fallacies of all, to think you can efficiently cultivate programmers with an exclusive or almost exclusive usage of extremely high-level languages.

    Second, what's wrong with Delphi, as a teaching programming language. It has many (if not all) the strengths of Pascal-like languages (Turbo-Pascal in particular) while at the same time introduces new programming concepts that did not exist when Pascal and Pascal-dialects were conceived (properties come to mind.)

    Yes, Pascal has been hacked away into multiple dialects, but all capture innate qualities. OO and advanced pointer manipulation is usually very similar from one another. So for the purposes of teaching programming, any one modern Pascal dialect will suffice.

    Delphi has been an industrial language (however, niche it might be), and Anders Hejlsberg, the chief architect of Delphi, is also the lead architect of C#. C# (the 3rd-4th most widely used programming language in industry) has a lot more immediate roots in Delphi than on any other C-syntax-like languages.

    When we consider these facts in addition to Delphi's qualities as a modern programming language, I would say these are more than enough reasons to use it as one of the modern non-gc-babysitted tools for learning structured programming in both procedural and object oriented paradigms.

  • by marga ( 455344 ) on Thursday May 13, 2010 @08:52AM (#32191964)

    I work as an Assistant Teacher in my local CS University in Argentina (actually it's Informatics Engineering, but it's almost equivalent to CS).

    For a while we've been doing a experiment of teaching Python in the first semester and C in the second semester. Even though learning C is still tough, I think this order works quite well. In the first semester the students get to learn the basics of programming, without having to learn the quirks of memory managing and the like, while in the second semester they can focus more on that, having a solid base of programming knowledge. Java/C# are taught after that, in the third semester, when focusing on OOP, design patterns and the like.

    I think that this makes an overall better experience for the students that approach programming for the first time. With students that have learned programming at their high-schools we usually spend the whole semester getting them to forget whatever stupidity they were taught.

  • by LizardKing ( 5245 ) on Thursday May 13, 2010 @08:54AM (#32191988)

    Firstly, the A level is in Computer Science, not Computer Programming.

    A-level Computer Science is supposed to be a grounding in computing theory and programming - there is no such thing as a Computer Programming A-level.

  • by HaZardman27 ( 1521119 ) on Thursday May 13, 2010 @10:17AM (#32192924)
    Obviously in today's abstract and web based software industry, an understanding of computers isn't as necessary to program as it used to be on a day-to-day basis, however every programmer should still be required to know these things. A mechanic that only knows how to change your oil and rotate your tires wouldn't be a very useful mechanic; the same logic should apply to developers.
  • by wonkavader ( 605434 ) on Thursday May 13, 2010 @10:25AM (#32193046)

    If you're a good programmer, programming languages are easy. If you're curious about a language, you can learn the basics of it in a few hours and be adequate in the language in a weekend.

    (Now, being good in the language requires more than that -- it requires a project or two, some refactoring and some time, but that's beyond what the poster said.)

    Even mediocre programmers can pick up the basics of any language quickly. The focus on just a core of languages, and often, just ONE language, which we often hear from job candidates and young posters on slashdot are a reflection of the many graduates coming out of CS departments these days who exhibit a distinct lack of talent. There are still some great programmers coming out of our CS programs, but there are many, many more drones than came out of such programs 20 years ago.

    Somewhere along the line, a CS degree became a way of ensuring yourself a job in much the same way a degree in accounting did, and CS began to get people who didn't really give a shit. "I'll pay the money, go to the classes, get the degree, and get a job. Then I'll be safe and happy until I die."

    Talented programmers pick up languages when needed, and they do it quickly. Programmers have curiosity about computing. Missing either of those means a bad programmer. Not knowing the basics of such a simple language as C equals a bad programmer.

    If you're bothered by that analysis, surf a little, write a few programs, read a few to see how things are done, and the point will be moot. Unless you're a bad programmer, in which case you'll find C very difficult, take weeks to get anywhere in the language, decide you need to take a class in C to learn it, never be able to figure out why your simplest C stuff won't run at all.

    And ya know what? The same goes for FORTRAN!

  • by swordgeek ( 112599 ) on Thursday May 13, 2010 @10:41AM (#32193258) Journal

    Agree completely. However, the industry is demanding CompSci degrees for work as a tradesman (programmer), and the Universities work towards that goal.

    Eventually we may learn to put programming into a two or three year diploma at a college/trade school, and use comp sci degrees for development of the field. This model works in most other fields, but the problem is that computing is so young that until about 20 years ago, 'mere programming' _was_ developing the field.

  • by Anonymous Coward on Thursday May 13, 2010 @10:57AM (#32193460)

    list the keywords, and then the projects.

    Nobody wants to read a wall of text to find out if you have recent enough skills to be worth a 60 minute phone conversation.

    After deciding that you are worth a phone conversation, the projects give us something to talk about to see what kind of person you are.

    But that's just my company, ymmv.

  • by Aurisor ( 932566 ) on Thursday May 13, 2010 @11:01AM (#32193496) Homepage

    If you're not in possession of a solid understanding of computers, or at least in the market, programming is probably not the profession for you.

Thus spake the master programmer: "After three days without programming, life becomes meaningless." -- Geoffrey James, "The Tao of Programming"

Working...