Abstract:
Today, an increasing number of scientists and engineers are spending more and more of their work hours in front of the computer. Electronic and semiconductor industry are making capable and inexpensive portable consumer devices as evident from smart phones and tablets that are coming out to the market at an accelerated phase. Manufactures have made attempts to launch hobby industries around inexpensive electronics, particularly processor boards, with more capabilities and easy to program systems such as Raspberry Pi. For individual developer or capable consumer those devices offer customization to a level that was never seen before. However, such customizations require development of computer programs to control the devices and data streams. When electrical and computer engineers are trained, it is becoming more imperative that nearly all acquire some level of computer programming skills to effectively function as engineers in their careers. The nature of work performed in industry changes as they progress in careers. Lack of programming ability and experience may challenge their opportunities for technical and even managerial advancements. For example, a senior engineer without programming experience would not become a project manager if that project requires a significant amount of software to be developed in house.
At this university, electrical engineering technology (EET) and computer engineering technology (CET) majors always take one semester course on computer programming so they can be effective in using embedded controllers and other programmable devices, later in their curricula or in industry after graduation. It is a C based programming course with few projects appropriate for second year engineering technology students. CET majors further study Java, Ada, and C flavored languages in their curricula. EET majors do not have opportunity to learn other languages although some of them would program – using proprietary languages- Programmable Logic Controllers (PLCs) after graduation in industrial settings.
Several of follow on courses taken by both majors require them to use MATLAB as a problem solving tool in advanced circuit theory and control systems theory courses. Several years ago at this university, students had been learning basic MATLAB on their own, and then learned advance features such as control and signal processing toolboxes with help from instructors in follow-on courses. Instructors in the upper level classes could only make limited efforts to help students learn MATLAB. Their efforts are geared toward actual subject contents which are heavy in abstract concepts and mathematics. The author introduced MATLAB in C programming course in the fall of 2012 with the intent of reducing the future burden of learning its basics on their own. That experience has already been published3 by the author.
This paper discusses the continuing experience in having MATLAB as an additional programming tool to sophomore level students who are learning programming in C language as their main objective. They still learn advanced concepts and toolboxes in higher level courses. An additional benefit expected and clearly seen over the years is that MATLAB reinforces concepts taught in C such as loops, indexing, conditionals, input/outputs, storage and file management, data and program structures, etc. Also, learning it at this stage to create animation programs provides incentives and variety to further practice algorithm development and problem solving skills. Practice of such skills is essential to become competent programmers.
In addition to the findings already discussed in the previous paper, this paper presents survey results from students in several follow-on courses after they have taken this basic C course with piggybacked MATLAB content. The conclusion provides feedback from students as they progress through follow on courses clarifying the cost-benefit of the enhancements done to the basic C programming course a few years back.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.