June 22, 2008
June 22, 2008
June 25, 2008
Electrical and Computer
13.771.1 - 13.771.6
Integration of C into an Introductory Course in Machine Organization
We describe the reform of a fourth-semester course in computer organization in the Computer Science BS curriculum at the University of Texas at El Paso (UTEP), an urban minority-serving institution, where Java and integrated development environments (IDEs) have been adopted as the language and development environment used in the first three semesters of major coursework. This project was motivated by faculty observations at UTEP and elsewhere1 and industry feedback indicating that upper-division students and graduates were achieving reduced mastery of imperative languages with explicit memory management (most notably C), scriptable command line interfaces, and the functions of compilers, assemblers, and linkers.
The pre-reform computer organization course2 focused on foundational concepts such as machine instructions, registers, the random-access memory model, and the generalized fetch- execute cycle. Projects included assembly-language programming of a Motorola M68HC11 processor installed in a two-wheeled robot. The reformed curriculum, which uses the same embedded target, integrates the study of C and thus also able to focus on the implementation of high-level language features and linkage between C and assembly language routines. Student labs use traditional command-line tools including bash, gcc, gas, ld, and make.
Lectures include collaborative learning components in which student groups are tasked with the development and refinement of first C, and then assembly language implementations of program fragments. Lab assignments utilize both languages and introduce students to command interpreters, scripting, collaborative development tools, and subroutine linkage of procedural languages. Assignments are distributed, “handed in,” and grades distributed using the subversion source code repository.
The reformed course’s outcomes are a superset of the original, with extensions including (1) understanding of C and its runtime environment, (2) parse trees, and (3) implementation of dynamic memory management.
Object-oriented design is accepted as a primary programming model2 and many computer science departments have adopted Java as their principal teaching language in many lower- division courses. Furthermore, Java programs are commonly developed, compiled, and executed within seamless IDEs. As a result, students who have attended a third-semester course in data structures may neither be exposed to the relationship between memory addressing and variable
Freudenthal, E., & Carter, B., & Kautz, F., & Ogrey, A., & Preston, R., & Walton, A. (2008, June), Integration Of C Into An Introductory Course In Machine Organization Paper presented at 2008 Annual Conference & Exposition, Pittsburgh, Pennsylvania. 10.18260/1-2--4034
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: © 2008 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