Background and Context: The relationship between novices' first programming language and their future achievement has drawn increasing interest owing to recent efforts to expand K-12 computing education. This arti...
详细信息
Background and Context: The relationship between novices' first programming language and their future achievement has drawn increasing interest owing to recent efforts to expand K-12 computing education. This article contributes to this topic by analyzing data from a retrospective study of more than 10,000 undergraduates enrolled in introductory computer science courses at 118 U.S. institutions of higher education. Objective: We explored the relationship between students' first programming languages and both their final grades in an introductory computer science course and their attitudes about programming. Method: Multiple matching techniques compared those whose firstlanguage was graphical (e.g., Scratch), textual (e.g., Java), or absent prior to college. Findings: Having any prior programming experience had positive effects on both attitudes about programming and grades in introductory computer science courses. Importantly, students whose firstlanguage was graphical had higher grades than did students whose firstlanguage was textual, when the languages were introduced in or before early adolescent years.
The choice of the first programming language (FPL) has been a controversial issue for several decades. Nearly everyone agrees that the FPL is important and affects students' subsequent education on programming. Th...
详细信息
The choice of the first programming language (FPL) has been a controversial issue for several decades. Nearly everyone agrees that the FPL is important and affects students' subsequent education on programming. The study presented in this article investigates the suitability of various C-like and Pascal-like programminglanguages as a FPL. Students from three Universities express their perceptions on the FPL through a specially designed questionnaire. The students had been introduced to programming using different FPLs and having experience on more than one language and formulated two distinct groups: a group introduced to programming with a C-like and another with a Pascal-like language. The statistical analysis of the data collected showed that the choice of the FPL does not have a deep impact on difficulties that novices may experience when learning the basics of programming. However, this result was recorded in the context of three distinct programming courses that were positively evaluated by students in relation to their content, organization and quality. Consequently, this study indicates that the overall quality of the course and the instructors have a great impact on a smooth introduction to programming no matter what the FPL is.
The study for degree of Bachelor in Computer science at our Department lasts four years and besides other subjects, offers several interconnected core courses in programming: Introduction to programming, Data structur...
详细信息
ISBN:
(纸本)9780735412873
The study for degree of Bachelor in Computer science at our Department lasts four years and besides other subjects, offers several interconnected core courses in programming: Introduction to programming, Data structures and algorithms 1 and 2, Operating systems and Compiler construction. The intention in these courses is to put emphasizes on abstract structures and not to insist on particular realization in specific programminglanguage or to use different languages in different courses. In order to avoid teaching many languages and various environments, it was decided to choose one language that is easy to teach and good for development of correct programming style. Chosen language has to be flexible enough to support teaching the different principles, methods and techniques.
There is a consensus among computer education experts and practitioners that teaching introductory programming is intrinsically hard. In particular, the choice of the first programming language to support learning the...
详细信息
ISBN:
(纸本)9798400716539
There is a consensus among computer education experts and practitioners that teaching introductory programming is intrinsically hard. In particular, the choice of the first programming language to support learning the fundamentals of problem solving and algorithmic reasoning is a hot issue that is driving a lot of attention within the last few decades. As a side effect, the computing education community has been long divided between supporters of industrial relevance and advocates of educational benefits as the prominent grounds on which a first programming language should be elected. While the former seem to have the wind in their sails, with popular-in-industry languages such as Java, C and C++ being still widely used to teach introductory programming, the case is far from being closed. In this paper, we propose to analyze the firstlanguage choice dilemma in the light of a number of rigorous studies carried out within and outside of the computing education community. We show that, in the light of these studies, we can efficiently question our choices as educators and stimulate objective discussions toward reconciling our views regarding the firstlanguage choice. Mainly, we devise a number of criteria, all backed up with scientific findings from different communities, according to which a firstlanguage should be evaluated. Our conclusions converge toward a justified concern vis-à-vis the use of languages such as Java and C to teach introductory programming, and the pressing need for a better compromise between industrial popularity and educational advantages. To meet that need, our position gravitates around two major opinions stemming from our cross-disciplinary analysis: (i) Java, C and C++ should not be used to teach introductory programming and should rather be saved for more advanced programming courses and (ii) while the recent trend of choosing Python is justified, it is still debatable and therefore other candidates, among which we propose a couple, shou
The teaching and learning of the first programming language course, commonly called CS1 (Computer Science 1), is a reported challenge for undergraduate students in different majors and universities. In general, these ...
详细信息
This paper presents the results of the evaluation of a preliminary course teaching concepts of programming to first semester students. The course is meant to facilitate the students' entry into the first semester ...
详细信息
ISBN:
(纸本)9781450363839
This paper presents the results of the evaluation of a preliminary course teaching concepts of programming to first semester students. The course is meant to facilitate the students' entry into the first semester lecture "Concepts of programming" which corresponds to a CS1 course. For this lecture Java is used as programminglanguage, however its object centered approach is considered too complex for beginners and not suited to teach procedural programming. Therefore we use Python in the preliminary course which can be utilized as a procedural language. Several surveys were conducted during and after the course. Additionally we compared the performance of course participants against non-participants in the written exam of the lecture. Although no significant improvement was noted, we nevertheless have observed some improvements on the border of significance in students comprehension of Java code after learning Python. Further on in the exam results of the regular CS1 lecture we have observed a higher knowledge heterogeneity in the group of non-participants compared to course participants.
It is well documented and has been the topic of much research as well that Computer Science courses tend to have higher than average drop-out rates at third level, particularly so, for students advancing from first ye...
详细信息
It is well documented and has been the topic of much research as well that Computer Science courses tend to have higher than average drop-out rates at third level, particularly so, for students advancing from first year to second year. This is a problem that needs to be addressed not only with urgency but also with caution. The required number of Computer Science graduates is growing every year, but the number of graduates is not meeting this demand, and one way that this problem can be alleviated is to encourage students, at an early age, towards studying Computer Science courses. This paper presents a systematic literature review that examines the role of visual and textual programminglanguages when learning to program, particularly as a first programming language. The approach is systematic in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will provide insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.
The first year curriculum at the University of the Witwatersrand (Wits) is a breadtb-first curriculum where students are introduced to a variety of topics in Computer Science (see Sanders and Mueller [5] for details)....
详细信息
ISBN:
(纸本)9781605580784
The first year curriculum at the University of the Witwatersrand (Wits) is a breadtb-first curriculum where students are introduced to a variety of topics in Computer Science (see Sanders and Mueller [5] for details). As part of the course the students are expected to come to terms with a number of basic algorithms and data structures which they are required to implement. When the curriculum was designed we chose Scheme as the implementation language. One reason for doing so was because the main entrance requirement for our course is a solid mathematics background as evidenced by good marks at school level. Our students thus have a good understanding of functions and we felt that Scheme's functional style would make it accessible to all of our students. Another reason for choosing Scheme was because it is a language which would be new to all of our students. Scheme was well received by those students who had never programmed before and proved to be a good language for meeting our teaching objectives but there was resistance to the language from the students who could already program as they considered it a waste of time to learn a language which was not (as they believed) used in the real world [3]. In addition, the use of Scheme did not really reduce the performance gap between the students with and without prior programming experience [2]. Python has been found to be a good firstlanguage for both experienced and inexperienced users [4] and its simple syntax and support of different programming paradigms seemed to make it an attractive option for our first year course. We believed that using Python would still allow us to meet our educational objectives - it would be easily accessible to those students who had never programmed before and would support our approach of formulating algorithms in a functional style. In addition, Python is a "real-world language" - it is acknowledged as a good language for scientific applications - and we thought this might result in t
暂无评论