All Courses

Introduction to Computer Programming
This course provides a comprehensive introduction to computer programming using C++ Programming language. It is designed for individuals with no prior programming experience, as well as those looking to enhance their programming skills. The course covers fundamental programming concepts, including variables, data types, control flow, functions, and modules. Students will learn to write clear, efficient, well-structured C++ code to solve real-world problems.

On successful completion of the course, students will be able to:
1. Develop a solid understanding of the basics of computer programming.
2. Learn how to use C++ for problem-solving
3. Acquire practical skills in writing C++ code.
4. Develop the ability to think logically and systematically.
Certification icon
Software Engineering
This course is designed to introduce the core software engineering concepts and its applications. The major
topics includes Software engineering practice, Process models, Software Requirement Engineering, dataflow
and UML diagrams, Software testing and quality assurance, Project management and project planning,
configuration management, Software Process improvement.
Fall 2025-SE432-Human Computer Interaction (HCI)
This course aims to introduce the fundamental theories and concepts of human computer interaction (HCI) and gain practical experience in designing, implementing, and evaluating the interfaces. Major topic includes contexts for HCI, psychology of usable things, processes for user-centered design, metrics and measures for evaluation, usability heuristics and principles of usability testing, cognitive and social models for interaction design, principles of good interaction design, accessibility, task analysis, prototyping, usability inspection methods, new interaction technologies.
Fall 2025-CS445-Distributed & Parallel Computing (D&PC)
This course focuses on the use of multiple processing elements simultaneously for solving any problem. Problems are broken down into instructions and are solved concurrently as each resource that has been applied to work is working at the same time. The major topics include asynchronous/synchronous computation/communication, concurrency control, fault tolerance, GPU architecture and programming, heterogeneity, interconnection topologies, load balancing, memory consistency model, memory hierarchies, Message passing interface (MPI), MIMD/SIMD, multithreaded programming, parallel algorithms & architectures, parallel I/O, performance analysis and tuning, power, programming models (data parallel, task parallel, process-centric, shared/distributed memory), scalability and performance studies, scheduling, storage systems, synchronization, and tools (Cuda, Swift, Globus, Condor, Amazon AWS, OpenStack, Cilk, gdb, threads, MPICH, OpenMP, Hadoop, FUSE)
SE242 Software Engineering Fall 2025
This course is designed to introduce the core software engineering concepts and its applications. The major
topics includes Software engineering practice, Process models, Software Requirement Engineering, dataflow
and UML diagrams, Software testing and quality assurance, Project management and project planning,
configuration management, Software Process improvement.