Skip to content

Here you can find design/simulations of different aspects of computer structures.

License

Notifications You must be signed in to change notification settings

brown9804/AbstractComputerStructuresHub

Repository files navigation

Abstract Computer Structures - Designs/Algorithms

Costa Rica

Belinda Brown, [email protected]

GitHub brown9804


Content

  1. C++ Lists and Arrays Templates: List implemented with arrays, abstract class, classes positions, templates, search algorithms and generic order associated with an abstract list in C++

  2. Jupyter-Python Cache & Memory Hierarchy: In this project, you will find detailed information and examples about the following topics:

    • Definition of Memory Hierarchy: Understanding the different levels of memory in a computer system, from registers to main memory to various levels of cache.
    • Locality: Exploring the principles of locality, including temporal and spatial locality, and how they influence memory retrieval.
    • Cache: Detailed explanation of what a cache is, how to place a block in the cache, and how to identify it.
  3. C++ Simulation of Jump Predictors : This project involves the simulation of jump predictors. Each of these predictors is simulated and their performance is analyzed. It includes four types of jump predictors:

    • Bimodal: A simple jump predictor that uses a single bit to predict the outcome of a branch.
    • Private History: A jump predictor that maintains a separate history for each branch instruction.
    • Global History (-bp 2): A jump predictor that uses the history of all branch instructions to predict the outcome of a branch.
    • Tournament (-bp 3): A jump predictor that uses both a global predictor and a private predictor, and chooses between them using a selector.
  4. C++ and python Time Complexity and Order of Growth Analysis: This repository contains implementations of various algorithms in Python and C++, with a focus on understanding their time complexity and order of growth.

  5. C++ Stacks and Queues: Stacks and Queues are fundamental data structures in computer science that are used in various types of computation.

  6. C++ Binary Search Trees (ABB) vs Red-Black Trees: This project explores two types of self-balancing binary search trees: Binary Search Trees (ABB) and Red-Black Trees.

  7. C++ Binary Search Tree Balance Tester: A Binary Search Tree (BST) is a tree data structure in which each node has at most two children, referred to as the left child and the right child. For each node, all elements in the left subtree are less than the node, and all elements in the right subtree are greater.

  8. C++ Lists and Arrays: This repository contains code related to Lists and Arrays.

  9. C++ Template Programming: Calculate with Operator Overloading : The project involves the development of a series of classes with templates that allow basic operations with integers, real numbers, fractions, and polynomials. This has been developed with operator overloading, a feature in C++ that allows certain operators to be used in a more intuitive way for user-defined types.

  10. python Maps (Graphs): This project is based on the implementation and modification of an existing code to work with graphs. The code has been modified to accept directed edges.