Courses
Computer Architecture
This course introduces the basic hardware structure of a programmable computer and the basic laws underlying performance evaluation, The student learns how to design the control and data path hardware for a processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems, The principles
ECE 345
Software Engineering
The course covers concepts of software processes, implantation techniques, and project management. It focuses on several aspects of the software lifecycle that have significant influence on the overall quality of the software system including techniques and approaches to requirement engineering, software architecture, software design, quantitative measurement, and assessment of the system during
ECE 353
Database Management Systems
Data models and database design, modeling the real world: structures, constraints, and operations, the entity relationship to data modeling (including network hierarchical and object- oriented), emphasis on the relational model. Use of existing database systems for the implementation of information systems
ECE 252
Parallel and Distributed Computing
Broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing.
ECE 456
Operating Systems
an overview of fundamental operating system principles, complemented with discussions of concrete modern systems to help you understand how these principles are applied in real OS, an overview of the components of an operating system, mutual exclusion and synchronization, implementation of processes, scheduling algorithms, memory management and file systems.
ECE 355
Computer and Network Security
The course is designed to develop the concepts of network security analysis and solution synthesis skills. The topics include; Security planning, security policies, security goals, security mechanisms, security principles, types of attacks, network layer security, services security, firewalls, symmetric encryption, asymmetric encryption, hash functions, one-time-signatures, and blockchain.
ECE 457
Advanced Computer Architecture
Computer design trade-offs. , Advanced processor designs, , Superscalar and out-of-order execution, Advanced memory systems, such as non-blocking caches, Multi-porting/banking and alternative virtual memory implementations, I/O systems, interconnects, introduction to multiprocessor architectures, Performance and cost metrics, and benchmarking.
ECE 447
Image and Video Processing
Fundamentals of image and video processing, color image capture and representation, contrast enhancement, spatial domain filtering, two-dimensional (2D) Fourier transform and frequency domain interpretation of linear convolution, image sampling and resizing, multi-resolution image representation using pyramid and wavelet transforms, feature point detection and feature correspondence, geometric
ECE 354
Machine Learning
Introduction to machine learning, statistical pattern recognition, supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines), unsupervised learning (clustering, dimensionality reduction, kernel methods), learning theory (bias/variance trade-offs, practical advice), reinforcement learning and adaptive control, recent
ECE 471
Artificial Intelligence
Fundamentals of artificial intelligence (AI), statistics, uncertainty, Bayes networks, problem-solving, knowledge, reasoning, planning, natural language understanding, robotics, and robot motion planning. Students will experience programming in AI language tools.
ECE 472
Deep Learning Fundamentals
Fundamental principles and techniques in deep and reinforcement learning, convolutional neural networks, recurrent and recursive neural networks, backpropagation algorithms, regularization and optimization techniques for training such networks, dynamic programming, Monte Carlo, and temporal difference, function approximation reinforcement learning algorithms, applications of deep and reinforcement
ECE 473
Advanced Deep Learning
Deep reinforcement learning, meta-learning, Generative Adversarial Networks (GAN), Variational Autoencoders, graph neural networks, and interpretation of neural networks. Applications for computer vision problems, including image classification, object detection, and image segmentation.
ECE 474
Data Analytics
Big Data framework using Hadoop and Spark, principles of HDFS, YARN, MapReduce, HBase, a distributed column-oriented database, real-time data processing using Spark, understanding parallel processing in Spark, and using Spark RDD optimization techniques and SparkML, and use Pig and Hive to process and analyze large datasets stored in the HDFS and to use Sqoop and Flume for data ingestion.
ECE 475
Data Mining
An introduction to data mining methods and applications, basic concepts and tools for data mining, including data sources, data preprocessing, data cleaning tools, data warehouse, association, classification, and methods, mainstream algorithms for data mining, statistical modeling, and popular tools for mining structured data, unstructured data, and specific data types such as time-series, social
ECE 476
High Performance Computing
High-Performance Computing Clusters, solid foundation in parallel computer architectures, parallel programming models, application performance monitoring, optimization techniques, fundamentals of parallel systems, HPC cluster, how to write faster code that is highly optimized for modern multi-core processors and clusters, using modern software development tools, performance profilers, specialized
ECE 477