This post consists of summaries for key courses I’ve taken at UMD.
Computer Science
Advanced Data Structures
- Analysis and implementation of data structures such as balanced binary trees, B-Trees, hash tables, skip lists, tries, KD-trees, quadtrees
- Algorithms for manipulating data structures
- Applications in string processing, graphics, information retrieval, networks, and operating systems
Machine Learning
- Supervised and unsupervised learning
- Neural Networks, SVMs, Decision Trees, Clustering, Bayes Classifiers, Markov Processes
Artificial Intelligence
- Heuristic search, planning, knowledge representation, logical and statistical inference, natural language processing, intelligent agents
Computer Systems
- C programming
- intro systems programming, assembly (MIPS)
- thread management, virtual memory
Algorithms
- elementary algorithms related to sorting, graphs, trees, combinatorics
- analysis of space time complexity with mathematical techniques to solve mathematical recurrences and summations
Web Development
- JavaScript, HTML, CSS development
- frontend and backend development
- server-side development with PHP, Node, MongoDB
- Development with frameworks such as Express
Electrical Engineering
FPGA Design
- Design, construction, and characterization of digital circuits containing logic gates, oscillators, and digital integrated circuits
- Design and simulation with Verilog HDL
Signal Analysis
- Discrete and continuous-time signals, sampling
- Linear transforms, projections
- Discrete Fourier Transforms and properties
- Discrete linear time filters in time and frequency domains
Digital Computer Design
- Structure and organization of computer systems, registers, memory, control and I/O
- Data and instruction formats, addressing modes, assembly (MIPS)
- System software and subroutines
Digital Eletronics
- Design and analysis of combinational and synchronous sequential systems
- Digital logic gates, flip flops, design and use of decoders, multiplexers, encoders, adders, registers, counters
- Design of PLAs, ROMS, PROMS
Math
Applied Probability
- Point estimation interval estimation, minimum variance and maximum likelihood estimators
- Hypothesis testing, regressions, correlation and analysis of variance
Optimization
- convex optimization, unconstrained optimization, constrained optimization, global search methods
- setup of optimization problems, duality, optimization theory
- algorithms to solve optimization problems such as gradient descent, stochastic gradient descent
- linear, quadratic programming, barrier functions and interior point method
Discrete Math
- finite and infinite sets, propositional logic, modeling and solving problems in computer science
- permutations, combinations, graphs, and trees
Multivariable Calculus
- vectors, vector-valued functions, partial derivatives, multiple integrals, volume, surface area
- Green, Stokes, Gauss equations
Differential Equations
- methods to solving ordinary differential equations, first and second order equations
- laplace transforms, numerical methods, theory of differential equations
Statistical Computing with SAS
- Conducting and interpreting various statistical procedures such as hypothesis tests, confidence intervals, ANOVA, Chi-Squared, linear regression
- Manipulation of data using SAS
- Creating figures and datasets using SAS
Cybersecurity
Reverse Engineering
- compilers, linkers, loaders, assembly language (x86)
- use of static and dynamic analysis tools such as Ghidra
- computer architecture and low-level systems programming
Hardware Security
- Safe digital logic design, prevention of authorized access from gate level, self-correcting designs, design trust
- design IP protection, watermarking, digital fingerprinting
- Physical attack approaches, countermeasures
- Side channel attacks
- Reversing of binaries and device firmware using Ghidra
Applied Cybersecurity
- project based class to implement a honeypot mechanism to analyze attacker behavior
- use of Man in the middle, containers, VMs, networking, keylogging
- proposal, implementation, and analysis/paper for findings