Revising the first programming course-the second round (original) (raw)
Related papers
Designing and deploying programming courses: Strategies, tools, difficulties and pedagogy
Education and Information Technologies, 2014
Designing and deploying programming courses is undoubtedly a challenging task. In this paper, an attempt to analyze important aspects of a sequence of two courses on imperative-procedural and object-oriented programming in a non-CS majors Department is made. This analysis is based on a questionnaire filled in by fifty students in a voluntary basis. The issues of the programming courses that are investigated refer to: the strategy selected for the introduction to programming; the sequence of the programming techniques and languages taught and the transition from the one to the other; students' difficulties with programming in general and with imperative-procedural and object-oriented programming in specific; the teaching and learning design of both courses; and the material that students rely on for learning programming. Based on the analysis of students' replies on the questionnaire, related work and the instructor's experience on teaching the courses, conclusions are drawn regarding all the aforementioned aspects of designing and deploying programming courses. The main contribution of the paper is the fact that all the important and interrelated aspects of a sequence of two programming courses are investigated in conjunction, providing realistic implications and guidelines for improving the quality and effectiveness of existing programming courses and designing and deploying new courses. The main results refer to the usage of a pseudo-language for an introduction to programming, the transition from procedural to object-oriented programming, the intrinsic difficulties of learning programming, and practices for a more successful teaching and learning design of programming courses. Keywords: Programming course design; teaching and learning programming; procedural programming; object-oriented programming; pedagogy 2004). The imperative-first and functional-first strategies were heavily used for decades, while the objects-first strategy attracted teachers' attention the last decade. For a long period of time extended research was carried out regarding the best choice of strategy for an introduction to programming with main opponents the imperative-first and objects-first strategy. Although, the results of the relevant studies are contradictory the majority of researchers seem to agree that students face more difficulties during their transition from imperative-procedural programming to object-oriented programming and not vice versa ). Some of the difficulties faced by students -with prior experience on an imperative-procedural language -during their introduction to OOP are the following: although the OO problem solving technique is considered more natural, it demands a new way of thinking that cannot be easily acquired by students with experience on problem solving with a procedural language (Tempte, 1991); students find it difficult to use correctly OOP concepts and tend to treat methods as procedures, ignoring their role in OOP (Handjerrouit, 1998; Handjerrouit, 1999). On the other hand, other researchers state that object-oriented languages demand knowledge of basic programming structures and characteristics and capabilities prior to using an OOP language . It is obvious that deciding what strategy to rely on for the introduction to programming is not an easy and straightforward decision. Moreover, in the case of a series of programming courses decisions have to be made regarding the overall strategies, or else what programming techniques will be taught and with what sequence. The next step is selecting a programming language that supports the selected strategy and meets the goals of the course and the program of studies. The available programming languages are numerous and selecting the one that will be used is a multicriteria decision. Researchers have proposed lists of criteria , key features and suggestions (Kaplan, 2010) for supporting teachers in selecting the first programming language. One of the most extensive list of criteria has been proposed by and includes the following criteria: software cost; programming language acceptance in academia; programming language industry penetration; software characteristics; student-friendly features; language pedagogical features; language intent; language design; language paradigm; language support and required training; and student experience. go a step beyond these usual considerations proposed as selection criteria Xinogalos, S. (2014). Designing and deploying programming courses: Strategies, tools, difficulties and pedagogy.
Introductory programming course: review and future implications
PeerJ Computer Science, 2021
The introductory programming course (IPC) holds a special significance in computing disciplines as this course serves as a prerequisite for studying the higher level courses. Students generally face difficulties during their initial stages of learning how to program. Continuous efforts are being made to examine this course for identifying potential improvements. This article presents the review of the state-of-the-art research exploring various components of IPC by examining sixty-six articles published between 2014 and 2020 in well-reputed research venues. The results reveal that several useful methods have been proposed to support teaching and learning in IPC. Moreover, the research in IPC presented useful ways to conduct assessments, and also demonstrated different techniques to examine improvements in the IPC contents. In addition, a variety of tools are evaluated to support the related course processes. Apart from the aforementioned facets, this research explores other interest...
Strategies for Teaching Programming to Meet New Challenges: State of the Art
Computer programming is responsible for every interaction between humans and computers whether it is about creating web applications, optimizing the GPS software, processing document in a text editor, using various social networks, Internet banking, etc. Computer programming shouldn't be looked just as a tool, but as a way of seeing the world based on the idea of dividing tasks into smaller subtasks.
An Exploration into Effective Teaching of Introductory Programming
2015
New Software based systems are being built in all engineering domains and their number is on the rise. Thus there exists a demand for high-quality professionals who can develop reliable and maintainable software for building such systems. It is also widely known now that, more often than not ,software components are the weakest link in terms of being the triggers for system failures. In this context, programming is an activity that needs to be carried out with rigour and discipline to develop reliable and maintainable software. This article argues that it is only right learning of programming by our undergraduate students in our colleges and universities in India that can address the requirement of high-quality professionals being involved in developing software for various systems. However , this is possible only if right teaching methodologies of programming are practised by the teachining community in various science and engineering colleges in India. A survey of the foundational...
Improving the Technical Infrastructure of a Programming Course
2009 Ninth IEEE International Conference on Advanced Learning Technologies, 2009
Decreasing interest in computer science and programming has caused trouble to many institutions recently. To tackle this issue an active improvement of the first programming course was started four years ago. In this paper the adopted action research approach is described together with the improved results from the course. The improvement actions have so far focused on the technical infrastructure of the course including the used programming language, development environment, weekly assignments, course project, and teaching materials. Even though the technical infrastructure still has deficiencies, the limit of improvement possible with efforts focusing on the technical aspects is approaching, and continued improvement requires moving the improvement focus on the pedagogical aspects.
Programming studio: a course for improving programming skills in undergraduates
Proceedings of the 38th SIGCSE technical …, 2007
Even after taking numerous programming courses, many students have poor programming skills. This is a problem not only in their post-graduation employment, but even in the higher-level Computer Science courses, where large programs are routinely assigned. Yet, teaching programming skills is expensive; like teaching writing, it can only be accomplished by a repeated cycle of writing, getting informed feedback, and rewriting. In this paper, we describe a computer science course designed around the concept of a studio course like those used in art and architecture.
Report on the design of the introductory programming course
2021
Education consists of knowledge, skill, and a confident, enthusiastic, contemplative disposition, as per the recently released draft of the ACM IEEE Computing Curricula 2020 (www.cc2020.net). While Indian Education has generally done well on knowledge, it is often considered lacking on skill/application of knowledge. Furthermore, there is also concern regarding disposition/outlook. CC2020 suggests that cultivating a proper outlook cannot be left as matter of pedagogical style/choice, but it must done explicitly. In this document we present a design for an introductory programming course which pays more attention to the skill and disposition aspects. We propose a syllabus together with pedagogical and assessment strategies. Courses (nearly) based on our design have been conducted in some universities and on NPTEL. So there is a fair amount of experience and resource created from that. ACM India will be glad to assist other universities desirous of implementing our material. The rest ...
Teaching computer programming: Practices, difficulties and opportunities
2015 IEEE Frontiers in Education Conference (FIE), 2015
It is highly recognized that difficulties involved in teaching programming in an introductory course, arise from the cognitive process complexity that is necessary for developing this ability. Previous studies on the best first programming language or the best first programming paradigm have been conducted. Even, the most appropriate integrated development environment (IDE) for novice programmers has been inquired, and the most appropriate problem solving strategy to teach to write computable solutions has been researched.
Foundations of Programming: a Teaching Improvement
Computers and Education, 2002
The ESPUMA project is a university project directed to the improvement of teaching in first-year subjects of programming. The ESPUMA project was born three years ago with the main aim of improving the quality of teaching and motivating the student to learn the foundations of programming. This project involves both the use of the new technologies in the classroom and the development of attractive graphical environments aimed at helping the student to study the topics of the subjects. In this paper we present the ESPUMA project and evaluate its three-year application by showing main results in terms of academic results and acceptance from the student's point of view.
A review on challenges and solutions in learning programming courses at undergraduate level
International Journal of Applied Research , 2019
Taking a computer programming language course for the first time is a problematic and challenging task for most of the pupils who mostly fail or drop out of the course. In addition to this, this problem is not restricted for computer science pupils, since pupils in other engineering disciplines have to take programming courses as well. In this paper, we review papers related to teaching approach, challenges and solutions for improving student's ability and performance in a first programming language course in undergraduate program. One of the most well-known challenges in teaching and learning a first programming language course is that in the same course, the students must learn and get to know fundamental programming techniques, high level abstraction capabilities, the application of those tricks and techniques, notion and significance in problem solving and design. In this paper the general trends comparing freshers and expert programmers, programming strategies and knowledge, program generation and understanding has been identified. The main and fundamental focus and point of this review is on novice programming and concepts relating to novice learning and teaching. Different problems faced and experienced by novices are recognized, containing issues relating to core program design, to algorithmic complexity in some specific language features, to the frangibility of novice knowledge, and so on. Keep this in mind we have summarized this material and suggest some practical concepts for academicians.