153,561 research outputs found

    Blue - A Language for Teaching Object-Oriented Programming

    Get PDF
    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

    Why University Students Fail in Most Computer Programming Courses: The Case of Wachemo University-Student-Teacher Perspective

    Get PDF
    In this research, a study was conducted to investigate and explore the views of students for the failure and difficulties they faced in learning fundamental programming courses. There are many factors that influence the high rate of failure of students in most computer programming courses. This paper focuses on the teaching and learning methodologies and strategies that are implemented in teaching of all computer programming courses. This is a major factor for consideration; hence an investigation into the causes of failure of students in most computer programming courses from all perspectives with regard to the teaching methodology used by teachers to teach these courses is relevant and very important concept. Most computer programming courses form part of the core concentration areas for students especially studying in school of computing and informatics as an undergraduate degree program. All computer programming students are expected to prove capabilities in the principles of programming and logic that are being taught in the courses; even though some of these concepts are highly intellectual and multifaceted. Their opinions to the usefulness of the teaching methods being implemented in computer programming courses were required for. The needs and concerns about the teaching and learning methods are highlighted in the study and discussed thereby leading to the making of suggestions about the ways to improve the teaching and learning methods that are used in computer programming courses in order to advance understanding of computer programming, when studied by students thereby minimizing failure rates of those students. Keywords: Computer programming; Failure; School of Computing and Informatics; Student and Teacher Perspective DOI: 10.7176/CEIS/11-2-02 Publication date: February 29th 2020

    C-Sheep: Controlling Entities in a 3D Virtual World as a Tool for Computer Science Education

    Get PDF
    One of the challenges in teaching computer science in general and computer programming in particular is to maintain the interest of students, who often perceive the subject as difficult and tedious. To this end, we introduce C-Sheep, a mini-language-like system for computer science education, using a state of the art rendering engine, usually found in entertainment systems. The intention is to motivate students to spend more time programming, which can be achieved by providing an enjoyable experience. Computer programming is an essential skill for software developers and as such is always an integral part of every computer science curriculum. However, even if students are pursuing a computer science related degree, it can be very difficult to interest them in the act of computer programming, the writing of software, itself. In the C-Sheep system this is addressed by using the visual gimmickry of modern computer games, which allows programs to provide instant visualisation of algorithms. This visual feedback is invaluable to the understanding of how the algorithm works, and - if there are unintended results - how errors in the program can be debugged. The C-Sheep programming language is a (100% compatible) subset of the ANSI C programming language. Apart from just being a tool for learning the basics of the C programming language, C-Sheep implements the C control structures that are required for teaching the basic computer science principles encountered in structured programming. Unlike other teaching languages which have minimal syntax and which are variable free to provide an environment with minimal complexity, C-Sheep allows the declaration and use of variables. C-Sheep also supports the definition of sub-routines (functions) which can be called recursively. "The Meadow" virtual environment is the virtual world in which entities (in our case sheep) controlled by C-Sheep programs exist. This micro world provides a graphical representation of the algorithms used in the programs controlling the virtual entities. Their position and orientation within the virtual world visualise the current state of the program. "The Meadow" is based on our proprietary "Crossbow" game engine which incorporates a virtual machine for executing CSheep programs. The Crossbow Engine is a compact game engine which is flexible in design and offers a number of features common to more complex engines. The Crossbow Virtual Machine used with C-Sheep in "The Meadow" - an improvement on the ZBL/0 virtual machine - is a module of the Crossbow Engine. The C-Sheep system also provides a counterpart library for C, mirroring the CSheep library functions of the virtual machine. This allows C-Sheep programs to be compiled into an executable using a normal off-the-shelf C/C++ compiler. This executable can then be run from within the native working environment of the operating system. The purpose of this library is to simplify the migration from the educational mini-language to real-world systems by allowing novice programmers to make an easy transition from using the C-Sheep system to using the C programming language

    An introductory educational board game for use in early computer science education

    Get PDF
    Early computer science education should be necessary in high school curricula, but often it becomes inextricably linked to the act of programming instead of the study of the principles of computation. In order to divest computer science from programming a new teaching medium is needed, and early research into games as teaching tools shows some positive results when used properly. In order to find a better way to teach early computer science concepts I have designed and implemented a board game which illustrates and defines a few necessary computer science terms and mechanics. I had reasonable success in the classroom, with mixed results from two completely different groups of students. The game seems effective, but my methods of teaching and lesson plan surrounding the game weakened the gains I recorded. I plan on reworking the base rules and developing new expansions which would increase the playability of the game and simplify the methods for delivery of the computer science material covered during a game sessio

    TEACHING CAD PROGRAMMING TO ARCHITECTURE STUDENTS

    Get PDF
    [Ensino da Programação CAD para Estudantes de Arquitetura] O objetivo deste trabalho é discutir a relevância da inclusão de uma disciplina de programação de computadores no currículo de Graduação em Arquitetura e urbanismo. Ele começa explicando como a programação tem sido aplicada em outros contextos educacionais com grande sucesso pedagógico, e descrevendo os princípios de Papert. Em seguida, é apresentado um resumo da evolução do CAD e três exemplos históricos de aplicações da programação no ensino de arquitetura são apresentados, seguidos por um exemplo contemporâneo de grande relevância. Finalmente, é proposta uma metodologia para o ensino de programação para arquitetos, com o objetivo de melhorar a qualidade dos projetos, tornando os conceitos arquitetônicos mais explícitos. Essa metodologia é baseada na experiência da autora de ensino de programação para alunos do curso de graduação em arquitetura na Universidade Estadual de Campinas. O trabalho termina com uma discussão sobre o papel da programação nos dias de hoje, quando a maioria dos programas de CAD são amigáveis. Como conclusão, sugere-se que a introdução da programação no currículo de CAD, dentro de um arcabouço teórico apropriado, pode vir a transformar o conceito de ensino da arquitetura. Palavras-chave: Computer programming; computer-aided design; architectural education. ABSTRACT The objective of this paper is to discuss the relevance of including the discipline of computer programming in the architectural curriculum. To do so I start by explaining how computer programming has been applied in other educational contexts with pedagogical success, describing Seymour Papert's principles. After that, I summarize the historical development of CAD and provide three historical examples of educational applications of computer programming in architecture, followed by a contemporary case that I find of particular relevance. Next, I propose a methodology for teaching programming for architects that aims at improving the quality of designs by making their concepts more explicit. This methodology is based on my own experience teaching computer programming for architecture students at undergraduate and graduate levels at the State University of Campinas, Brazil. The paper ends with a discussion about the role of programming nowadays, when most CAD software are user-friendly and do not require any knowledge of programming for improving performance. I conclude that the introduction of programming in the CAD curriculum within a proper conceptual framework may transform the concept of architectural education. Key-words: Computer programming; computer-aided design; architectural education.The objective of this paper is to discuss the relevance of including the discipline of computer programming in the architectural curriculum. To do so I start by explaining how computer programming has been applied in other educational contexts with pedagogical success, describing Seymour Papert's principles. After that, I summarize the historical development of CAD and provide three historical examples of educational applications of computer programming in architecture, followed by a contemporary case that I find of particular relevance. Next, I propose a methodology for teaching programming for architects that aims at improving the quality of designs by making their concepts more explicit. This methodology is based on my own experience teaching computer programming for architecture students at undergraduate and graduate levels at the State University of Campinas, Brazil. The paper ends with a discussion about the role of programming nowadays, when most CAD software are user-friendly and do not require any knowledge of programming for improving performance. I conclude that the introduction of programming in the CAD curriculum within a proper conceptual framework may transform the concept of architectural education. Key-words: Computer programming; computer-aided design; architectural education

    Problem-based Learning for Programming Education

    Get PDF
    Computer Programming is a core subject in Computer Science. This course requires the analysis and solving of problem critically. These skills are also required in preparing Computer Science students for the career world. Problem-based Learning is thus regarded as one of the suitable methods for Teaching and Learning programming. Although this method has been proven to hone student skills in other areas such as Medicine, its usage in Computer Programming courses has yet to bring about any impacts. This is because, to date, Problem-based Learning has been employed based on the practitioner’s intuition without specifically meeting the principles and concepts of Programming courses from the human, process, and product aspects. The human aspect involves practitioners during the process. The framework for this study is built using a qualitative method that combines theoretical and empirical studies. The theoretical study includes reviews of the implementation of previous Problem-based Learning in Computer Science as well as other fields. The empirical study involves information obtained from both the theoretical and empirical studies were analysed by utilising the Thematic Analysis method to generate the proposed framework for this study. This framework can be utilised as a guide for the management and practitioners in Computer Science education to use Problem-based Learning as an effective Teaching and Learning method for Programming courses

    Teaching Subroutines: As Early as Possible

    Get PDF
    Students on introductory courses in programming languages often experience difficulty understanding the basic principles of procedural programming. In this paper we discuss the importance of early understanding of the subroutine mechanism. Two approaches for self-training – static and dynamic - are presented and compared. The static approach is appropriate for written text in paper textbook. The dynamic approach is suitable for interactive training using a computer. An interactive module was developed for teaching subroutines

    Using multimedia to develop students\u27 programming concepts

    Get PDF
    The growing use of computers and computer technology is creating a worldwide need for more programmers and computer professionals. The increasing complexity of programming languages and applications is demanding higher skills sets from the programmers who are being trained. Kann et al. (1997) suggest that the graphic representation of algorithms used in most textbooks are too abstract and insufficient for learners to develop the logical thinking required in computer science courses. Many programming students have problems due to a lack of understanding of conceptual and mental models (Soloway et al., 1981). This paper describes the development of an alternative teaching approach, based on constructivist learning principles, and multimedia technologies. The Dynamic Interactive Visualisation Tool in teaching C (DIVTIC), uses multimedia and visual imagery to provide learners with a step-by-step representation of program executions in the C language as a means to enhance their understanding. DIVTIC was designed around constructivist principles, and combines collaborative and visualisation learning strategies with use of the Internet and the World Wide Web to support the learning of programming. This paper will describe the conceptual framework supporting the design of DIVTIC and will report on a study which sought to explore the effectiveness of its use among a cohort of students studying introductory programming at Suranaree University of Technology (SUT) in Thailand. The paper will describe how the students used DIVTIC and will discuss how this use was able to support and encourage their learning

    Teaching computer programming: impact of Brown and Wilson's didactical principles

    Get PDF
    This research studies the effects of the application of didactics to the teaching of computer programming, focusing on programming skills in the Python computer language. The problem arises from the failure and dropout rates of students in computer programming in computer science careers in INACAP and the consequent interest in promoting better learning. The general objective is to study the effects of an innovative methodology, based on Brown and Wilson's didactic principles, on the teaching process of Python programming in computer science students at INACAP. The theoretical framework is based on the didactics of teaching computer programming and the concepts of computational thinking skills of various theoretical references, and in particular on the didactic principles of Brown and Wilson. This research is carried out with a quantitative methodology of explanatory scope and with a quasi-experimental design, with a purposive sample, for the experimental stage the sample will consist of 100 first year undergraduate students of Computer Science, of which 50 will be the experimental group and 50 will be the control group. The hypothesis proposed is that “The students in the experimental group obtain a higher performance when applying Brown and Wilson's didactic principles than the students in the control group who are taught in a traditional way.” The data collection technique used will be a 45-question multiple-choice test. The data analysis will be performed by applying statistical criteria, comparison of means and variances, among others

    Coding Landscape: Teaching Computer Programming to Landscape Architects

    Get PDF
    How to best teach coding to landscape architects? Domain-specific approaches to teaching computer programming are surprisingly rare. Most computer programming curricula teach skills in a generic way, to be broadly relevant to many people. A rapidly increasing number and ways of teaching how to code to a range of skill levels is now available online, usually for free (see Appendix, RICHTEL 2015, GASCA 2014, FRAMPTON 2015, SIMS et al. 2011). Yet in landscape architecture coding is often regarded as too difficult, too resource-intensive, insufficiently relevant to practice, or otherwise peripheral to the core mission of the profession to teach (WESTORT et al. 2013) . As a result, fundamentals of coding logic remain largely un-taught in accredited core curricula in the U.S. This paper has three objectives: 1. Offer a landscape architecture-specific approach to teaching introductory computer programming that combines a) landscape parametrics with b) concepts of computer programming logic and c) basic computer graphics. 2. Present a sequence of exercises intended to impart fundamental skills and peak student interest. 3. Showcase student project results that use the approach. A sequence of short programming exercises asks students to define the geometry of elements from the landscape palette – vegetation, landform, water, weather, lighting – and then to modify them using increasingly more advanced and complex coding principles in a modular fashion. The following criteria for successful landscape design software is offered to students as a guide to structuring their software: Graphically display landscape geometry, such that it is Interactively editable/modifiable/deformable and Analysable with accuracy and some precision Quickly, while being Easy to lear
    corecore