Slashdot Mirror


Exam Board Deletes C and PHP From CompSci A-Levels

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."

9 of 663 comments (clear)

  1. Teaching logic, structures and algorithms I hope? by roman_mir · · Score: 3, Interesting

    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.

  2. Re:Then why not C? by robvangelder · · Score: 5, Interesting

    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.

  3. Re:Maybe I'm missing something by Chrisq · · Score: 4, Interesting

    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 abundance of each language 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.

  4. Plus, Delphi is an awesome teaching environment... by Motard · · Score: 5, Interesting

    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.

  5. Re:Maybe I'm missing something by GPSguy · · Score: 4, Interesting

    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.

    --
    Never ascribe to malice that which can adequately be explained by tenure.
  6. Re:Maybe I'm missing something by LarrySDonald · · Score: 4, Interesting

    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.

  7. Re:Maybe I'm missing something by Bootarn · · Score: 3, Interesting

    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.

  8. Re:Maybe I'm missing something by HaZardman27 · · Score: 3, Interesting

    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.

    --
    Apparently wizard is not a legitimate career path, so I chose programmer instead.
  9. Yes, of course it's still true. by wonkavader · · Score: 4, Interesting

    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!