This course focuses on building security into every phase of software development through a proactive approach. Students explore secure development lifecycles (SDLCs) and engage with industry standards such as OWASP to integrate security considerations at each stage of design and implementation. Through hands-on exercises, they learn to identify and prevent common vulnerabilities, apply threat modeling techniques, and incorporate automated security testing tools— including static and dynamic analysis— into modern CI/CD pipelines. Topics include code reviewing best practices, secure coding frameworks, application security architecture, and the practical integration of cryptographic services. By applying these practices, students gain the skills to produce resilient software that can withstand attacks while protecting user data and system integrity.
This course focuses on building security into every phase of software development through a proactive approach. Students explore secure development lifecycles (SDLCs) and engage with industry standards such as OWASP to integrate security considerations at each stage of design and implementation. Through hands-on exercises, they learn to identify and prevent common vulnerabilities, apply threat modeling techniques, and incorporate automated security testing tools— including static and dynamic analysis— into modern CI/CD pipelines. Topics include code reviewing best practices, secure coding frameworks, application security architecture, and the practical integration of cryptographic services. By applying these practices, students gain the skills to produce resilient software that can withstand attacks while protecting user data and system integrity.
This course focuses on the principles and applications of generative AI, including Generative Adversarial Networks (GANs) and Large Language Models (LLMs). In this course, students explore generative AI essentials, how to ethically use artificial intelligence, its implications for authorship, and what regulations for generative AI could look like. The course emphasizes both the theoretical foundations and practical applications of generative models in areas like content generation, and AI-driven design.
This course focuses on the unique security challenges associated with web applications and mobile platforms. Students examine common vulnerabilities such as cross-site scripting, broken authentication, insecure data storage, and malicious code injection. Topics extend beyond basic weaknesses to include API security, single-page application (SPA) safeguards, mobile application sandboxes, secure session management, and hardened containerized deployments. By mastering these concepts, students will be equipped to build and maintain secure web and mobile applications that protect user data and privacy across multiple platforms.
This course focuses on building security into every phase of software development through a proactive approach. Students explore secure development lifecycles (SDLCs) and engage with industry standards such as OWASP to integrate security considerations at each stage of design and implementation. Through hands-on exercises, they learn to identify and prevent common vulnerabilities, apply threat modeling techniques, and incorporate automated security testing tools— including static and dynamic analysis— into modern CI/CD pipelines. Topics include code reviewing best practices, secure coding frameworks, application security architecture, and the practical integration of cryptographic services. By applying these practices, students gain the skills to produce resilient software that can withstand attacks while protecting user data and system integrity.
In this hands-on course, students learn to think like attackers to identify vulnerabilities before malicious actors can exploit them. They practice reconnaissance, vulnerability scanning, exploitation techniques, and the safe use of testing tools. Ethical guidelines, scoping agreements, and reporting findings are integral parts of the curriculum. Students emerge with a structured methodology for uncovering system flaws and providing recommendations to strengthen defensive measures.
This course provides a comprehensive overview of designing and evaluating robust security architectures within enterprise environments. Students move beyond foundational concepts to explore layered defense models, identity and access management frameworks, and Zero Trust Network Access (ZTNA). Topics include integrating cryptographic controls, establishing secure communication channels, leveraging threat intelligence, and applying architecture frameworks such as SABSA or TOGAF. Students will also assess emerging technologies and evolving regulatory requirements to ensure that architectures remain adaptive and forward-looking. Upon completion, they will be able to create strategic, standards-based security designs that protect complex systems against diverse threats.
This course introduces the concepts and techniques used in natural language processing (NLP), including text preprocessing, word embeddings, and language models. Students will explore applications such as sentiment analysis, machine translation, and chatbot development. Projects focus on using modern NLP libraries and frameworks to solve practical challenges.
This course introduces fundamental concepts in the theory of computation. Students will be introduced to formal languages, automata, computability and computational complexity. These include finite automatons, Turing machines, grammars, decidable problems, reductive procedures and different kinds of computational problems. The course aims to explore these theoretical concepts to apply on practical issues of interest to software engineering, data science, and AI, for instance, natural language processing, algorithmic development and evaluation of computational efficiency. By the end of this course, students will be able to assess the performance bounds of computing models and their applicability towards modern computing problems.
This course introduces students to expert systems in general and to rule-based systems in specific. Students learn how to build a rule-based expert system in a variety of application areas. They also learn advanced programming techniques which include topics of inexact reasoning, intelligent database management methods, and how to develop a community of expert systems. Students are also given the opportunity to demonstrate their understanding of the technology by building a rule-based expert system that addresses a real-world problem.
This course focuses on integrating AI with robotics to develop intelligent autonomous systems. Students will study perception, decision-making, motion planning, and control using AI techniques like computer vision, reinforcement learning, and path planning algorithms. The course emphasizes practical applications in robotic systems, including autonomous navigation, object manipulation, and human-robot interaction.
Game theory underpins several important recent advancements in AI such as multi-agent reinforcement learning and generative adversarial networks. Applications within computer science include the use of games in automated verification & model checking to model computing systems in an unknown and possibly adverse environment. In AI, games are applied to the analysis of multiagent systems. Recently, with the advent of the internet and e-commerce, many game theoretic questions in the interplay between economics & computing have received extensive attention. These include electronic auctions, & more generally mechanism design questions (inverse game theory) related to finding incentive structures for cooperation between independent entities on the internet. The course introduces students to the theory of non-cooperative games covering both its economic and algorithmic aspects. Topics that will be covered include equilibria, their existence and quality, equilibrium learning and computation.