CS 061 covers two parallel tracks: Machine Organization and Assembly Language Programming. In the lecture portion of the course, you will learn about machine organization, while in the lab portion, you will focus on assembly language programming. Together, these tracks will provide a comprehensive understanding of software development, including design and implementation strategies, programming languages, environment tools, development processes, programming, testing, debugging, performance evaluation, component integration, maintenance, and documentation. By the end of the course, you will have the skills and knowledge necessary to develop efficient and effective software systems.
Course Description
CS 061 is a 4-credit course that provides an introduction to computer organization, including number representation, combinational and sequential logic, computer instructions, memory organization, addressing modes, interrupt, input/output (I/O), assembly language programming, assemblers, and linkers.
Prerequisites
CS 010A with a grade of "C-" or better
Machine Organization topics (Lectures): Microprocessors and their Instruction Set Architectures Overview of Assembly Language programming The binary representation of information: numbers, text, images, states, instructions Mathematical logic and Boolean algebra; transistors and simple logic gates Combinational Logic circuit design Storage circuits and memory Finite State Machines The von Neumann model of computing The data paths implementing the ISA of the LC-3 processor Basic Input/Output (polling); memory mapping I/O by Interrupt Making the leap from assembly to Higher Level Languages
Assembly Language Programming topics (Labs): The LC-3 instruction Set Use of conditional & unconditional branches to create basic control structures Basic i/o Representing and manipulating character data Representing and manipulating numerical data (integer data type)
Contributions
All the work in this repository is original work done by me.
Disclaimer
Please note that the work in this repository should not be used as a substitute for taking the course or as a way to cheat on assignments. The purpose of this repository is to provide a portfolio of the work completed and to demonstrate understanding of the course material.