Introduction to Quantitative Analysis and Reasoning with Computing
Introduction to Computer Science I
- Parking Data (Python)
Introduction to Computer Science II
- Object-Oriented Programming Calculator (Scala)
- RhymingDictionary (Scala)
Introduction to Discrete Structures
- Discrete math course covered topics including logic, proofs, sets, functions, relations, recursion, recurrence relations, mathematical induction, graphs, trees, basic counting theory, and regular languages
Systems Programming
- Singly Linked List (C)
- Priority Queue (C)
- Decoder (C)
Data Structures
- Doubly Linked List (C++)
- AVL Tree (C++)
- Expression Evaluator (C++)
Algorithms and Complexity
- Introduces paradigms for designing algorithms and fundamental limitations to what algorithms can do
- Covers design and implementation of greedy algorithms, divide and conquer algorithms and dynamic programming
Computer Organization
- Gained an understanding of instruction set architecture, arithmetic logic unit design, advanced computer arithmetic, datapath and control unit design, pipelining, memory hierarchy.
Computer Architecture
- 8-Bit Processor (SystemVerilog)
- wrote scripts to test cache benchmarks performance
Software Security
- Wrote scripts to "break" into software (python)
- Used advanced techniques such as Spectre and Meltdown to attack systems
Cybersecurity, Privacy & Ethics
- Learned the intricacies of the current risks and threats to an organization’s data from the standing CIO of UB
- Trained in the concepts and practices of data privacy and ethical management of sensitive data.
Algorithms for Modern Computing Systems
- Analysis of algorithms for modern computing systems in terms of running time, size of data, number of processors/cores, and interconnection networks
- Material includes network-based fine-grained parallel computers, shared-memory computers, general multi-core and multiple processor systems, GPU-based systems, clusters, grids and clouds
Introduction to Computer Security
- hands on approch to learning networks, web security, and application security
Introduction to Computer Systems Administration
- learned tasks that System admins have to perform