PARTICIPATING INSTITUTION: University of Maryland College Park
PROJECT DESCRIPTION One of the first hurdles that college students majoring in electrical or computer engineering and related fields must overcome is a freshman programming class. Introductory programming courses for engineers are still typically taught in a traditional manner, with large classroom lectures and laboratory sessions where students implement software-only programming assignments. Lectures and assignments can too often obscure how programming can be embedded in a broader design problem. Therefore, introductory computing courses are perceived by many students as disconnected from issues of design and problem solving. As a result, many students lose enthusiasm toward their intended profession.
The project is developing a project-driven programming course for first-year electrical engineering (EE) majors. The course assumes no previous programming or engineering knowledge. Students design C-programs in an integrated development environment (IDE) for microprocessor applications utilizing a variety of electronic sensors and actuators. In addition to teaching the syntax and semantics of a language necessary to be successful in more advanced programming classes, the course gives students an appreciation for the enabling role of programmable devices in technological systems and applications.
BROADER SIGNIFICANCE The project is focused on an important aspect of early engineering education by seeking to improve the teaching and learning of introductory programming. The applications will provide a rich context for learning to program, additionally serving as an introduction to components and techniques that are commonly utilized in the EE profession. Introducing students to engineering-relevant programming projects at the freshman level is also likely to have a positive effect on retention. The project tackles a national issue, improving computing education for engineers, with interwoven strands of basic research and curriculum development.
The evaluation being conducted will help inform other educators that are considering revisions to entry-level programming courses. By following students into subsequent programming classes, the team is evaluating the longer-term effects of the new course. The existence of the current computing class running in parallel with the new class allows the project to more rigorously study the effects of the new approach.