June 14, 2009
June 14, 2009
June 17, 2009
Electrical and Computer
14.1067.1 - 14.1067.14
A Sophomore-level Programming Concepts and Methodology course in Computer Engineering covering both hardware and software.
One of the retention problems in an engineering discipline is that the students are not introduced to their field early enough to have a good understanding of their profession. Usually, the first two years of the engineering undergraduate program are spent in completing general education and science requirements. With this in mind, the authors have developed a sophomore-level Programming Concepts and Methodology lecture/lab course in the Computer Engineering Department at San Jose State University, which emphasizes the key elements of computer engineering. The main objective of this course is to illustrate how a high-level program, in this case C language, interacts with peripheral hardware. Throughout the semester, students are introduced to C language to be used on a microcontroller-based board to interface with sensors and transducers. A complete set of lab exercises enable students to build robots as a class project without requiring any background in electronics or programming. The course also introduces the fundamentals of embedded systems and hardware/software co-design to sophomore students.
Computer Engineers must have proficient knowledge of both computer hardware and software which has produced the fundamentals of this course. In this course, a sophomore becomes knowledgeable on how software can interact with hardware, and how real world problems are solved by employing both hardware and software. As a result, students establish strong educational foundation which eliminates the difficulties on an actual project that they encounter in their professional life.
Before this course was introduced, the Computer Engineering Department at San Jose State University lost about 80% of its students to other non-engineering majors because the previous course focused only on the C, C++ . Consequently, students did not understand how software can control hardware. With this new course, the retention rate has completely reversed; 80% of students stayed in computer engineering after completing this course1.
The course is divided into two phases. In the first phase, students learn the basic C programming language and basic computer organization. Since many students do not have any prior programming experience, the programming experiments start with very basic concepts and structures but rapidly become complex at later stages of the course. The C programming section covers the following topics: Program Control, Functions, Arrays, Pointers, Characters and Strings, Formatted I/O, Structures. The computer organization part concentrates on the Central Processing Unit (CPU), Arithmetic Logic Unit (ALU), Memory, Input/Output Unit (I/O) and their relationship to one another. Throughout the lectures, a correlation between human anatomy and computer organization is explained for better understanding the course concepts. This excites students once they correlate the relationships between a human body and a computer. As
Ozemek, H., & Kang, P., & Nguyen, A. K., & badhan, P. (2009, June), Sophomore Level Programming Concepts And Methodology Course In Computer Engineering, Covering Both Hardware And Software Paper presented at 2009 Annual Conference & Exposition, Austin, Texas. 10.18260/1-2--5656
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2009 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015