Goals and Outcomes
Goals
- Learn the basics of computer architecture, with an emphasis on the hardware-software interface.
- Develop assembly-language programming skills, focusing on the RISC-V instruction-set architecture.
- Understand how programs in higher level programming languages are mapped to hardware-level
machine instructions.
- Understand how machine instructions are executed by hardware.
- Improve programming skills in general, emphasizing in particular standard tools and techniques.
- Improve communication skills, with particular emphasis on written communication and, further,
well-written programs.
Student Learning Outcomes
Upon successful completion of this course, students should be able to
- Explain the high-level architecture of a computer, including details such as control and data paths,
arithmetic and logic units, and memory and input-output units.
- Convert simple programs written in a higher level language (e.g., C), to equivalent assembly language
programs.
- Write assembly language programs (especially in RISC-V) to accomplish simple tasks.
- Hand-assemble assembly language programs into the corresponding machine code.
- Explain how each instruction of machine code is executed by the hardware.
- Use resources such as others’ code and writing in an ethical and professional manner.
- Contribute to the body of knowledge at an undergraduate level.
- Program with attention to community standards and good practices.
- Communicate their programming work effectively.
- Meet Quantitative Literacy General Education requirements, such as being able to [following text is
from U. Maine Gen. Ed. documents]:
- Translate problems from everyday spoken and written language to appropriate quantitative
questions.
- Interpret quantitative information from formulas, graphs, tables, schematics, simulations, and
visualizations, and draw inferences from that information.
- Solve problems using arithmetical, algebraic, geometrical, statistical, or computational methods.
- Analyze answers to quantitative problems in order to determine reasonableness. Suggest
alternative approaches if necessary.
- Represent quantitative information symbolically, visually, and numerically.
- Present quantitative results in context using everyday spoken and written language as well as
using formulas, graphs, tables, schematics, simulations, and visualizations.