Teaching
Course materials, schedules, and resources for classes taught.
2022
Data Structures - Lab
Practical implementations of core data structures and programming techniques, including command-line file streaming, debugging, dynamic allocation, recursion architectures, elementary sorting, linked lists, stacks, queues, hash tables, and advanced graph algorithms.
2021 & 2022
Theory of Computation / Automata
Finite State Models, Regular expressions/Regular languages, Finite automata (FAs), Transition graphs (TGs), NFAs, Kleene’s theorem, Transducers, Pumping lemma, CFGs, Pushdown Automata (PDA), Turing Machines Theory, Decidability, and the Chomsky Hierarchy.
2021
Programming Fundamentals - Lab
Getting students acquainted with problem understanding, modeling and solving. Covers computation, problem-solving techniques, and complete syntax implementation using the C programming language.
Object - Oriented Programming - Lab
Practical implementation of the object-oriented paradigm. Covers IDE setup, data abstraction, encapsulation, constructors, destructors, inheritance architectures, polymorphism, operator overloading, file handling, templates, and graphical user interfaces using C++ and C#.
Discrete Structures
Logic, relations, functions, basic set theory, counting, proof techniques, mathematical induction, graph theory, recursion, recurrence relations, number theory and sequence & series. All the topics will be taught in perspective of their applications in computing.
2020 & 2022
Programming Fundamentals
This course introduces fundamental computing concepts and structured programming methodologies. Students will develop logical reasoning, algorithmic problem-solving skills, and practical programming proficiency using the C language.
2020
Digital Logic Design (DLD)
This course introduces the concepts & tools for the design of digital electronic circuits using sequential and combinational logic to freshman computer science students.