Magna Cum Laude, UPE CS Honor Society, HKN EECS Honor Society, Dean's List
National Merit Commended Scholar, Gifted and Talented Education, Scholar Athlete
Design and analysis of algorithms: divide-and-conquer, greedy, dynamic programming, max-flow. Selection of prototypical algorithms; choice of data structures and representations. Complexity measures: time, space, upper, lower bounds, asymptotic complexity. NP-completeness.
Neural network architectures; backpropagation; regularization and optimization for training neural networks; CNN's; deep learning libraries in Python; RNN's, backpropagation through time, LSTM's and GRU's; VAE's; GAN's; adversarial examples and training.
Application of tools and models to data gathering and analysis. Topics include statistical foundations, regression, classification, kernel methods, clustering, expectation maximization, principal component analysis, decision theory, reinforcement learning and deep learning.
Introduction to fundamental problem solving and knowledge representation paradigms of artificial intelligence. State-space and problem reduction methods, brute-force and heuristic search, planning techniques, two-player games. Knowledge structures including predicate logic, production systems, semantic nets and primitives, frames, scripts.
Design trade-offs and principles of operation of cyber physical systems such as devices and systems constituting Internet of Things. Topics include signal propagation and modeling, sensing, node architecture and operation, and applications.
Computer system organization and design, implementation of CPU datapath and control, instruction set design, memory hierarchy (caches, main memory, virtual memory) organization and management, input/output subsystems (bus structures, interrupts, DMA), performance evaluation, pipelined processors.
Introduction to design and performance evaluation of computer networks, including such topics as what protocols are, layered network architecture, Internet protocol architecture, network applications, transport protocols, routing algorithms and protocols, internetworking, congestion control, and link layer protocols including Ethernet and wireless channels.
Three-dimensional computer graphics systems, including complete set of steps in modern graphics pipelines. How to position and manipulate objects in scene using geometric transformations. How to create final image using perspective transformations. Basics of modeling primitives such as polygonal models and parametric surfaces. Color spaces, illumination models, shading, and texture mapping.
Introduction to basic concepts of information security necessary for students to understand risks and mitigations associated with protection of systems and data. Topics include security models and architectures, security threats and risk analysis, access control and authentication/authorization, cryptography, network security, secure application design, and ethics and law.
Design and use of programming languages, including abstraction, modularity, control mechanisms, types, declarations, syntax, and semantics. Study of several different language paradigms, including functional, object-oriented, and logic programming.
Operating Systems design and evaluation; performance, robustness, and functionality. Kernel structure, bootstrapping, I/O devices and interrupts. Processes; address spaces, memory management, and virtual memory. Scheduling, synchronization. File systems. Distributed systems. Protection and security.
Fundamentals of commonly used software tools and environments, particularly open-source tools: System calls, multithreading, ssh, dynamic linking, regex's, version control.
Object-oriented software development. Abstract data type definition and use. Overloading, inheritance, polymorphism. Object-oriented view of data structures: stacks, queues, lists. Complexity algorithm analysis. Trees, graphs, and associated algorithms. Searching and sorting.
Introduction to computer architecture, assembly language, and operating systems fundamentals. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Processes and process management, input/output (I/O) programming, memory management, file systems.
Introduction to computer science principles. Logic control, program design. Object-oriented software design and development.
Relationship between continuous-time and discrete-time signals. Z-transform. Discrete Fourier transform. Fast Fourier transform. Structures for digital filtering. Introduction to digital filter design techniques.
Input/output description, linearity, time-invariance, and causality. Impulse response functions, superposition and convolution integrals. Laplace transforms and system functions. Fourier series and transforms. Frequency responses, responses of systems to periodic signals. Sampling theorem.
Design and implementation of complex digital subsystems using field-programmable gate arrays (e.g., processors, special-purpose processors, device controllers, and input/output interfaces). Students work in teams to develop and implement designs and to document and give oral presentations of their work.
Hands-on design, implementation, and debugging of digital logic circuits, use of computer-aided design tools for schematic capture and simulation, implementation of complex circuits using programmed array logic.
Specification and implementation of combinational and sequential systems. Standard logic modules. Specification and implementation of algorithmic systems; data and control sections, number systems and arithmetic algorithms.
Transistor-level digital circuit analysis and design. Modern logic families (static CMOS, pass-transistor, dynamic logic), integrated circuit (IC) layout, digital circuits (logic gates, flipflops/latches, counters, etc.), computer-aided simulation of digital circuits.
Electrical quantities, linear circuit elements, circuit principles, signal waveforms, transient and steady state circuit behavior, semiconductor diodes and transistors, small signal models, and operational amplifiers.