9,730 research outputs found
Four approaches to teaching programming
Based on a survey of literature, four different approaches to teaching introductory programming are identified and described. Examples of the practice of each approach are identified representing procedural, visual, and object-oriented programming language paradigms. Each approach is then further analysed, identifying advantages and disadvantages for the student and the teacher. The first approach, code analysis, is analogous to reading before writing, that is, recognising the parts and what they mean. It requires learners to analyse and understand existing code prior to producing their own. An alternative is the building blocks approach, analogous to learning vocabulary, nouns and verbs, before constructing sentences. A third approach is identified as simple units in which learners master solutions to small problems before applying the learned logic to more complex problems. The final approach, full systems, is analogous to learning a foreign language by immersion whereby learners design a solution to a non-trivial problem and the programming concepts and language constructs are introduced only when the solution to the problem requires their application. The conclusion asserts that competency in programming cannot be achieved without mastering each of the approaches, at least to some extent. Use of the approaches in combination could provide novice programmers with the opportunities to acquire a full range of knowledge, understanding, and skills. Several orders for presenting the approaches in the classroom are proposed and analysed reflecting the needs of the learners and teachers. Further research is needed to better understand these and other approaches to teaching programming, not in terms of learner outcomes, but in terms of teachersâ actions and techniques employed to facilitate the construction of new knowledge by the learners. Effective classroom teaching practices could be informed by further investigations into the effect on progression of different toolset choices and combinations of teaching approache
A Novice's Process of Object-Oriented Programming
Exposing students to the process of programming is merely implied but not explicitly addressed in texts on programming which appear to deal with 'program' as a noun rather than as a verb.We present a set of principles and techniques as well as an informal but systematic process of decomposing a programming problem. Two examples are used to demonstrate the application of process and techniques.The process is a carefully down-scaled version of a full and rich software engineering process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of the aspects of software engineering
A Multimedia Interactive Environment Using Program Archetypes: Divide-and-Conquer
As networks and distributed systems that can exploit parallel computing become more widespread, the need for ways to teach parallel programming effectively grows as well. Even though many colleges and universities provide courses on parallel programming [1], most of those courses are reserved for graduate students and advanced undergraduates. There is a demand for ways to teach fundamental parallel programming concepts to people with just a working knowledge of programming. By using the idea of a software archetype, and providing a learning environment that teaches both concept and coding, we hope to satisfy this need. This paper presents an overview of the multimedia approach we took in teaching parallel programming and offers Divide-and-Conquer as an example of its use
A Programming Environment for Visual Block-Based Domain-Specific Languages
AbstractVisual block-based programming is useful for various users such as novice programmers because it provides easy operations and improves the readability of programs. Also, in programming education, it is known to be effective to initially present basic language features and then gradually make more advanced features available. However, the cost of implementing such visual block-based languages remains a challenge. In this paper, we present a programming environment for providing visual block-based domain- specific languages (visual DSLs) that are translatable into various programming languages. In our environment, programs are built by combining visual blocks expressed in a natural language. Blocks represent program elements such as operations and variables. Tips represent snippets, and macro blocks represent procedures. Using Tips and macros make code more abstract, and reduce the number of blocks in code. Visual DSLs can be a front-end for various languages. It can be easily restricted and extended by adding and deleting blocks. We applied our programming environment to Processing, an educational programming language for media art. We show that the environment is useful for novice programmers who learn basic concepts of programming and the features of Processing
EasyCoding - methodology to support programming learning
Mestrado de dupla diplomação com o Centro Federal de Educação TecnolĂłgica de Minas Gerais â CEFET-MGThe increase in failure rate in the first programming curricular units, in engineering
courses, and the school dropout growth by students shows the importance of further
study on the real reasons for these episodes.
When considering that this situation is amplified, in large part, by the lack of motivation
and the lack of student autonomy to study programming outside the classroom
context, this work proposes a methodology based on activity guides, using innovative and
attractive web platforms. The proposed methodology aims to facilitate the planning of
teachersâ activities and to increase studentsâ autonomy and motivation.
For the execution of this study, we evaluated the proposed methodology with programming
professors and students at the Polytechnic Institute of Bragança and the Federal
Center for Technological Education of Minas Gerais.
In addition, we developed a system for automatic generation of activity guides which
aimed assisting teachers in the creation of exercises with innovative web platforms to
motivate students to study programming beyond the classroom.
The obtained results allow us to demonstrate the importance of using innovative teaching
methodologies, inside and outside the classroom, to encourage students to practice
more programming exercises. Thus, as contributions, the proposed methodology can help
combat school dropout in higher education in engineering courses, once it can help to
keep the students motivated during the first programming subjects.O aumento na taxa de insucesso nas primeiras unidades curriculares de programação, nos
cursos de engenharia, e o crescimento do abandono escolar por parte dos alunos mostra a
importância de um estudo mais aprofundado sobre os reais motivos desses episódios.
Ao considerar que essa situação Ê ampliada, em grande parte, pela falta de motivação
e falta de autonomia do aluno para estudar programação fora do contexto da sala de
aula, este trabalho propĂľe uma metodologia baseada em guiĂľes de atividades, utilizando
plataformas web inovadoras e atrativas. A metodologia proposta visa facilitar o planejamento
das atividades dos professores e aumentar a autonomia e a motivação dos alunos.
Para a execução deste estudo, avaliamos a metodologia proposta com professores e
alunos de programação do Instituto PolitÊcnico de Bragança e do Centro Federal de
Educação Tecnológica de Minas Gerais.
AlÊm disso, desenvolvemos um sistema para geração automåtica de guias de atividades,
com o objetivo de auxiliar os professores na criação de exercĂcios com plataformas web
inovadoras, para motivar os alunos a estudar programação alÊm da sala de aula.
Os resultados obtidos nos permitem demonstrar a importância do uso de metodologias
inovadoras de ensino, dentro e fora da sala de aula, para incentivar os alunos a praticar
mais exercĂcios de programação. Assim, como contribuição, a metodologia proposta pode
ajudar a combater o abandono escolar no ensino superior nos cursos de engenharia, uma
vez que pode ajudar a manter os alunos motivados durante as primeiras disciplinas de
programação
Issues and challenges of using web blogs as a medium for research communication.
The advent of web-based technology has initially allowed millions of users to get hold of immense information and to communicate worldwide. In the field of education, for example, web-based technology has brought about significant influence in terms of teaching and learning approaches (Supyan, 2003; Supyan & Roziana, 2001; Zuwati, 2006). In fact, web-based technology is also now popular as a medium for data collection among researchers (C. Cooper, Cooper, Del Junco, Shipp, Whitworth, & Cooper, 2006; White, Carey, & Dailey, 2000). The purpose of this paper is to report on both issues that need addressing, and challenges in using web blogs as a medium for communicating with respondents for research purposes. The issues and challenges discussed in the paper were based on the researchers' own experience in conducting data collection using a qualitative approach through web blog discussions. With the socio-cultural approach in view, some recommendations are also included as guidelines for those planning to use such web-based technology as a medium of data collection in research
- âŚ