Computer Architecture and Organization

Why cover Computer Arch and Organization?

One of my friends Abe once told me to to think low and program high, so over sometime I will be covering C, Assembly Language, etc.

This page will be divided into 3 Different Sections with:

  • Part One: will cover the low level things like Boolean Logic, Computer Architecture, Computer Systems Basics, and writing C Code

    • Have tons of Notes + Code on low level C code and Pointers
  • Part Two: will cover writing Assembly Code

  • Part Three: will cover Computer Systems inlcuding Memory and Linking

Part 1: Introduction

Chapter 1: Boolean Logic

  • Logic Gates (Low Low Low Level Things)

Boolean Logic

Basic C Programming

Data Structures in C (Stack vs. Heap)

Data Structures in C/C++

Pointers

  • Everything you need to know and understand about Pointers in C:

Pointers in C++ Part 1

Pointers in C++ Part 2

Pointers in C++ Part 3

Pointers in C++ Part 4

Debugging in C

Basic Introduction to CPU and How a Computer System Works

Introduction to Computer Systems

Part 2: Assembly Code

Introduction to Assembly

Lectures 6,7,8,9 and 10 Included

Assembly One: Intro to Assembly: Intro, Registers, Numbers, Math, Memory

Assembly: If/Then, Loops

Assembly Two: If/Then, Loops

Assembly: Functions

Assembly Three: Functions

Assembly: Functions Wrap, Pointers, Arrays, Structures, Advanced

Assembly Four: Functions wrap, Pointers

Part 3: Computer Systems (Memory, CPU, Cache, Linking)

Lectures 11,12,13, and 14 Included

Dynamic Memory Allocation

  • Allocating Memory on the Heap Stack including using the keywords malloc, realloc, free, and someother keyword

Dynamic Memory

Cache Memories

  • Directed Memory Access Notes

Cache Memory Notes

Linking

  • Linking C files togther and such

Linking

Computer System Projects

Project 1: Number Translation in C

  • Using C to build a number translator for converting numbers from binary to decimal and hexidecimal!

Project 1: Number Translation in C

Project 2: Engima Machine

  • Build an Engima Machine in C, which takes in an excrypted message and translate its.

Project 2

Project 3: Linked Lists

Project 3

Project 4: Escape Room

  • Reverse Engineer Assembly code into functioning C Program

Project 4

Project 5: Memory Allocator

  • Building a (Dynamic) Memory Allocator

Project 5

Project 6: Cache Simulator

  • In this Project you’ll develop your own basic cache simulator. This will further your understanding of cache basics and strengthen your C programming skills.

Project 6

Project 7: Extra Project(s)

Project 7

Extra Extra

Cache Notes Test