Programming language impacts on learningHamilton Jr., J. A. Drew; Murtagh, Jeanne L.; Zoller, Richard G.
doi: 10.1145/362076.362080pmid: N/A
What programming language should be taught in an introductory computer science course? Studies and experiences at West Point provide some insight into these questions. This paper reports the statistical results obtained from a side-by-side comparison of Pascal and Ada. The unique nature of our institution provided the opportunity to isolate and study causal factors, and allowed us to follow the experimental and control groups through graduation.We conducted a side by side comparison of the use of Pascal, which was specifically designed for instructional purposes, and Ada in an introductory course. The experiment demonstrated that students were much more successful in Ada than in Pascal, and led to the revision of the Academy core curriculum to use Ada 95 in our introductory computer science class. This paper discusses the details of our comparison, citing specific examples to illustrate a rational basis for evaluating programming language features.
An Ada interface to lego mindstormsFagin, Barry
doi: 10.1145/362076.362081pmid: N/A
This article presents an Ada interface to the Lego Mindstorms TM RCX "brick", the core element of a commercial product that emerged from a collaboration between the Lego Corporation and MIT's Media Laboratory. Since its arrival on the market in 1998, it has considerable interest in the computing community: a variety of operating systems and language interfaces are available for it, all provided free of charge by people who simply wanted to find out how the RCX workedThe interface described here is in use at the Air Force Academy as part of an experiment in computer science education. Students with no prior programming background are given a pre-built Mindstorms robot and a series of programming challenges, which they then attempt to implement using Ada. Our hope is that the experience of programming robots will provide an effective, efficient, and enjoyable method for conveying essential computer science concepts. We are currently attempting to assess its effectiveness, and hope to present our results at a future date.
Ada/Mindstorms 1.0 User's Guide and Reference ManualFagin, Barry
doi: 10.1145/362076.569071pmid: N/A
Ada/Mindstorms 1.0 is an Ada interface to the Lego RCX "brick", included as part of the Lego Mindstorms Robotics Invention System. Programs are written with an Ada compiler, translated into Dave Baum's Not Quite C langauge (NQC), then recompiled and downloaded through the Mindstorms IR transmitter to the RCX.Ada/Mindstorms 1.0 is distributed with the USAFA AdaGIDE Windows Ada compiler. This document assumes that you have obtained and installed AdaGIDE. If you are using another Ada compiler, see Appendix A. We also assume working knowledge of Ada. If you haven't used Ada before, we recommend learning the basics first before reading further, http://www.adahome.com/Discover/Introduction.html is a good place to start. We also assume a general familiarity with the Lego Mindstorms Robotics Invention System and the RCX.To use Ada/Mindstorms 1.0, you need a PC running Windows and a Windows Ada compiler. To download Ada/Mindstorms programs to an RCX and test them, you need:1 Dave Baum's NQC system installed on your PC. It's available from http://www.enteract.com/-dbaum/nqc/index.html. If you're using AdaGIDE, the file nqc.exe executable needs to be in c:\gnatpro\bin so that AdaGIDE can find it. Otherwise it can be anywhere convenient.2 A Lego RCX brick pre-loaded with Mindstorms firmware.3 A Lego I/R transmitter hooked up to your PC's serial port. These come standard with the Lego Mindstorms Robotics Invention System.If you have already purchased a Lego Mindstorms Robotics Invention System, you don't need the CD/ROM and software that come with the it. Ada/Mindstorms is a separate programming environment, replacing the Mindstorms graphical programming tools with an Ada interface.
Software engineering education: on the right track with AdaMcCormick, John W.
doi: 10.1145/362076.362082pmid: N/A
An introductory undergraduate course in real-time embedded software development should acquaint students with the fundamental scientific issues of real-time computing and practical skills in software development. While the theoretical issues can be covered without a laboratory, real-time embedded programming skills require the experiences that a laboratory provides. A major problem is finding equipment suitable for teaching these skills. For over a decade I have used a computer controlled model railroad in my real-time embedded systems course