Stories
Slash Boxes
Comments

Dev.SN ♥ developers

posted by NCommander on Wednesday April 02 2014, @03:11PM   Printer-friendly
from the I-remember-Applesoft-BASIC dept.

An article was recently published that looks at evaluating First Programming Languages (FPL) the language to use for an introductory course of programming.

An existing issue is that formally assessing a programming language isn't really defined, with a lot of evidence being anecdotal. The proposed evaluation framework looks at technical and environmental feature sets. "The technical feature set covers the language theoretical aspects, whereas, the environmental feature set helps evaluating the external factors." These feature sets are covered in table 2 of the article (link to PDF) and consist of the following:

Technical Features

  • High Level
  • Orthogonality
  • Strongly Typed
  • Enforceability of Good Habits
  • Security
  • Feature Uniformity
  • Less Effort for writing simple programs

Environmental Features

  • Demand in Industry
  • Contemporary Features
  • Easy Transition
  • Readable Syntax
  • Quality Coding
  • User Friendly Integrated Development Environment

The article explains each of these points in details, and gives each of the languages being evaluated a rating based on this explanation, followed by a detailed explanation of how the scores of each rating can be compared this includes allowing an evaluator to weigh certain criteria they deem important against the others. As this is for choosing a language to teach someone to program with, different places will have different reasons and goals, so would want to weight things differently.

As the default weight settings do not conform to the original popularity index of the languages, so there should be a different weighting criterion. However, it is very hard to come up with a generic and correct weighting criterion. Therefore, the scoring function should be customizable and the user should be able to tune the weight of each feature based on her preferences. As an example, consider the fact that Ada holds 3rd position in overall scoring, but is not being considered among highly used FPLs as of now.

NCommander adds: lhsi was kind enough to include a summary of the results. I looked through the paper and it seems like a fairly interesting read.

Using the default weighting, the top five First Programming Languages evaluated are as follows:

Technical
  1. Python
  2. Java
  3. Pascal
  4. Ada
  5. Modula-2

Environmental

  1. Java
  2. Ada
  3. Python
  4. C#
  5. C++

Overall

  1. Java
  2. Python
  3. Ada
  4. C#
  5. Modula-2
 
This discussion has been archived. No new comments can be posted.
Display Options Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by AnythingGoes on Wednesday April 02 2014, @05:45PM

    by AnythingGoes (3345) on Wednesday April 02 2014, @05:45PM (#25186)

    What I find wrong is the assumption that we want more programmers and therefore should make it easy to get started.

    The biggest danger in this thinking is that we should be evaluating for interest and determination rather than getting more programmers .. after all, the best programmers I have ever seen all have a deep interest in computing and are determined to get to the root of any problem!

    Do doctors make it easier to be one? After all, you have to learn about the entire human body even before you get to pick a small area to specialize in.

    By teaching easier languages, we are selecting for the wrong kind of programmers - witness the crappy results of programmers who write 10000 line procedures with IF X=1... if X=2....if X=3 (apparently not understanding "if X>0")

    I would rather that these wanna-be programmers fail before they ever graduate..

    My suggestion - teach the first computing language as Assembly and C - then for those who pass, we can start on the path of learning easier languages.

    Why did Knuth create "MIX" to be his teaching language? He could have had the pick of Cobol, Fortran, Algol or PL/I, instead of choosing an assembly language to illustrate the effects of algorithms.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 1) by ramloss on Wednesday April 02 2014, @07:35PM

    by ramloss (1150) on Wednesday April 02 2014, @07:35PM (#25247)

    I kind of agree with you, the objective should not be to make it 'easy' to learn a programming language, but to teach programming concepts and technique. But why go out of your way to make it difficult? Simply use the language that best fits the concepts you want to teach and let the chips fall where they may.

    I put the quotes around easy because it may mean several things, among them 'lower the bar so that more people can pass', which is bad or 'present the subject in a way that is easy to understand', which is good. In the end it all boils down to why you want to teach a computer language, I guess.