Integration Of C Into An Introductory Course In Machine Organization
Author(s) -
Eric Freudenthal,
Brian Carter,
Frederick Kautz,
Alexandria Ogrey,
Robert Preston,
Arthur Walton
Publication year - 2020
Language(s) - English
Resource type - Conference proceedings
DOI - 10.18260/1-2--4034
Subject(s) - compiler , computer science , curriculum , coursework , assembly language , implementation , java , programming language , software engineering , mathematics education , software , pedagogy , psychology , mathematics
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 elsewhere 1 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 course 2 focused on foundational concepts such as machine instructions, registers, the random-access memory model, and the generalized fetchexecute 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.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom