Anoop Kalra is currently a Senior at the University of Maryland College Park, graduating in May 2020 with a B.S. in Computer Science with a minor in Mathematics.
Core Computer Science Courses
CMSC414 – Computer and Network Security
- Security background and terminology
- Software security defense and attack mechanisms
- Cryptographic primitives
- Applications of cryptography
- Network security
- Economic incentives and underground economies
CMSC417 – Computer Networks
- Network architecture concepts
- Transport layer services and multiplexing
- Reliable data transfer, TCP
- Routing algorithms
- Software defined networks and network management
- Multiple access protocols, LAN
- Physical layer protocols, wireless and cellular networks
- Internet of Things, vehicular and sensor networks
CMSC433 – Programming Language Technologies and Paradigms
- Concurrency
- Threads and processes
- Synchronization
- Design considerations (safety, performance, reusability)
- Algorithm parallelization
- Distributed system development
CMSC411 – Computer Systems Architecture
- Overview of current computing paradigms
- Assessing computer performance using speedup
- Review of computer rithmetic
- CPU and memory model variants
- Reduced vs. Complex instruction set architectures (ISAs)
- MIPS ISA for sequential machines
- Memory hiearchy and use
- MIPS pipeline with dynamic scheduling
- Superscalar and speculative MIPS pipelining
- Multiprocessor architectures
CMSC420 – Advanced Data Structures
- Data structures for efficient insertion, deletion and search in 1-dimension for “Comparable” data types
- Data structures for efficient string search, storage, insertion, deletion, and compression
- Multi-dimensional data structures, nearest-neighbor and range queries
CMSC451 – Design and Analysis of Computer Algorithms
- Designing efficient computer algorithms
- Proving the correctness of algorithms
- Analyzing the complexity of algorithms
- Graph, network, scheduling, and matching algorithms
- Algorithm design paradigms (greedy, divide-and-conquer, dynamic)
- NP-completeness
CMSC425 – Game Programming
- Experience using Unity 3D and C#
- Game architecture and engines
- Geometric programming and data structures
- Modelling and animation
- Motion and navigation
- AI for games
- Networking and games
CMSC330 – Organization of Programming Languages
- Dynamic languages (Ruby)
- Regular expressions and finite automata
- Context-free grammars and parsing
- Functional programming (OCaml)
- Software security
- Lambda calculus
- Operational semantics
- Garbage collection and memory management
CMSC351 – Algorithms
- Introduction to techniques for designing efficient computer algorithms
- Analyzing computer algorithm running times
- Solving summations and recurrences
- Analysis of data structures
- Introduction to NP-completeness
CMSC216 – Introduction to Computer Systems
- Unix memory model
- C Programming language
- Debugging and testing
- Assembly language
- Process control
- Systems programming
- Program measurement and optimization
- Libraries and linking
- Dynamic memory management
First-Year Innovation and Research Experience (FIRE)
As part of the First-Year Innovation and Research Experience Automated Unmanned Systems Stream (FIRE AUSS), designed and developed a robot and accompanying algorithm to collect solar power more efficiently.