Software for Teaching and Learning
By Dr. Fred DePiero
See links below for demonstration packages along with some suggested projects for students. Pages linked below include learning objectives and discussion of some background material. Topics covered are in the Signals & Systems area of Electrical Engineering. Also included below is a discussion of pedagogy for teaching in the Signals & Systems area. Specifically, programming assignments are encouraged to help students better understand the mathematics of signal processing and how to implement such systems.
Teaching & Learning Tools
Two types of teaching & learning tools are provided through this site:
In the Signals & Systems area of EE, engineers face a career-long need to translate mathematical operations into system realizations. The demonstration tools available at this site help introduce important mathematical concepts for Signal & Systems. The programming assignments provide an opportunity for hands-on implementation, and are highly recommended for student learning, to promote in-depth understanding and design skills.
A variety of learning objectives are addressed in the demonstration suite and in the associated student programming projects. Some overarching themes are:
The demonstration tools have proven useful to encourage students to ask "What If..." questions, promoting active classroom exchanges. Some of the demonstrations incorporate live signals from microphones or video cameras. To facilitate classroom demonstrations, these tools were designed to be relatively simple to use and each is relatively narrow in focus.
Links to the various tools appear below. This is an on-going development effort and learning objectives with supporting input files & signals are provided in general. These learning tools were development using the CalPoly SIPTool environment which was created by Dr. Fred DePiero. Programming assignments are recommended for student assignments in order to fully appreciate the learning objectives promoted by this site.
Programming Projects Important for Student Learning
The demonstrations available from this site assist both in lecture and with students' independent learning outside of class. While the demos are helpful to illustrate concepts, software implementation in a language such as C is considered essential for student learning. This provides an opportunity for students to translate mathematical operations into system realizations.
Tools such as MatLab and DaDISP facilitate rapid analysis, testing, and implementation. Some educators might ask,
These are appropriate questions. To respond, consider similar questions in the context of a typical EE curriculum...
There are simple answers to these questions! There are real implementation issues, not captured in a simulation: A chip explodes! A program crashes! Divide zero/zero! And, more importantly, analysis and hands-on experience with implementation provide a learning opportunity that promotes a higher level of understanding (in Bloom's sense). This helps a student abstract from particular experiences. This kind of detailed understanding helps build a foundation needed for future creative design efforts.
Computational tools such as MatLab already implement exactly what a student needs to learn! It is these very steps that students need to master via a hands-on implementation experience. Hence some opportunities to build future design skills are not fully exploited without a more detailed implementation experience, such as with programming. Hardware designs at the level of a block diagram, with adders, multipliers and delay units are a nice compliment to programming assignments.
A good environment for student learning starts with interactive demonstrations, run both in-class and independently outside lecture. These are beneficial first steps to a student's own implementation of a project via a detailed programming assignment in a language such as C/C++. Some learning objectives described on this site can not be met without the programming experience. The use of standardized tools such as MatLab is also recommended to test and verification - but not to replace the detailed implementation of a C program.
Free software is available for student programming assignments. This package allows students read and write WAV files and BMP images. It also provides some numerical routines for FFT, finding eigenvalues and vectors, matrix math and to generate random signals. Tools are included to display short-time Fourier transforms and to display the frequency response of a system, which may be helpful for debugging DSP programs.