464,205 research outputs found
A System for Assessing the Knowledge and Skills of Students in Computer Programming
This article presents the author’s experience in
teaching programming to university students in first and second year. The system for assessing the knowledge and skills of students is an essential part of teaching. It aims not only to assess students, but also to help improving their knowledge. The importance and difficulty of Computer Programming requires specific and unconventional approach to this activity. The article discusses all three elements of ongoing assessment (tests for knowledge, homeworks, and practical programming skills), as well as the rules for final exams and final assessment
Teaching programming with computational and informational thinking
Computers are the dominant technology of the early 21st century: pretty well all aspects of economic, social and personal life are now unthinkable without them. In turn, computer hardware is controlled by software, that is, codes written in programming languages. Programming, the construction of software, is thus a fundamental activity, in which millions of people are engaged worldwide, and the teaching of programming is long established in international secondary and higher education. Yet, going on 70 years after the first computers were built, there is no well-established pedagogy for teaching programming.
There has certainly been no shortage of approaches. However, these have often been driven by fashion, an enthusiastic amateurism or a wish to follow best industrial practice, which, while appropriate for mature professionals, is poorly suited to novice programmers. Much of the difficulty lies in the very close relationship between problem solving and programming. Once a problem is well characterised it is relatively straightforward to realise a solution in software. However, teaching problem solving is, if anything, less well understood than teaching programming.
Problem solving seems to be a creative, holistic, dialectical, multi-dimensional, iterative process. While there are well established techniques for analysing problems, arbitrary problems cannot be solved by rote, by mechanically applying techniques in some prescribed linear order. Furthermore, historically, approaches to teaching programming have failed to account for this complexity in problem solving, focusing strongly on programming itself and, if at all, only partially and superficially exploring problem solving.
Recently, an integrated approach to problem solving and programming called Computational Thinking (CT) (Wing, 2006) has gained considerable currency. CT has the enormous advantage over prior approaches of strongly emphasising problem solving and of making explicit core techniques. Nonetheless, there is still a tendency to view CT as prescriptive rather than creative, engendering scholastic arguments about the nature and status of CT techniques. Programming at heart is concerned with processing information but many accounts of CT emphasise processing over information rather than seeing then as intimately related.
In this paper, while acknowledging and building on the strengths of CT, I argue that understanding the form and structure of information should be primary in any pedagogy of programming
Teaching Programming and Design-by-Contract
This paper summarizes the experience of teaching an introductory course to
programming by using a correctness by construction approach at Innopolis
University, Russian Federation. In this paper we claim that division in
beginner and advanced groups improves the learning outcomes, present the
discussion and the data that support the claim.Comment: 21th International Conference on Interactive Collaborative Learnin
Blue - A Language for Teaching Object-Oriented Programming
Teaching object-oriented programming has clearly become an important part of computer science education. We agree with many others that the best place to teach it is in the CS1 introductory course. Many problems with this have been reported in the literature. These mainly result from inadequate languages and environments. Blue is a new language and integrated programming environment, currently under development explicitly for object-oriented teaching. We expect clear advantages from the use of Blue for first year teaching compared to using other available languages. This paper describes the design principles on which the language was based and the most important aspects of the language itself
Recommended from our members
Using GitHub as a Teaching Tool for Programming Courses
GitHub has become the most popular code management platform in the software development industry. It allows developers to manage their software development projects and collaborate with each other. Recently, educators also started using GitHub as a teaching tool for programming courses by hosting code samples and managing student assignments. In this study, we examine how GitHub is being used in academia, and we discuss the motivations and the benefits of using this platform. We also present authors’ experience of using GitHub in programming courses of a software engineering program. We discuss the benefits and challenges of using GitHub and GitHub classroom in the classroom.Cockrell School of Engineerin
Contemporary developments in teaching and learning introductory programming: Towards a research proposal
The teaching and learning of introductory programming in tertiary institutions is problematic. Failure rates are high and the inability of students to complete small programming tasks at the completion of introductory units is not unusual. The literature on teaching programming contains many examples of changes in teaching strategies and curricula that have been implemented in an effort to reduce failure rates. This paper analyses contemporary research into the area, and summarises developments in the teaching of introductory programming. It also focuses on areas for future research which will potentially lead to improvements in both the teaching and learning of introductory programming. A graphical representation of the issues from the literature that are covered in the document is provided in the introduction
How to incorporate the needs and expectations of the employers into quantitative courses
[Abstract]:
Model building applications using mathematical programming techniques are discussed widely in the majority of the textbooks on Operations Management and related fields. For instance, Linear Programming and its derivatives are applied to a variety of situations which range from machine shop scheduling to health and education management. To what extent the industries rely on these techniques to manage and allocate their resources to achieve optimal results needs to be investigated. Teaching approaches also have a significant effect on students' learning and meeting the employers' needs. Feedback from the students and employers will certainly help with teaching materials and formal assessment improvements.
This paper reports the findings of investigations on the students' learning preferences and the employers' requirements with regard to Operations Management tools and techniques. The paper also presents procedures and findings of an experiment on teaching basic mathematics concepts to Business undergraduate students by employing very practical aids
- …
