Tentatively Planned Program Electives for Spring 2024

CSC4341 Competitive Programming

This course provides an exploration of algorithms and data structure with a focus on their use solving problems presented in programming competitions. A brief introduction to algorithm runtime and space complexity analysis will be given in the context of constraints presented by problems in a competitive programming environment. The course will then present how competitive programming problems can be categorized and solved by recognizing the appropriate algorithm and data structure to use. Lab sessions will consist of practice in solving problems along with writing new problems. details

CSC4641 Natural Language Processing

This course will cover various aspects of Natural Language Processing, including sentiment analysis, question answering, machine translation, and speech recognition. Students will construct some utilities from the ground up as well as use popular NLP libraries. details

CSC4980 An Engineering Approach to Game Theory and Economics

For decades, the study of strategic interactions between rational decision makers has formed the basis of game theory. This course, using a two-volume textbook, extends game theory concepts to focus on dynamic games, introducing students to a new take on game theory referred to as the field theory of games. The course prioritizes conceptual understanding over mathematical equation solving, making the text accessible to not only engineering students but also to a more general audience, including business students.

By using a toolkit based on the Wolfram Language, students can bypass the need to solve linear programming problems and partial differential equations by hand, allowing them to arrive at solutions with practical applications more efficiently. An introduction to the Wolfram Language symbolic programming, Mathematica, is provided. Mathematica is used to study both empirical trends as well as engineering model simulations based on the engineering extension of game theory. A review of the concepts from physics and mathematics that underlie the approach is given. Along with these introductory foundations, economic applications will be presented and shown to depend on aspects of modern theories of differential geometry.

Though this course begins with classical game theory, it differs from the usual approaches to dynamic games and deals with incomplete information by using constraints in a geometric theory, where the shortest path provides a deterministic prediction of future behaviors. Students will learn to apply introductory ideas to a system without constraints. Next, students will explore the consequences of adding constraints and will be provided an application guide.

CSC4980 Survey of Deep Learning

This will be a lecture-only course where students read academic papers describing some of the best work in Deep Learning done today. Class time will be spent discussing what makes these networks tick. Although the list of what papers we will discuss in the course is FAR from final, some of the possible topics include:

SWE4981 Intro to DevOps with Security

The course provides students with an introduction to the tools and practices employed in DevOps. As an agile development approach, DevOps emphasizes collaboration, communication, and automation among all stakeholders, including IT operations, testers, developers, customers, and security personnel throughout the project. This course includes DevOps principles and processes for designing and building a secure development pipeline, secure development, security testing, and deployment from start to finish. Students will learn about the requirements and architectural decisions required to optimize the secure construction and deployment of a software system, the design and implementation of CI/CD systems for secure development and deployment of software systems, and the usage of auditing tools to ensure the secure operation of a system deployed in a modern operational environment. Students will also be exposed to quality assurance and risk management practices.

UXD3030 Data Visualization

This course will allow students to learn critical skills in data visualization by putting them into practice. Students will learn how to find and clean data, identify the story within the data, create visualizations that resonate with others, and utilize psychological principles underlying human perception to ensure that their data visualization is interpreted appropriately. Data visualizations covered include static and interactive graphs, dashboards, and infographics. In addition to learning to create and evaluate data visualizations, students will learn to effectively present data visualizations to diverse audiences. Students will work with a variety of industry standard tools to create data visualizations. details