Article

Criteria for the selection of a programming language for introductory courses

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Historically, the selection of a programming language for an introductory programming course has been a process consisting of faculty evaluation, discussion, and consensus. As the number of faculty, students, and language options grows, this process is likely to become increasingly unwieldy. In addition, the process lacks structure and cannot be easily replicated. The selection process will, in all likelihood, be repeated every two to three years. Providing a structured approach to the selection of a programming language would yield a more thorough evaluation of the options available and a more easily justified selection. Developing and documenting an exhaustive set of selection criteria, and an approach for the application of these criteria, will allow the process of language selection to be more easily repeated in the future. This paper presents a comprehensive set of criteria that should be considered when selecting a programming language for a teaching environment, and proposes several approaches for the application of these criteria.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... The goal of this study is to develop and refine an instrument to facilitate the selection of a programming language and to make the process more uniform and easily replicated. The original paper (Parker, Ottaway, & Chao, 2006) proposed an objective selection process. A pilot study was conducted to test the viability of the process. ...
... A previous paper proposed criteria for the selection of a programming language for introductory courses. The criteria were derived by perusing over sixty papers relevant to language selection and justified by a brief review of the supporting literature in (Parker et al., 2006). Each of the criteria in Table 1 has been used in one or more previous studies that evaluate programming languages. ...
... A complete literature review and justification for each of the criterion can be found in (Parker et al., 2006), but a brief explanation of each follows. ...
Conference Paper
The selection of a programming language for introductory courses has long been an informal process involving faculty evaluation, discussion, and consensus. As the number of faculty, students, and language options grows, this process becomes increasingly unwieldy. As it stands, the process currently lacks structure and replicability. Establishing a structured approach to the selection of a programming language would enable a more thorough evaluation of the available options and a more easily supportable selection. Developing and documenting an instrument and a methodology for language selection will allow the process to be more easily repeated in the future. The objectives of this research are to: i) identify criteria for faculty use when selecting a computer programming language for an introductory course in computer programming; ii) develop an instrument that facilitates the assignment of weights to each of those selection criterion to determine their relative importance in the selection process, and; iii) allow various computer programming languages to be scored according to those selection criteria. A set of criteria for the selection of a programming language for introductory courses proposed in a previous paper is briefly reviewed here, with each criterion accompanied with a definition and justification. Readers are referred to the source paper for a complete discussion and literature review.
... Finally, Gee, Wills, and Cooke (2005) pointed out another trend that is becoming increasingly evident (and controversial), that is, the use of scripting languages to teach programming concepts because they provide "not only a proper programming environment but also an instant link into the formation of active web pages". Parker et al. (2006aParker et al. ( , 2006b) examined a multitude of studies, including many of those mentioned above, and presented a set of criteria for use when selecting a computer programming language for an introductory programming course, and developed an instrument that allows weighting of each of those selection criteria to specify their relative importance in the selection process. ...
... As the number of faculty, students, and language options grows, this process becomes increasingly unwieldy. As it stands, the process currently lacks structure and replicability (Parker et al., 2006a). A list of the factors that affected the choice of a programming language for an introductory course at one US university is ably discussed in Smith and Rickman (1976). ...
... A current study carefully examines a first programming language for IT students (Gee et al., 2005). A more recent study examines over 60 papers relevant to language selection in academia (Parker et al., 2006a). The selection of programming languages in university curricula in the US and Australia is almost identical, with some interesting differences. ...
Article
This examines the history of computer language choice for both industry use and university programming courses. The study considers events in two developed countries and reveals themes that may be common in the language selection history of other developed nations. History shows a set of recurring problems for those involved in choosing languages. This study shows that those involved in the selection process can be informed by history when making those decisions. © 2012 IFIP International Federation for Information Processing.
... A current study carefully examines a first programming language for IT students (Gee et al., 2005). A more recent study examines over 60 papers relevant to language selection in academia (Parker et al., 2006). Over the years languages have been invented to solve problems. ...
... h and further assume that, in general, they lack the advanced facilities of other languages (Gee et al., 2005). If that argument were to be carried to absurdity then the overwhelming choice would be COBOL, which now has an installed base of " more than 200 billion lines of code, and 5 billion lines of COBOL are written every year " (Langley, 2004).Parker et al. (2006)propose a set of criteria for the selection of a programming language in an academic setting. Their work is based on papers by researchers in both Australia and the United States. Each of the criteria has been used in one or more previous studies that evaluate programming languages. This extended set of selection criteria points to a mor ...
... Recent studies have examined a variety of factors that must be taken into account, and while pragmatic and pedagogical concerns are still near the forefront, they must be tempered by an awareness that other factors impact the selection process. The bottom line is that academics must carefully assess the best interests of the students, weigh all variables in the language selection process such as those listed byParker et al., (2006), and choose a language accordingly. As Johnson (1995) points out, " the greatest danger to our university system is the lemming-like rush to do the same thing, to be one with the crowd, to be part of the current fashion industry of computing. ...
Chapter
This paper looks at the relationships between industry computer languages and those taught in universities. By considering the differences between two of the first countries to embrace programmable computers (USA and Australia) we find patterns that seem culturally independent. History shows a set of recurring problems for academics in choosing languages. This study shows that academics should be informed by history when making those decisions.
... The goal of this study is to develop and refine an instrument to facilitate the selection of a programming language and to make the process more uniform and easily replicated. The original paper (Parker, Ottaway, & Chao, 2006) proposed an objective selection process. A pilot study was conducted to test the viability of the process. ...
... A previous paper proposed criteria for the selection of a programming language for introductory courses. The criteria were derived by perusing over sixty papers relevant to language selection and justified by a brief review of the supporting literature in (Parker et al., 2006). Each of the criteria in A complete literature review and justification for each of the criterion can be found in (Parker et al., 2006 ), but a brief explanation of each follows. ...
... The criteria were derived by perusing over sixty papers relevant to language selection and justified by a brief review of the supporting literature in (Parker et al., 2006). Each of the criteria in A complete literature review and justification for each of the criterion can be found in (Parker et al., 2006 ), but a brief explanation of each follows. ...
... Many researchers pay attention to the problems that determine the choice of the first programming language in universities. In the article [1], an extensive list of criteria for the selection of a programming language for introductory courses was developed, but these criteria are rather theoretical. The authors themselves [1] note that further research should include clarification of the choice criteria, formalization of the selection process and application of this process in different conditions. ...
... In the article [1], an extensive list of criteria for the selection of a programming language for introductory courses was developed, but these criteria are rather theoretical. The authors themselves [1] note that further research should include clarification of the choice criteria, formalization of the selection process and application of this process in different conditions. In the work [2], when studying the choice of a language for an introduction to Programming course, it is proposed to consider such criteria while choosing popular programming languages: ease of use, availability of training materials, simple and clear programming environment, and cost of the compiler. ...
Conference Paper
Full-text available
Abstract. Since the key point of training IT specialists is based on the labor market demands and the compliance of the employer's requirements with the knowledge and skills of future programmers acquired during the training, the authors conducted a study of the Ukrainian IT labor market. To demonstrate the distinctive features of the domestic and foreign IT markets, a comparative rating of programming languages in the labor market in Ukraine and in other countries was made. A survey of IT students and experienced programmers was conducted as another factor of the study. Based on many years of the authors’ teaching experience and the result of analyzing the opinions of interviewed programmers, the requirements for the first programming language studied in universities by IT-students were determined. According to these requirements, a system of numerical evaluation of practical criteria for the first language programming selection among the most demanded ones was worked out. A total rating for each language was created in order to identify the most suitable programming language for teaching the beginners.
... Programming environments have developed according to the evolution of the computer system; as that evolution continues, new programming environments are added. Programming environment selection criteria that conform to users' purposes have been suggested in various studies [24][25][26][27][28][29][30][31]. The analysis results of the programming language selection criteria are given in Table 1. ...
... Although it has not been recommended in this study, the 'industry relevance' aspect needs to be considered. It is important to consider learning about the GPLs utilized in the software industry because the EPL is one of the tools in programming education [24,27,29]. The 'industry relevance' that is closely related to the programming language-preference factor should not be overlooked, including the general purpose of its utilization, as well as its utility from the industrial point of view. ...
Article
Full-text available
An educational programming language (EPL) allows a novice programmer to program quickly and easily by reducing the difficulty of programming in terms of programming education. The selection of a programming language, considering the students’ cognitive level and the purpose of learning programming, is regarded as a key factor to increase the effectiveness of programming education. In this study, we derived the EPL selection criteria for pre-introductory computer science using the Delphi method of a 20-expert panels. Also, we selected RUR-PLE, a Python based programming learning environment, based on EPL selection criteria chosen through the Delphi method and applied the selected EPL to 26 students (20 males and 6 females) who participate in programming class to verify its usability. The objective of this study is to improve the possibility of selecting an appropriate EPL for novice programmers, considering the students’ characteristics and the transition of programming knowledge from the EPL to a general-purpose programming language.
... While all of the language-based papers mentioned above have the potential to guide educators in their own choice of language, a number of authors make that guidance the focus of their papers. de Raadt et al. [152] discuss the industry and academic implications of the choice of language; Parker et al. [494] develop a number of criteria to be used in selecting a programming language; Mannila and de Raadt [410] offer an objective comparison of languages for the introductory programming course; and Stefik and Siebert [640] present an empirical investigation of the syntax of candidate languages. At a broader level, de Raadt et al. [153] and subsequently Mason and Simon [419] report on a longitudinal survey of programming languages, integrated development environments, paradigms, and other features of introductory programming courses in Australia and New Zealand over the full span of this literature review. ...
Article
Full-text available
As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming,there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research.
... While all of the language-based papers mentioned above have the potential to guide educators in their own choice of language, a number of authors make that guidance the focus of their papers. de Raadt et al. [152] discuss the industry and academic implications of the choice of language; Parker et al. [494] develop a number of criteria to be used in selecting a programming language; Mannila and de Raadt [410] offer an objective comparison of languages for the introductory programming course; and Stefik and Siebert [640] present an empirical investigation of the syntax of candidate languages. At a broader level, de Raadt et al. [153] and subsequently Mason and Simon [419] report on a longitudinal survey of programming languages, integrated development environments, paradigms, and other features of introductory programming courses in Australia and New Zealand over the full span of this literature review. ...
Conference Paper
Full-text available
A broad review of research on the teaching and learning of programming was conducted by Robins et al. in 2003. Since this work there have been several reviews of research concerned with the teaching and learning of programming, in particular introductory programming. However, these reviews have focused on highly specific aspects, such as student misconceptions, teaching approaches, program comprehension, potentially seminal papers, research methods applied, automated feedback for exercises, competency-enhancing games, and program visualisation. While these aspects encompass a wide range of issues, they do not cover the full scope of research into novice programming. Some notable areas that have not been reviewed are assessment, academic integrity, and novice student attitudes to programming. There does not appear to have been a comprehensive review of research into introductory programming since that of Robins et al. It is therefore timely to conduct and present such a review in order to gain an understanding of the research focuses, to highlight advances in knowledge since 2003, and to indicate possible future directions for research. The working group will conduct a systematic literature review based on the guidelines proposed by Kitchenham et al. This research project is well suited to an ITiCSE working group as the synthesis and discussion of the literature will benefit from input from a variety of researchers drawn from different backgrounds and countries.
... During the long history of teaching programming skills and languages there has been developed different criteria for the selection of the first programming language that should be respectable, appropriate and accepted by teachers and students (Kaplan, 2010;Mclver and Conway, 1996;Parker et al., 2006;Thomas et al., 2002). Meanwhile, three clearly distinguished paradigms are recognized and separated: imperative (or procedural), object-oriented and functional. ...
Article
Full-text available
Programming is one of the basic subjects in most informatics, computer science mathematics and technical faculties' curricula. Integrated overview of the models for teaching programming , problems in teaching and suggested solutions were presented in this paper. Research covered current state of 1019 programming subjects in 715 study programmes at total of 218 faculties and 143 universities in 35 European countries that were analyzed. It was concluded that while most of the programmes highly support object-oriented paradigm of programming, introductory programming subjects are mainly based on imperative paradigm.
... This leads to poor implementation of object-oriented concepts and inability to take advantage of the strengths of OOP. Various teaching approaches have been proposed for making the teaching and learning of OOP concepts easier and more effective, and even criteria for selecting a programming language for an introductory programming course have been proposed (Parker et al., 2006). The most important teaching approaches are described briefly in the following paragraphs. ...
Article
Full-text available
Various teaching approaches have been proposed for teaching Object-Oriented Programming (OOP) to novices. In this paper we present the results of studying students' conceptual grasp of OOP concepts in two distinct teachings based on the educational programming environments BlueJ and objectKarel. Also, students' replies regarding the effectiveness of objectKarel as a medium of introducing novices to OOP and preparing them for a transition to a conventional OOP language are presented. The main contribution of this paper relates to a new proposal for teaching OOP to undergraduate students, which is based on the combined use of objectKarel and BlueJ.
Article
Full-text available
SMART is a popular Multi-Criteria Decision Making (MCDM) method that helps make accurate decisions to solve problems and choose the best decision using a linear additive model to generate values for various alternatives. The SMART ALP used in this study is a development of the SMART method by providing three additional dimensions, application, service, and user, to emphasize the correlation with the corridors of the cloud music service platform. The object of research: (1) Apple Music, (2) Deezer, (3) iHeartRadio, (4) JOOX, (5) Melon, (6) NetEase Cloud Music, (7) Qobuz, (8) SoundCloud, (9) Spotify, (10) Tidal, (11) TuneIn, and (12) YouTube Music. Convenience criteria and playlist management with 60.4% (29 of 48 respondents) and 58.3% (28 of 48 respondents) responses, respectively. Performance criteria and simplicity with 66.7% (32 of 48 respondents) and 68.8% (33 of 48 respondents) responses, respectively. Music quality criteria with an answer of 93.8% (45 out of 48 respondents). The study results show that Spotify, YouTube Music, Joox, Apple Music, and SoundCloud are the five best cloud music service platforms with a total score of 8422 points, respectively, YouTube Music 6483 points, and Joox 3824 points, Apple Music 2039 points, and SoundCloud 1275. Points.
Book
Full-text available
Computational thinking is a fundamental skill for everyone, not just computer scientists. Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information processing agent. Teaching Computational Thinking introduces the fundamental principles of communicating computing to learners across all levels. The book delves into the philosophical and psychological foundations of computer science as a school subject as well as specific teaching methods, curriculum, tools, and research approaches in computing education. This book is intended as a guide and teaching companion for pre-service and in-service computer science teachers.
Article
Full-text available
Blockchain technology was introduced more than a decade ago, and it has already begun to disrupt traditional business processes. After the recognition gained by Blockchain 1.0 for cryptocurrency transactions and Blockchain 2.0 for financial applications, there is a high demand for Blockchain 3.0, which focuses on using blockchain for various applications in industries other than finance. There are a plethora of permissioned and permissionless blockchain platforms that are available in the industry, and some could be used to develop an enterprise system. As a result, selection of a suitable blockchain platform to develop an enterprise system has become extremely difficult. This paper introduces a methodology for selection of a suitable blockchain platform for resolving industry or enterprise issues where blockchain provides a plausible solution. The methodology comprised of four stages; identification, selection, evaluation and validation. Initially, the available blockchain platforms are identified followed by selecting a suitable blockchain platform using a multi-criteria decision-making method such as Simple Multi Attribute Rating Technique (SMART). Subsequently, the selected system is evaluated in detail considering the system architecture, libraries, tools, domain-specific applications and capability analysis of the selected blockchain platform. The proposed methodology has been validated through developing a blockchain-based enterprise solution. The process protocol introduced in this study could be used by any stakeholder to select a suitable blockchain platform to develop blockchain application despite its scale.
Article
Full-text available
Selecting a high level programming language arises each time one has to start a software development project or to define a way to teach programming. The problem is complex and has been studied intensively. In this paper we review what has been done about the programming language selection and suggest an improved programming language selection procedure. To this end a particular attention has been paid to the different mathematical aspects of the problem. It has been shown that the problem is both ill posed problem, NP-complete problem, and exhibits characteristics of multi-criteria decision making problems.
Chapter
This examines the history of computer language choice for both industry use and university programming courses. The study considers events in two developed countries and reveals themes that may be common in the language selection history of other developed nations. History shows a set of recurring problems for those involved in choosing languages. This study shows that those involved in the selection process can be informed by history when making those decisions. © IFIP International Federation for Information Processing 2012.
Article
In this age of software-based science and technology, software education is recognized as an essential course not only for technology education but also for developing new capabilities and training thinking ability. Recently software education is drawing people’s attention throughout the world. Software education aims to help the learners experience the process of making something using software by themselves rather than to teach complex program languages. In reality, however, students seem to learn how to implement programs successfully but it is not obvious whether they learn program design. Programming education focusing on learning the complex grammar of a specific language in introductory programming courses is considered one of major factors that lower students’ interest in programming and deteriorate their adaptability in industrial fields. This study proposed programming education for improving introductory programming course students’ object-oriented modeling ability and suggested indexes from the viewpoint of object-oriented design. As a language and tool for programming education, this study used Greenfoot, which provides Java-based graphical simulation environment. The approach proposed in this study is expected to be applicable as a staged procedure and guideline of programming education for enhancing students’ object-oriented modeling capability when languages or tools are used for object-oriented programming education in introductory programming courses.
Article
The evaluation and selection of software tools for use in an IS or IT curriculum is difficult not only because actual industry software tools are often used but also because there is no formal approach to guide the process. How does one choose between SQL Server and MySQL, or Dreamweaver and Expression Studio? IS and IT educators must periodically go through the process of assessing the most suitable tools for their courses. Given how common such decisions are and how frequently they must be made, it is surprising to find that there is a lack of literature that deals with comparative studies of software tools for higher education. This paper proposes a set of criteria for the selection of software tools for IS and IT programs, explains how multi-criteria decision analysis can be used to weight those criteria, and details an approach for the application of those weighted criteria. The proposed approach is structured and replicable, and allows for a more thorough evaluation of the available options and a more easily supportable selection. KeywordsSoftware tool selection-IS/IT software tools-Software evaluation-Educational software-Multi-criteria decision analysis-Analytic hierarchy process
Article
Full-text available
Introductory programming instructors in Australian universities are choosing the programming language they teach primarily based on a perception of industry demand. This paper examines if this perception is justifiable, and offers instructors of all programming languages an insight into the issue of academic and industry balance, now and into the future.
Conference Paper
Full-text available
While computing technology has undoubtedly changed the world in which we live, the changes have been exaggerated. Talk of a hi-tech internet-driven revolution during the last decade is inaccurate from a historical perspective: (a) It belittles previous ...
Conference Paper
Full-text available
Interest in teaching object-oriented programming in first year computer science courses has increased substantially over the last few years. While the theoretical advantages are clear, it is not obvious that the available object-oriented languages are suitable for this purpose. None of the existing languages is appropriate for teaching object- oriented principles. In this paper we discuss the requirements for an object-oriented teaching language and draw attention to the deficiencies of existing languages. In particular, the paper examines C++, Smalltalk, Eiffel and Sather. Finally we outline characteristics of a new language, specifically designed for teaching purposes.
Article
Full-text available
In this paper, we describe a study that tests the following hypothesis: A programming lanage construct that has a closer "cognitive fit" with an individual's preferred cognitive strategy will be easier 1o use effectively. After analyzing Pascal programs that employed loops, we identified two distinct looping strategies: 1) on the ith pass through the loop, the ith element is both read and proceed (the READ/PROCESS strategy); and 2) on the ith pass, the ith element is processed and the next ith element is read (the PROCESS/READ strategy). We argue that the latter strategy is associated with the appropriate use of the Pascal while construct. In consist, we feel that a construct that allows an exit from the middle of the loop (e.g., loop... leave... again) facilitates the former (READ/PROCESS) strategy. Our results indicate thai subjects overwhelmingly preferred a READ/PROCESS strategy over a PROCESS/READ strategy. When writing a simple looping program, those using the loop... leave... again construct were more often correct than were those using the standard Pascal loop constrcts.
Article
This study investigated changes in student attitudes toward computing in three different computing courses. The courses were “typical” semester-long university introductory computing courses. The courses have no prior computing prerequisites. The first course provided an introduction to computers, computer science, and society. The second course was a hands-on course focusing on the mastery of the Microsoft suite (Word, Excel, PowerPoint, and Access). The third course introduced students to programming using Visual Basic. To investigate whether attitudes changed in any of the courses, an attitude survey was administered the first and last week of the courses. Dependent samples t-test showed a positive attitude change in the second course, and no change in the first and third course. To better understand why attitudes changed in one course, but not the others, several students with the most dramatic attitude changes were interviewed, and focus groups were held with both students and the faculty teaching the courses.
Article
There is a need for empirical evaluation of programming languages for unskilled users, but it is more effective to compare specific features common to many languages than to compare complete languages. This can be done by devising micro-languages stressing the feature of interest, together with a suitable subject matter for the programs. To illustrate the power of this approach two conditional constructions are compared: a nestable construction, like that of Algol 60, and a branch-to-label construction, as used in many simpler languages. The former is easier for unskilled subjects. Possible reasons for this finding are discussed.
Article
This report looks back on 8 years of experience of using C++ as the initial language introducing programming to undergraduate and graduate students. The aims of the report are to explain the teaching approaches taken and to address questions that anyone considering adopting a similar language (including Java) might like answers to. 1. Why switch language? Choosing a programming language to use in University courses that are introducing imperative programming has always been an interesting task. In the 1970s the approach taken by many Departments/Schools of Computer Science (CS) was to design their own programming language and then to implement the compiler and run-time system. Subsequently, the need for more standardisation has prevailed, permitting (re)use of learning materials such as books and software, and avoiding the need for compiler implementation effort. Nowadays, a choice has to be made from the "standard" languages that are available. In the 1980s Pascal (and its derivatives) was the dominant imperative language chosen for introductory programming courses. While Pascal still has attractive characteristics for teaching, such as being a simple and straightforward language, the inevitable and rapid progress of software technologies has led many departments to look for a replacement language so, for example, that issues of object-oriented technology can be covered. In the quest for such a language, C++ has been a candidate for consideration, although views about its suitability are often rather polarised such that for some the consideration only lasts for a small number of seconds! On the surface it might seem that there is little cost in switching between programming languages, and therefore a choice which turns out to be wrong by some measure can easily be rectified. In practice there are considerable overheads in adopting a particular language: preparing lecture material; preparing projects and student exercises; evaluating software environments and establishing the chosen one; evaluating text books; training for personnel; and so on. These overheads generally dictate that care is taken with choosing a language as that choice is likely to be required to last for several years. This report addresses the issue of the suitability of C++ as an initial teaching programming
Article
This paper covers the impact that the seemingly continuous introduction of new programming languages has on the computer information systems curriculum in a university. Computer information systems departments are currently implementing changes based on the newest languages, Java and C#. The relationship between universities and the corporations behind these languages, greatly affects how companies interact with these institutions. Before implementing the latest languages, universities must address if they should continue to offer traditional languages such as COBOL. This report provides conclusions and recommendations on the transformation a curriculum must undergo to maintain high levels of enrollment and also demonstrates why it is a challenge for universities to keep an up-to-date language program.
Article
With the diversity of high-level programming languages available, selecting the “right” one for a computer science curriculum or course can be a befuddling process. For a multitude of reasons, such as the manner in which students approach problems to the utilization of scarce computing resources, the ramifications of a decision on the choice of a programming language are significant throughout a computer science curriculum. The purpose of this paper is to provide information relevant to the selection process. Particular attention is given to COBOL, FORTRAN, Pascal, PL-1, and Snobol; both qualitative and quantitative factors are considered. The quantitative results were obtained from processing a binary tree insertion and retrieval algorithm in each language. The machine resources used for this algorithm are given for both interpreter and compiler versions of translators for each language.
Article
This paper looks at the potential for using scripting languages to teach programming. It demonstrates that the so-called "system programming languages" such as Java and C++ are not suitable to teaching novices. Conversely the modern "scripting languages" are sophisticated and powerful environments in which students can learn the basics of programming without the unnecessary complications entailed in the alternative approach.
Article
Computer studies courses should incorporate as many computer concepts and programming language experiences as possible. A gradual increase in problem difficulty will help the student to understand various computer concepts, and the programming language's syntax and structure. A sidebar provides two examples of how to establish a learning environment for computer and programming language concepts. (AEF)
Chapter
In order to understand the issues surrounding programming language choice one must understand the many pressures, both technical and social, that impinge on language design and adoption. In this article, these pressures are organized into three competing needs: (1) those of the problem domain for which languages are used to “solve problems,” (2) the conceptual and computing models underlying the designs of the languages themselves, independent of particular problem domains, and (3) the social and physical context of use of the languages. Favoring one will entail tradeoffs in the others.
Article
In the digital economy era, business information systems students need to be knowledgeable of multiple computer programming languages in order to meet the requirements of computer literacy. This paper outlines the pedagogy of an innovated course of multiple computer languages for business students in the major of information systems. It discusses the rationale of why the proposed pedagogy is different from and better than traditional ones, and describes the approach to teaching this course. Based on our experiences in the past three years, it is concluded that a single course of multiple computer languages is useful and feasible.
Conference Paper
The ‘mail merge’ or ‘form letter’ feature prevalent in most word processors provides many features which make it desirable for a first introduction to the art of computer programming. We demonstrate how key concepts are introduced in an environment easily understood by the student, including variables and identifiers, the importance of order in specifying input, data files, output files, IF/THEN/ELSE statements, nested and compound IF statements, issues of syntax vs. semantics, garbage in/garbage out, debugging, and the creation of output through specifications written in a language understood by the computer.
Conference Paper
Traditional approaches to CS0 have emphasized either breadth, through an overview of computer science, or depth, through intensive programming. This paper describes an alternative teaching method that strikes a balance between these two approaches through the use of JavaScript and the World Wide Web. By taking advantage of JavaScript's simplicity and natural Web-based interfaces, the CS0 course described here is able to maintain a strong emphasis on programming and problem-solving, integrate programming skills with Web technology, and still provide reasonable breadth on general computer science topics. This balance between depth and breadth makes the course attractive to both non-majors and majors alike, providing a broad perspective of the field as well as a foundation for continuing studies in computer science.
Conference Paper
This paper examines the past, present, and future of the programming languages course as reflected by its textbooks.
Conference Paper
Manyatudies havecumpared andassemed pgmming languages. Unfortunately, a comprehemive methodology fm comparison and ~~t of ~ @Pll~ ~ @ been developed. lle main reason behind the absence of such a methodology is that previous studies have Concentrated on comparing languages rather than M developing such a methodology. This paper lays the ground work fm establishing a comprehemive qualitative methodology to compare and assess general-purpose ~1-=. -of~fmtures of the general-purpose pmgmmn@ languages will be factored out as much as possible fm the comparison and assessment to be more awurate. Features that can not be identified precisely are not included. Features that are solely based on other features are not incl~ either. llerefore, only fmldamentalfeatures am included.
Article
Four programming languages (Fortran, Cobol, Jovial and the proposed DoD standard) are compared in the light of modern ideas of good software engineering practice. The comparison begins by identifying a core for each language that captures the essential properties of the language and the intent of the language designers. These core languages then serve as a basis for the discussion of the language philosophies and the impact of the language on gross program organization and on the use of individual statements.
Article
There is a need for empirical evaluation of programming languages for unskilled users, but it is more effective to compare specific features common to many languages than to compare complete languages. This can be done by devising micro-languages stressing the feature of interest, together with a suitable subject matter for the programs. To illustrate the power of this approach two conditional constructions are compared: a nestable construction, like that of Algol 60, and a branch-to-label construction, as used in many simpler languages. The former is easier for unskilled subjects. Possible reasons for this finding are discussed.
Conference Paper
In 1989 the Computer Science Department at Swinburne selected Ada (83) as the first and main programming language for its principal undergraduate degree. Two full student cohorts from the degree have now graduated, and the department, now the School of Computer Science and Software Engineering, is commencing a major overhaul of its undergraduate degree programs. As part of the review, the choice of programming language is, as usual, a central issue. To make an informed decision, it is important that the 1989 decision in favour of Ada be reviewed. We look retrospectively at that decision. We conclude that it was not only correct, but of fundamental importance in securing the success of the degree. As a caution against simply retaining Ada because of its past success, we note that the previous decision was taken within a particular context, and in planning for Computer Science and Software Engineering education in the year 2000, the context has shifted to some extent
Conference Paper
Discusses seven undesirable features that are common to many programming languages used to teach first-time programmers: (1) less is more; (2) more is more; (3) grammatical traps; (4) hardware dependence; (5) backwards compatibility; (6) excessive cleverness; and (7) violation of expectations. We illustrate typical pedagogical difficulties which stem from these features, with examples drawn from the programming languages ABC, Ada, C, C++, Eiffel, Haskell, LISP, Modula 3, Pascal, Prolog, Scheme and Turing. We propose seven language design (or selection) principles which may reduce the incidence of such undesirable features: (1) start where the novice is; (2) differentiate semantics with syntax; (3) make the syntax readable and consistent; (4) provide a small and orthogonal set of features; (5) be especially careful with I/O; (6) provide better error diagnosis; and (7) choose a suitable level of abstraction
Article
Anti-FORTRAN sentiment has recently become more prevalent. Where does the attitude originate? The most probable source is academia, where C and C++ are the languages of choice. Is there a fact based justification for the attitude? FORTRAN and C are evaluated to determine whether C is a better language than FORTRAN for scientific programming. The features of FORTRAN 77, FORTRAN 90, C and C++ are compared, and evaluated as to how well they meet the requirements of the scientific programming domain. FORTRAN was designed specifically for numerical programming, and thus better meets the requirements. Three algorithms in the scientific domain are coded in both FORTRAN and C. They are evaluated on performance, readability of the code and optimization potential. In all cases the FORTRAN implementations proved superior. Is there evidence to mandate that all upgrades and new development should be done in C, rather than FORTRAN? A good computer programmer can solve any given problem in any langua...
Article
This paper describes the design and testing of a new introductory programming language, GRAIL1. GRAIL was designed to minimise student syntax errors, and hence allow the study of the impact of syntax errors on learning to program. An experiment was conducted using students learning programming for the first time. The students were split into two groups, one group learning LOGO and the other GRAIL. The resulting code was then analysed for syntax and logic errors. The groups using LOGO made more errors than the groups using GRAIL, which shows that choice of programming language can have a substantial impact on error rates of novice programmers. Introduction An experiment was conducted using a new language, GRAIL, which has been designed to minimise unnecessary errors. This experiment is the first in a series, in which GRAIL is being compared with other languages, some designed for introductory use and some used in industry. The aim of the experiments is to determine whether choice of la...
Article
Programming languages play a central role in the computer science curriculum. Programming is of course a fundamental component of the curriculum, and the choice of languages in which students learn to program has a major impact, both on the way that they learn and on the programming skills that they will take into industry. The past has seen considerable tension between the educational sector, in which we prefer to teach clean `structured' languages, and the industrial sector, whose language preferences are more pragmatic. Today we see a convergence: object-oriented methods in general have emerged as the technology of choice in both sectors, and Java 1 in particular is a fine language to learn programming and a useful preparation for programming in other languages such as C or C++.
Article
The growth of commercial and academic interest in parallel and distributed computing during the past 15 years has been accompanied by a corresponding increase in the number of available parallel programming systems (PPS). However, little work has been done to evaluate their usability, or to develop criteria for such evaluations. As a result, the usability of a typical PPS is based on how easily a small set of trivially parallel algorithms can be implemented by its authors. The paper discusses the design and results of an experiment to compare objectively the usability of two PPS. Half of the students in a graduate parallel and distributed computing course solved a problem using the Enterprise PPS while the other half used a PVM-like library of message-passing routines. The objective was to measure usability. The experiment provided valuable feedback as to what features of PPS are useful and the benefits they provide during the development of parallel programs. Although many usability experiments have been conducted for sequential programming languages and environments, they are rare in the parallel programming domain. Such experiments are necessary to help narrow the gap between what parallel programmers want and what current PPSs provide.
Choosing a language for .NET development', Borland Developer Network
  • C Jensen
Jensen, C. (2004) 'Choosing a language for.NET development', Borland Developer Network, http://bdn.borland.com/article/0,1410,31849,00.html
PHP: putting perl in a jam? The battle for web programming
  • M N Martin
Martin, M. (2003) 'PHP: putting perl in a jam? The battle for web programming', Computer Bits, Vol. 13, No. 4, http://www.mindbridge.com/news/PerlinaJam.htm McAllister, N. (2004) 'What do developers want?', InfoWorld, http://www.infoworld.com /article/04/09/24/39FErrdev_1.html
Tools, languages, and interacting with machines', Dr. Dobb's
  • G W Wilson
Wilson, G.W. (1997) 'Tools, languages, and interacting with machines', Dr. Dobb's Journal, July, http://www.ercb.com/ddj/1997/ddj.9707.html
Teaching programming languages and paradigms
  • J J Traxler
Traxler, J. (1994) 'Teaching programming languages and paradigms', 2nd All-Ireland Conference on the Teaching of Computing, Dublin, Ireland, http://www.ulst.ac.uk/cticomp/traxler.html Voegele, J. (2004) Programming Language Comparison, http://www.jvoegele.com/software /langcomp.html
SEPR and programming language selectionResources to support the use of java in introductory computer science
  • R Riehle
Riehle, R. (2003) 'SEPR and programming language selection', CrossTalk – The Journal of Defense Software Engineering, Vol. 16, No. 2, pp. 13–17, http://www.stsc.hill.af.mil /crosstalk/2003/02/Riehle.html Roberts, E. (2004) 'Resources to support the use of java in introductory computer science', Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, pp.233–234.
2004 college-bound seniors: a profile of SAT test takers', College Entrance Examination Board, OnlineJava second. The suitability of Java as a first programming language
  • H Bowman
Bowman, H. (1994) 'A perspective on language wars', 2nd All-Ireland Conference on the Teaching of Computing, Dublin, Ireland, http://www.ulst.ac.uk/cticomp/papers/ bowman.html CollegeBoard.com (2004) '2004 college-bound seniors: a profile of SAT test takers', College Entrance Examination Board, Online, http://www.collegeboard.com/prod_downloads/about/ news_info/cbsenior/yr2004/2004_CBSNR_total_group.pdf Collins, D. (2002) 'Java second. The suitability of Java as a first programming language', The Sixth Java and the Internet in the Computing Curriculum Conference Proceedings, London, UK, http://www.ics.ltsn.ac.uk/pub/jicc6/collins.doc
Summary of MIS and programming responses', ISWorld Listserv
  • S Tomblin
Tomblin, S. (2002) 'Summary of MIS and programming responses', ISWorld Listserv, 19 April, http://www.marshall.edu/ctc/ctc2/MIS_programming_responses.htm
Programming languages summary', ISWorld Listserv, 28 December http://www.isworld.org/isworldarchives/Teachingmessagedisplay.asp?message=237Programming languages – trends in education
  • H Watson
Watson, H. (2002) 'Programming languages summary', ISWorld Listserv, 28 December http://www.isworld.org/isworldarchives/Teachingmessagedisplay.asp?message=237 Watt, D.A. (2000) 'Programming languages – trends in education', Proceedings of Simposio Brasileiro de Linguagens de Programacao, Recife, Brazil, http://www.dcs.gla.ac.uk/~daw /publications/PLTE.ps
Not whether Java but how Java', CTI Computing Monitor
  • C Wallace
  • P Martin
  • B Lang
Wallace, C., Martin, P. and Lang, B. (1997) 'Not whether Java but how Java', CTI Computing Monitor, No. 8, http://www.scism.sbu.ac.uk/jfl/conference/uwe.html
TIOBE Programming Community Index for Evaluating Programming Languages
  • A P Tiobe Software Tolmach
Tiobe Software (2005) TIOBE Programming Community Index for April 2005, http://www.tiobe .com/tpci.htm Tolmach, A.P. (1999) Evaluating Programming Languages, http://www.cs.pdx.edu/~apt /cs301_1999/lecture3/
Guidelines for Choosing a Computer Language: Support for the Visionary Organization
  • P K Lawlis
Lawlis, P.K. (1997) Guidelines for Choosing a Computer Language: Support for the Visionary Organization, 2nd edition, Ada Information Clearinghouse, http://archive.adaic.com/docs /reports/lawlis/content.htm
Round 2: Potential Principles Governing Language Selection for CS1-CS2
  • Ad Hoc
  • Ap Cs Committee
Ad Hoc AP CS Committee (2000) Round 2: Potential Principles Governing Language Selection for CS1-CS2, http://www.cs.grinnell.edu/~walker/sigcse-ap/99-00-principles.html
The effect of programming language on error rates of novice programmersEvaluating languages and environments for novice programmers
  • L L Mciver
McIver, L. (2000) 'The effect of programming language on error rates of novice programmers', Proceedings of the Twelfth Annual Meeting of the Psychology of Programming Interest Group, Corigliano Calabro, Italy, pp.181–192, http://www.ppig.org/papers/12th-mciver.pdf McIver, L. (2002) 'Evaluating languages and environments for novice programmers', Proceedings of the Fourteenth Annual Meeting of the Psychology of Programming Interest Group, London, UK, pp.100–110, http://www.ppig.org/papers/14th-mciver.pdf
A report on high school computer science education in five US states', http://www.holtsoft.com/chris/HSSurveyArtLanguage choice and key concepts in introductory computer science courses
  • C Stephenson
Stephenson, C. (2000) 'A report on high school computer science education in five US states', http://www.holtsoft.com/chris/HSSurveyArt.pdf Stephenson, C. and West, T. (1998) 'Language choice and key concepts in introductory computer science courses', Journal of Research on Computing in Education, Vol. 31, No. 1, pp.89–95.