[Edu-sig] A suggestion for a high school programming project

Paul Barrett barrett at stsci.edu
Wed Sep 8 16:05:39 CEST 2004

David Handy wrote:
> Paul Barrett wrote: 
>>In my opinion, creating such a package should not be too difficult.  
>>Vision already provides the visual programming environment. The next  
>>step is to extend it with software for creating electronic circuits.  
> What kind of electronic circuits - analog or digital?

I'm not talking about creating electronic circuits per se, but developing a 
visual programming environment for implementing data acquisition programs.  The 
strength of LabView is that the venders of electronic interface boards also 
provide the necessary software drivers for these boards.  Someone, an 
experienced electronics or software engineer, will have to write these drivers 
or make them available.  However, in the case of the OBDII scanners for 
automobiles, the specs for these drivers are available and, I believe, the 
interface is pretty simple, i.e. send command to port A, read data from port B, etc.

> What do you mean by "creating electronic circuits"? Do you mean simulation, 
> generating FPGA input files, or fabrication masks?

No, I don't mean any of this.  My intent is to create a visual programming 
environment so electronics engineers can create data acquisition and analysis 
programs without having to write programs.  They can just drag-drop-and-connect 
icons for various processing steps to create an application.  For an example, 
take a look at the Vision  (http://www.scripps.edu/~sanner/python/viper/) web page.

> What do you mean by "extend it with software" - I have to assume you mean "connect it 
> with software" that already handles synthesis, simulation, or whatever it is you are 
> trying to do. 

The Vision library was designed to allow molecular biologists to visually create 
applications to analyze their data without having to write code.  Each icon 
represents a processing step (or node) having zero or more inputs and zero or 
more outputs.  The user connects the inputs and outputs of these nodes together 
to create an application.  When he gives the application data and pushes the 
execute button, the applications processes the data and returns a result, either 
graphically or digitallly.  For example an application may take an image of a 
molecule and provide graphic information about the bonds between atoms.

However, there are generic nodes which can be written on the fly by opening 
editor and writing the processing step in Python.  This is what I mean by 
"extending the softare".  Creating or writing nodes that would be useful to 
someone who would like to create a data acquisition program.  Some examples of 
nodes are 'and' and 'or' logic circuits, writing and reading ports, strip chart 
recorders, etc.  Then using an On-Board Diagnostic 2 (OBDII) scanner circuit 
board connected to a car's OBD interface (usually located under the dash board 
on the driver side), they can read and display the information contained in a 
car's microprocessor, just like every auto mechanic does these days.

> I don't think writing accurate simulation or logic synthesis software from scratch is 
> acheivable by most high school seniors in a semeseter or two, but hey, maybe I'm out 
> of touch with the rising generation! 

I agree.  I don't envisage this project being done by each high school student, 
but as a collaborative project among several advanced or gifted high school 
students looking for a useful hand-ons programming project.  I see this project 
taking at least a year to complete if not more and the work load distributed 
among several groups.  One group can learn about logic circuits and then program 
these nodes using Vision and Python.  Another group can learn about reading and 
writing hardware ports and then program these nodes.  A third group can think 
about interface issues, e.g. creating better icons for each node.  This project 
could also be a collaboration between a computer science teacher, an electronics 
shop teacher, and an auto shop teacher, if a high school provides these facilities.

>>guessing that advanced high school students should be able to tackle  
>>this project with some guidance from a computer science teacher and an  
>>electronics teacher. In addition, a possible application of this package  
>>would be to create an OBDII (On-Board Diagnostics 2) scanner for reading  
>>information from a car's microprocessor.  Hardware, which can be used to  
>>interface the car's microprocessor to a laptop, can be purchased for  
>>about $100. 
> ... 
>>Any takers or am over the top on this one? 
>> -- Paul 
> This reminds me of one of the first commercial software projects I did (when I was 21) 
> for my Dad who had an Analog ASIC design business. I wrote software for him that 
> connected the output of a visual circuit designer (OrCAD) to the input of an analog 
> circuit simulator (PSpice). I had at that time only the most basic understanding of 
> electronics. However, the software just had to know how to properly connect inputs 
> and outputs, look up components by name, and transform ASCII files from one format 
> into another. That project would have been in the reach of advanced high school 
> students. 
> However, it was time consuming to get the details correct to the point that circuits 
> would actually simulate properly. You would have to carefully define the scope of your 
> project to make it sucessful in the time frame that you have to work with. 

Yes. As I've said before, I don't expect each student to write everything, just 
a piece of it.  The pieces can then be combined into a useful and useable 
package for scientists, engineers, and hobbists.

  -- Paul

Paul Barrett, PhD      Space Telescope Science Institute
Phone: 410-338-4475    ESS/Science Software Branch
FAX:   410-338-4767    Baltimore, MD 21218

More information about the Edu-sig mailing list