Teaching
Course Offerings
COMP-3670: Computer Networks
Fall 2019, Summer 2022, Summer 2023, Summer 2024, Fall 2022, *FALL 2024*
This course is an introduction to computer networks and their protocols. Topics include: network architectures, transport, routing, and data link protocols, addressing, local area networks, flow and congestion control, and network security. Examples will be drawn primarily from the Internet (e.g. TCP, UDP, IP) protocol suite. In addition to that, students will be able to explore Wireshark Software (Network Packet analyzer) by completing assigned exercises. With continuous rapid advances in computing and networking technology, the world is becoming more and more interconnected. Therefore, it is essential that IT professionals are aware of fundamental concepts of computer networks and possible attacks on data and networked resources that can be sent across the network. This course will teach students important networking concepts and a variety of techniques to maintain and better protect the network and its component parts from unauthorized access and misuse. Real-world case studies will be discussed throughout the course wherever applicable.
COMP-8130: Topics in Software Engineering
Fall 2021, *FALL 2024*
Some advanced selected topics in software engineering will be discussed in this course. Topics include software quality engineering, formal methods in software verification, and reverse engineering of software. At the end of the course, the successful student will know and be able to:
Upon successful completion of this course, students will have demonstrated the ability to:
1. Identify common security vulnerabilities and pitfalls in software development and suggest measures to avoid those.
2. Evaluate and interpret relevant facts, concepts, principles, and theories relating to designing and developing secure systems and use them to evaluate and improve the security of real-world systems.
3. Address security at each step in the automotive software development lifecycle.
4. Apply the security solution for the operation and maintenance phases of automotive software to address detecting and fixing vulnerabilities after a vehicle have been released.
5. Develop secure vehicle software after production consisting of release management, monitoring and tracking, and secure OTA updates.
COMP-2650: Computer Architecture I: Digital Design
Fall 2018, Summer 2018, Summer 2019, Summer 2022, Summer 2023, Summer 2024
This course covers fundamental concepts of digital design and CPU architecture. Topics covered include number systems, switching algebra, logic gates, circuit minimization combinational circuit, read-only memory, random-access memory, programmable logic, synchronous and asynchronous sequential circuits, latches, flip-flops, registers, counters, register transfer language. and CPU architecture overview.
COMP-2660: Computer Architecture II: Microprocessor Programming
Fall 2018, Fall 2021, Fall 2022
Basic Concepts, principles of assembler-level programming of common microprocessors. Machine language. Data representation and types. Assembly language fundamentals. Memory segmentation and access. Data transfer, addressing modes, and arithmetic. Register set and operations. Instruction set. Arithmetics. Procedures, calling conventions, parameter passing, recursion and macros. Input/Output operations. Stack operations and high-level language interfacing. BIOS and DOS interrupts
COMP-8920-4: Automotive Cybersecurity
Winter 2022
This course is being offered on the subject of Automotive Cybersecurity. Currently, the automotive industry is challenged with new security, safety and quality requirements due to the increasing digitalization, interaction, and automation of vehicles. The technolgies like Vehicle-to-Everything (V2X) and Automated Vehicles have significant imapct on the overall operations of Intelligent Transportation Systems (ITS). Therefore, the vehicle components, software and network are being developed with cybersecurity in mind.
COMP-4800: Selected Topics in Software Engineering
Winter 2021
This course offers the fundamental knowledge and develop the awareness of the key theoretical concepts that are core to automotive cybersecurity. With the emerging automation, pervasive network and software-defines vehicles, the cyber attack surface has exponetially increased in recent times. This course may be of interest to students in both computer science and engineering. Students should be comfortable with the general cybersecurity concepts and technical writing.
COMP-8547: Advanced Computing Concepts
Fall 2020, Winter 2021
This course covers advanced topics in principles and applications of algorithm design and analysis, programming techniques, advanced data structures, languages, compilers and translators, regular expressions, grammars, computing and intractability. Cases studies and applications in current programming languages are explored in class and labs. This course introduces students to fundamental concepts of computing, such as algorithm analysis and design, related data structures, principles of languages and computability and their applications to real computational problems. Students will learn advanced topics on principles and applications of computing, how to design and analyze computer algorithms using formal notation for complexity and experimental approaches by implementing algorithms in current programming languages. Advanced data structures will be discussed along with their relationships to other data structures, their use in algorithm design and analysis, limitations of specific data structures on applications to real problems, as well as the existing implementations in current programming languages. Students will also learn the main principles and fundamentals of computing, including the universal computing model, languages, regular expressions and grammar, with relevant applications in real problems, for instance, text mining, information retrieval, database search, data parsing and analysis, environments, compilers and translation mechanisms for current programming languages. Intractability will be presented with an overview of the general approach for non-determinism and completeness along with practical case studies and experimental approaches to real-life computational problems.
CE-CYBR7102-1 Cybersecurity I: Introduction to System Security
Summer 2021, Summer 2022
Cybersecurity I – Introduction to Systems Security is part one of two of the Certificate in Cybersecurity. This online course covers fundamental topics in cybersecurity or information security. Learners will participate in live interactive classes to understand threats, attacks, and vulnerabilities and the architecture and design of a system. Content of this course is mapped with the CompTIA Security + curriculum for those who are interested in pursuing the certification.
CE-CYBR7103 Cybersecurity II: System Implementation
Fall 2021, Fall 2022
This course is a fundamental course for anyone who is interested in pursuing a career in cyber security or information security. This course will introduce basic information security concepts, Cryptography, Digital data, Data Forensics, Patch management, Change management, Security policies, Operations management, and other concepts.