Introduction to computer architecture at the machine language and assembler language level; assembler language programming and laboratory.
Student Learning Outcome (Objective) | Strategies and Actions | ABET 2000 Criterion 3 | Program Objectives | Assessment Methods and Metrics | |
To master | To master using the computing environment (operating system, tools, language system, etc.) to complete lab assignments and to communicate electronically with others | Practice: require use of these aspects of the environment to complete closed lab assignments (working in 2-person teams) and open lab assignments | d, g, i, k | 1c, 2b, 3a | Closed lab assignments, open lab assignments; grades |
To master using C++ class templates and classes, and related RESOLVE/C++ principles for clients, to write layered implementations of operations | Lecture and in-class activities; practice: require layered implementation of various checking and extension operations (e.g., for some of Array, List, Partial Map, Queue, Record, Sequence, Set, and Stack), using templates for decoupling | c, e, k | 1a, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
To master using simple recursion to write layered implementations of operations | Lecture and in-class activities; practice: require use of recursion to implement various operation bodies (e.g., Sort extension for Queue implemented using Quicksort and Mergesort, Reverse extension for Sequence and Queue) | c, e, k | 1a, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
To master using simple techniques to test layered implementations of operations, including developing and carrying out simple specification-based test plans | Practice: require systematic testing of various operations (e.g., Find_Min_And_Max for Queue) | b, e, f, k | 1a, 1c, 2c | Homework, open lab assignments, exams; grades | |
To master using simple techniques to debug layered implementations of operations | Practice: require tracing table and printout of debugging information before answering student questions about run-time errors | b, e, f, i, k | 1a, 1c, 2c | Open lab assignments, exams; grades | |
Be familiar with using the Array, List, Partial Map, Queue, Record, Sequence, Set, and Stack templates to write layered implementations of operations | Lecture and in-class activities; practice: require layered implementation of various checking and extension operations, using templates for decoupling | c, e, k | 1a, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
Be familiar with using basic C++ control structures and statements, RESOLVE/C++ class templates and classes, and related RESOLVE/C++ principles for clients and implementers, to write bodies of component realizations with layered data representations | Lecture and in-class activities; practice: require layered implementation of various kernel components (e.g., Sequence over Record of two Stacks, Partial_Map over Array of Queue of Record with hashing, Queue over List) | c, e, k | 1a, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
Be familiar with reading code that uses dynamic storage management (new and delete) and pointers to create simple "raw C++" data representations | Lecture and in-class activities; practice: require detailed examination of various "raw C++" kernel components (e.g., Queue and Stack) | c, e, k | 1a, 1c | Homework, exams; grades | |
Be familiar with using basic algorithm analysis techniques and notations to analyze and express execution time of operations whose implementations involve straight-line code and simple loops | Lecture and in-class activities; practice: require analysis of some layered operations (e.g., Find_Min_And_Max, Reverse for Queue), and (working in 2-person teams) require timing experiments (e.g., on various implementations of Sort for Queue) | a, b, d, e, k | 1a, 1c, 2b | Homework, closed lab assignments, exams; grades | |
Be familiar with using simple formal logic assertions involving mathematical set models to understand and reason about an operation's behavior | Lecture and in-class activities; practice: require understanding of operation specifications for Set and Partial_Map well enough to implement those operations, and to trace over loops using loop invariants | a, e, k | 1a, 1b, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
Be familiar with using simple techniques to test implementations of class templates that define new types, including developing and carrying out simple specification-based test plans | Practice: require systematic testing (working in 2-person teams) of various kernel component implementations (e.g., Partial_Map) | b, d, e, f, k | 1a, 1c, 2b, 2c | Homework, closed lab assignments, open lab assignments, exams; grades | |
Be familiar with using simple techniques to debug implementations of class templates that define new types | Practice: require tracing table and printout of debugging information before answering student questions about run-time errors | b, e, f, i, k | 1a, 1c, 2c | Open lab assignments, exams; grades | |
Be exposed to using data representation conventions ("representation invariants") and correspondences ("abstraction relations") to reason about correctness of data representations | Lecture and in-class activities; require reasoning about correctness of simple data representations (e.g., Sequence over Record of two Stacks, Queue over List, Stack over List) | a, c, e, k | 1a, 1b, 1c | Homework, exams; grades | |
Be exposed to writing programs using dynamic storage management and pointers to create simple "raw C++" data representations | Lecture and in-class activities; practice: require implementation of one "raw C++" kernel component (e.g., List) | c, e, k | 1a, 1c | Homework, closed lab assignments, open lab assignments, exams; grades | |
Be exposed to writing simple formal logic assertions involving mathematical set models to describe an operation's behavior | Lecture and in-class activities | a, c, e, k | 1a, 1b, 1c | None | |
Be exposed to using the RESOLVE/C++ principles for interface designers to guide the choice of mathematical model and operation behavior of a new software component | Lecture | a, c, e, k | 1a, 1b, 1c | None |