banner

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

Natural Language Processing

Text Similarity, Part of Speech Tagging, Parsing, Semantics, Question Answering, Sentiment Analysis, and Text Summarization. The course includes programming assignments in Python.
ECE 478