39,964 research outputs found
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
I/O Considered Harmful (At least for the first few weeks)
One of the major difficulties with teaching the first programming course is input/output. It is desirable to show students how to input data and output results early in the course in order to motivate the students and so that they can see the results of their programs. Output is also a useful tool for testing programs. However, in most programming languages input and output are esoteric and the techniques for performing input and output must be learnt by the students at an early stage, precisely when they are trying to understand the basics of programming. We argue that input/output operations need not be taught in the early stages of a course if the language environment provides appropriate tools for testing programs. This assertion is demonstrated by reference to the Blue objectoriented language and environment
Testing Object-Oriented Programs: Making it Simple
One of the major difficulties facing anyone trying to teach the first programming course is how to encourage students to thoroughly test their programs. We would argue that the main reasons for this are the lack of suitable tools for testing and the need to write extra "debug" code in order to verify correct operation. We further argue that the problem is even worse with object-oriented languages because of multiple classes and encapsulation. In this paper we describe the testing tools within the Blue programming environment which allow object-oriented programs to be thoroughly tested without writing a single line of new code
Code Shrew: Software platform for teaching programming through drawings and animations
In this paper, we present Code Shrew, a new software platform accompanied by
an interactive programming course. Its aim is to teach the fundamentals of
computer programming by enabling users to create their own drawings and
animations. The programming language has a straightforward syntax based on
Python, with additions that enable easy drawing and animating using
object-oriented code. The editor reacts seamlessly and instantly, providing an
engaging and interactive environment for experimenting and testing ideas. The
programming course consists of lessons that cover essential programming
principles, as well as challenges to test users' skills as they progress
through the course. Both the lessons and challenges take advantage of the
editor's instant feedback, allowing for a focus on learning-by-doing. We
describe the software and the content, the motivation behind them, and their
connection to constructionism.Comment: 7 page
Plyades: A Python Library for Space Mission Design
Plyades: A Python Library for Space Mission Design Designing a space mission
is a computation-heavy task. Software tools that conduct the necessary
numerical simulations and optimizations are therefore indispensable. The
usability of existing software, written in Fortran and MATLAB, suffers because
of high complexity, low levels of abstraction and out-dated programming
practices. We propose Python as a viable alternative for astrodynamics tools
and demonstrate the proof-of-concept library Plyades which combines powerful
features with Pythonic ease of use
Novis: A notional machine implementation for teaching introductory programming
Comprehension of programming and programs is known to be a difficult task for many beginning students, with many computing courses showing significant drop out and failure rates. In this paper, we present a notional machine imple- mentation, Novis, to help with understanding of program- ming and its dynamics for beginning learners. The notional machine offers an abstraction of the physical machine de- signed for comprehension and learning purposes. Novis pro- vides a real-time visualisation of this notional machine, and is integrated into BlueJ
- …