UMD Coursework

Computer Engineering, Statistics, and Cybersecurity related coursework

Published on Aug 25, 2022

Reading time: 2 minutes.


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