Course Catalogue

Course Code: CSE 4429
Course Name:
Software Security
Prerequisite:
Credit Hours:
3.00
Detailed Syllabus:

Introduction to software security, Software vulnerabilities: memory (un-)safety, Introduction to reverse engineering, Dynamic defense mechanisms, Static protection through bug finding, Finding and exploiting vulnerabilities, Operating system security and forensics, Protecting data, Defense in practice, Web security, Browser security, Android/mobile security, Malware analysis.

Course Code: CSE 4430
Course Name:
Software Security Lab
Prerequisite:
Credit Hours:
1.00
Detailed Syllabus:

Lab works based CSE 4429.

Course Code: CSE 4431
Course Name:
Blockchain
Credit Hours:
3.00
Detailed Syllabus:

This course of the Blockchain specialization provides a broad overview of the essential concepts of blockchain technology – by initially exploring the Bitcoin protocol followed by the Ethereum protocol – to lay the foundation necessary for developing applications and programming. You will be equipped with the knowledge needed to create nodes on your personal Ethereum blockchain, create accounts, unlock accounts, mine, transact, transfer Ethers, and check balances. 

Course Code: CSE 4433
Course Name:
Cryptography
Prerequisite:
Credit Hours:
3.00
Detailed Syllabus:

Cryptography is an indispensable tool for protecting information in computer systems. This course contains the inner workings of cryptographic systems and how to correctly use them in real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. Examine many deployed protocols and analyze mistakes in existing systems. Discussion on public-key techniques that let two parties generate a shared secret key.

Course Code: CSE 4435
Course Name:
ICT Law, Policy and Ethics
Credit Hours:
3.00
Detailed Syllabus:

This course consists of a sustained study of ethical and legal issues that arise in relation to employment in the public and private sectors, including allocation of resources, corporate and social responsibility, relationships, and discrimination. A main focus of this course will be on the ethical and legal standards governing information technology. New technology creates ethical challenges for individuals around the globe and applies to most persons regardless of whether they are employed in the information technology field or a more traditional occupation. The study of Cyber Ethics provides a framework for making ethical decisions that professionals are likely to encounter in the workplace. This course will not only focus on ethics but on the legal, economic, social, cultural and global impacts of decisions that are made in the context of professional occupations.

Course Code: CSE 4437
Course Name:
Digital Forensics and Incident Response
Prerequisite:
Credit Hours:
3.00
Detailed Syllabus:

The overview of Principles of Forensics and IR, Data Collection Techniques, Forensic Hardware, Chain of Custody, Basic Incident Response Process, Pre-Incident Preparation, Documentation Requirements, Common Approaches, Containment and Remediation Strategies, Malware Footprints, Data Volatility, Installed Software and Hotfixes, Persistence Mechanisms, Windows Audit Policies, Malware Analysis, Prefetch Analysis, The Windows Registry, Windows Event Log Analysis, File Carving, Email Header Analysis, Determining File Headers, Extraction of Attachments, Extracting Specific File Types, Deleted Files and Recovery, Use of Hash Sets, Adding Hash Sets, Advantages of Timeline, Timeline Creation, Sources of Network Data, PCAP Analysis with Wireshark, Network Footprint Basics of Memory Acquisition and Analysis, Highlight Power of Memory, Live Response Best Practices and Order of Volatility, Following the Process Tree and Unix/Linux File Permissions.

Course Code: CSE 4439
Course Name:
Topics of Current Interest
Credit Hours:
3.00
Detailed Syllabus:

As necessary.

Course Code: CSE 4441
Course Name:
Real-time Embedded Systems
Prerequisite:
Credit Hours:
3.00
Detailed Syllabus:

Background, history, classifications, programming languages for embedded systems. Combinational logic and transistors, RT-level combinational and sequential components, customized single purpose processor design. Structure of microcontrollers, CPU, memory and I/O structure, various microcontrollers, ARM. I/O and memory mapping, addressing modes, interrupts and traps, bus protocols, DMA, system bus configurations, RAM, ROM, SDRAM, flash, basic I/O interfaces. Parallel ports, LEDs, pushbutton, keypad, 7-segment display, LCD display, touchscreen, timers and counters, serial Interface, networked embedded systems. C-language primer, state machines, streams, circular buffers. Development environment, hardware/software debugging techniques, performance analysis, use of hardware debugging modules. CPU and hardware acceleration, multiprocessor performance analysis. Design methodologies and flows, requirement analysis, specifications description, system analysis and architecture design, quality assurance.

Course Code: CSE 4442
Course Name:
Real-time Embedded Systems Lab
Prerequisite:
Credit Hours:
1.00
Detailed Syllabus:

Lab works based CSE 4441.

Course Code: CSE 4443
Course Name:
Distributed Systems
Prerequisite:
Credit Hours:
3.00
Detailed Syllabus:

This course covers general introductory concepts in the design and implementation of distributed systems, covering all the major branches such as Cloud Computing, Grid Computing, Cluster Computing, Supercomputing, and Many-core Computing. The specific topics that this course will cover are: scheduling in multiprocessors, memory hierarchies, synchronization, concurrency control, fault tolerance, data parallel programming models, scalability studies, distributed memory message passing systems, shared memory programming models, tasks, dependence graphs and program transformations, parallel I/O, applications, tools (Cuda, Swift, Globus, Condor, Amazon AWS, OpenStack, Cilk, gdb, threads, MPICH, OpenMP, Hadoop, FUSE), SIMD, MIMD, fundamental parallel algorithms, parallel programming exercises, parallel algorithm design techniques, interconnection topologies, heterogeneity, load balancing, memory consistency model, asynchronous computation, partitioning, determinacy, Amdahl's Law, scalability and performance studies, vectorization and parallelization, parallel programming languages, and power.

Pages