Computer Organization and Machine Language COSC 2426
Provides basic computer organization; machine cycle and digital representation of data and instructions; assembly language programming, assembler, loader, macros, subroutines, and program linkage.
Correlated Learning Outcomes
- AR-01 Diagram the digital components of computing architecture. [Applying]
- AR-02 Analyze alternative formats to represent numerical data. [Analyzing]
- AR-03 Illustrate how fixed-length number representations could affect accuracy and precision, causing vulnerabilities. [Applying]
- AR-04 Examine the internal representation of non-numeric data. [Analyzing]
- AR-05 Compare different methods for converting numerical data from one format to another. [Analyzing]
- AR-06 Decompose the organization and major functional units of the classical von Neumann machine. [Analyzing]
- AR-07 Diagram how high-level language patterns map to assembly/machine language, including subroutine calls. [Applying]
- AR-08 Create simple assembly language program segments. [Creating]
- AR-09 Demonstrate the basic concepts of interrupts and I/O operations. [Understanding]
- AR-10 Compare the cost and performance of different types of memory technology. [Analyzing]
- AR-11 Calculate the effect of memory latency on execution time across the memory hierarchy. [Applying]
- CYB-11 Use the principles of secure design. [Applying]
- CYB-15 Construct input validation and data sanitization in applications, considering adversarial control of the input channel. [Creating] See also SDF-06.
- CYB-18 Examine the need to update software to fix security vulnerabilities. [Analyzing]
- DS-32 Explain the significance of binomial distribution in probabilities. [Understanding]
- HCI-02 Implement a simple usability test for an existing software application. [Applying]
- IM-03 Investigate contingency planning with respect to business continuity, disaster recovery and incident response. [Applying]
- OS-01 Examine major objectives, functions, features, and concepts of modern operating systems. [Analyzing]
- OS-02 Compare prevailing types of operating systems. [Analyzing]
- OS-03 Illustrate potential threats to operating systems and appropriate security measures. [Applying]
- OS-06 Manipulate a device list or driver I/O queue. [Applying]
- OS-08 Illustrate the principles of memory management. [Applying]
- OS-09 Illustrate the concepts of virtual memory, including paging, thrashing, and partitioning. [Applying]
- OS-10 Investigate the features and limitations of an operating system used to provide protection and security. [Applying]
- OS-11 Use mechanisms available in an operating system to control access to resources. [Applying]
- OS-12 Analyze the concept of virtualization with respect to hardware and software. [Analyzing]
- OS-13 Diagram the physical hardware devices and the virtual devices maintained by an operating system. [Applying]
- PD-03 Contrast low-level data races with higher level races. [Analyzing]
- SDF-06 Create programs which use defensive programming techniques, including input validation, type checking, and protection against buffer overflow. [Creating] See also CYB-15.
- SDF-07 Create code in a programming language that includes primitive data types, references, variables, expressions, assignments, I/O, control structures, and functions. [Creating]
- SDF-12 Investigate common coding errors that introduce security vulnerabilities. [Applying]
- SDF-16 Use an integrated development environment (IDE) to create, execute, test, and debug secure programs. [Applying]
- SDF-17 Use standard libraries for a given programming language. [Applying]
- SDF-18 Apply consistent documentation and program style standards. [Applying]
- SDF-19 Carry out a code review on a program component using a provided security checklist. [Applying]
- SE-01 Diagram how software interacts with various systems, including information management, embedded, process control, and communications systems. [Applying]
- SF-04 Describe how computing systems are constructed of layers upon layers. [Understanding]
- SF-05 Implement a program using methods of layering. [Applying]
- SF-06 Investigate defects in a layered program using tools for program tracing, single stepping, and debugging. [Applying]
- SP-01 Investigate both positive and negative ways in which computing technology impacts information exchange and social interaction. [Applying]
- SP-04 Investigate social engineering attacks and the types of bad actors who might perform them. [Applying]
- SP-08 Support the ethical responsibility of ensuring software correctness, reliability, and safety. [Evaluating]
- SP-09 Compare professional codes of conduct from the ACM, IEEE Computer Society, and other organizations. [Analyzing]
- SP-10 Differentiate the terms among intellectual property, fair-use, copyright, patent, trademark, and plagiarism. [Understanding]
- SP-11 Discuss the rationale for legal protection of intellectual property. [Understanding]
- SP-14 Illustrate the role of data collection in the implementation of pervasive surveillance systems. [Applying]
- SP-15 Analyze technological solutions to privacy concerns. [Analyzing]