Teaching Advanced Programming Concepts in Introductory Computing Courses: A Constructivism Based Approach
نویسنده
چکیده
Teaching object-oriented programming in introductory computer courses is still an area not well understood by instructors and teachers. A new approach, quite different from the one used to teach the procedural paradigm, is required. We have developed and used for several years a teaching approach that is greatly influenced by constructivism, which stresses the importance of prior knowledge on top of which new knowledge is built. A real-life system was adopted, to exploit the prior knowledge that students have from every-day life. This perspective guided us in making a shift in focus from the algorithm-centered view to the software-engineering-centered view and more precisely to a design-first approach. We also recognized the need imposed by the complexity and the event driven nature of today’s applications, for improved techniques and mechanisms concerning exception handling, garbage collection and concurrency. In this paper we describe the constructivism-based approach that we use to teach exception handling and concurrency in introductory computer courses as well as our experience from using this approach. The first results of this approach are very promising. We found that students’ conceptions evolved during the course to the point that they were able to confront by the end of the course the requirements imposed by today’s demanding applications concerning the issues of exception handling and concurrency. Students found the course extremely challenging and the pass-fail ratio was improved considerably. Index Terms Constructivism in education, teaching exception handling, teaching concurrency, semaphore.
منابع مشابه
Teaching Advanced Computing Concepts in Java: A Constructivism-based Approach
The belief that concurrent programming concepts are too difficult for the average programmer is one of the most important reasons for not covering concurrent programming in introductory computing courses, although much needed last years. In this paper, an approach, used to teach advanced computing concepts and especially concurrency and exception handling in introductory computing courses, is p...
متن کاملTeaching Software Engineers the Basics of Reconfigurable Computing
From past experiences, it has been difficult to teach the concepts of hardware design to software engineering students. This is primarily because from their introductory courses in programming, they are taught to think sequentially; which contradicts how hardware engineer’s think. This paper presents an approach that has been used for teaching reconfigurable computing techniques to advanced und...
متن کاملIntroductory programming by collaborative method “pair programming”
Learning programming skills and algorithmic way of thinking is a difficult task, particularly in the introductory programming courses. Many students find programming difficult because traditional teaching methods do not adapt well to the process of coding and problem solving, as it is a skill best learned through experience. In the paper we present an application of “pair programming”. It belon...
متن کاملSome "Secure Programming" Exercises for an Introductory Programming Class
Ideally, computer security should be an integral part of all programming courses. Beginning programming classes pose a particular challenge, because the students are learning basic concepts of programming. Thus, teaching them about buffer overflows as security problems, requiring an explanation of concepts such as ―smashing the stack,‖ will confuse students more than motivate them to check arra...
متن کاملAn Experience on Applying Software Testing for Teaching Introductory Programming Courses
Previous work has demonstrated that the use of software testing concepts for teaching introductory programming courses may be a good practice for the students. Indeed, these courses provide limited opportunities for the teacher regarding dynamic activities that could help students in the learning process. This paper describes an approach in which test sets are reused in the context of teaching ...
متن کامل