Fall 23, 24 Spring 24
This course provides a comprehensive exploration of object-oriented design using the C++ programming language, focusing on advanced design techniques and implementation strategies. Key topics include class design, relationships, derivation, abstract classes, interfaces, and static members. The course delves into object construction and destruction, inheritance, and polymorphism. Advanced C++ topics such as vectors, dynamic memory management, memory leaks, exception handling, operator overloading, templates, and the Standard Template Library (STL) are also covered. Additionally, foundational language elements including functions, control structures, decision-making, references, pointers, and pointer arithmetic are reviewed to ensure a robust understanding of C++.
Spring 24
This course provides a comprehensive introduction to cloud computing, blending theoretical concepts with hands-on experience via projects utilizing public cloud platforms such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). It emphasizes understanding fundamental cloud concepts, models, and services, including Cloud-Enabling Technologies, virtualization, containerization, and Kubernetes. Students will explore cloud storage options like Object Storage and gain foundational knowledge of emerging cloud trends and practices, including Hybrid, Multicloud, Microservices, and Serverless computing. Additionally, the course extensively covers cloud security and monitoring. Alongside these pivotal topics, it delves into advanced cloud computing components like elasticity, resource pooling, data centers, availability zones, containers, and bare-metal servers. Discussions and practical implementation of emerging trends such as DevOps, Cloud Native, and Application Modernization, as well as machine learning and edge computing, are also included.
Fall 23, 24
Discrete mathematics forms the mathematical foundation of computer and information science. The goal of this course is to introduce students to ideas and techniques from discrete structures that are widely used in science and engineering. This course aims to familiarize students with fundamental ideas and methodologies drawn from discrete structures, fostering logical and mathematical thinking skills essential for tackling complex problems. Through the exploration of topics independent of the limit process, students will delve into areas such as set theory, proofs, logic, functions, relations, algorithms, number theory, counting principles, matrix manipulation, mathematical induction, graph theory, trees, recurrence relations, network models, permutations and combinations, and finite state machines.
Fall 23, 24
This course provides a comprehensive exploration of computing, starting with its historical development and an overview of how computers function. It covers a wide range of web development and design topics, from basic to advanced HTML, CSS, and JavaScript, empowering students to create professional websites. A significant portion of the course is dedicated to procedural programming, with a focus on JavaScript and its implementation in diverse programming environments.