teaching

A brief summary of the courses and labs I have taught and/or graded as a Teaching Assistant (Fall 2017 to Spring 2021) at NJIT and as an Assistant Lecturer (2014-2016) at NITK.

Awards


NJIT Ying Wu College of Computing

Spring 2021

CS 114 Introduction to Computer Science II (Lab instructor) - A study of advanced programming topics with logical structures of data, their physical representation, and the design of computer algorithms operating on the structures. Course covers program specifications, correctness and efficiency, data abstraction, and algorithm analysis. (Level: Undergrad)

CS 632 Advanced Database Systems Design (Grading) - An advanced course on databases covering topics such as programming in PL/SQL, OODBs, DB security, Indexing, and Buffer tuning. An introduction to No-SQL databases, especially MongoDB, various formats including XML and JSON and an overview of the ETL (Extract-Transform-Load) of data. (Level: Graduate)

Spring 2019, Fall 2019, Spring 2020, Fall 2020

CS 116 Introduction to Computer Science II in C++ (Lab instructor) - A study of advanced programming topics with logical structures of data, their physical representation, design and analysis of computer algorithms operating on the structures, and techniques for program development and debugging. Course covers program specifications, correctness and efficiency, data abstraction, basic aspects of simple data structures, internal searching and sorting, recursion and string processing. Algorithmic analysis is also discussed. (Level: Graduate)

Fall 2018

CS 103 Computer Science with Business Problems (Lab instructor) - An introductory course in computer science, with applications to business and managerial decision making. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and abstraction, with applications. (Level: Undergrad)

CS 106 Roadmap to Computing for Engineers (Lab instructor) - An introduction to programming and problem solving skills for engineering majors using Python programming languages. Topics include basic strategies for problem solving, constructs that control the flow execution of a program and the use of high level data types such as lists, strings, and dictionaries in problem representation. The course also presents an overview of selected “big idea” topics in computing. (Level: Undergrad)

Spring 2018

CS 634 Data Mining (Grading) - This course covers the principles of data mining system design and implementation. It presents methods for association and dependency analysis as well as classification, prediction, and clustering. Optional topics may include time series and graph mining, current trends in data mining, and data mining for scientific, medical and engineering applications. (Level: Graduate)

Fall 2017

CS 103 Computer Science with Business Problems (Lab instructor) - An introductory course in computer science, with applications to business and managerial decision making. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and abstraction, with applications. (Level: Undergrad)


National Institute of Technology Karnataka

Even semester (Jan 2016 - May 2016)

MCA 701 Database Management Systems - Topics include Files versus database systems, Three-level architecture of databases, Data Models, ER-diagram, EER-model, Relational model, ER-Relational mapping, Relational algebra and calculus. Query languages, SQL, Embedded SQL, Relational database design algorithms, Normalization, Physical database organization, Indexing and hashing, Transaction processing, Concurrency control techniques, Database recovery techniques, Database security and authorization.

MCA 704 Database Management Systems Lab - Creation of tables, Views, Insertion, Modification and deletion of elements. Implementation of queries. Implementation of joins. Implementation of PL/SQL, triggers, cursors and sub programs. Implementation of database connectivity through front end tools. Database design and implementation. Mini project.

Odd semester (Aug 2015 - Dec 2015)

MCA 601 Computer Organization and Architecture - An introductory course on the fundamental elements in a computer system including the processor, memory, and interfaces to external components and systems. Topics include Data Representation, Number systems, Logic design, Addressing modes, Assembly Language programming, Memory organization, Arithmetic: Adders, Carry Look ahead Adder, CSA, Fast multipliers, Booth multiplier, Floating point representation and operations, CPU architecture and organization, Microprogramming, Hardwired control unit, Instruction Formats I/O architecture. Multiprocessing, RISC vs., CISC Architectures, Pipelining and superscalar machine, Parallel processing.

MCA 607 Computer Architecture Lab

MCA 615 Theory of Computation - Finite automata. Moore and Melay machines. Regular Expressions. Pumping lemma. Minimizing the automata. Formal Languages. Regular languages. Context free languages (CFL). Chomsky and Greibach Normal forms.Pushdown automata (PDA). Equivalence of PDA and CFL. Turing machines. Theory of recursive functions.Complexity theory. NP-completeness

Even semester (Jan 2015 - May 2015)

MCA 605 Data Structures & Algorithms - Introduction to analysis of algorithms: asymptotic notations, big-oh, big-omega, theta, small-oh, small-omega notations, worst-case and average-case analysis, solving recurrences. Abstract data types, Linear Data Structures and their sequential storage representation: stacks, queues, priority queues, and their applications. Pointers and linked storage representation: singly linked list, circular linked list, doubly linked lists and their application, skip lists. Nonlinear data structures: trees, storage representation of binary trees, operations on binary trees: tree traversals, insertion, deletion, searching, trees, applications of trees, AVL trees. Graphs: representation of graphs, breadth first search and depth first search, shortest path problem, minimum cost spanning trees, applications of graphs. Sorting: selection sort, bubble sort, insertion sort, merge sort, heap sort, quick sort, radix sort. Searching: sequential search, binary search, search trees, hash tables

MCA 606 Data Structures and Algorithms Lab - MS-DOS editor commands. Unix commands. Simple programs using I/O. Implementation of programs using control statements, Functions, Arrays, Pointers, Structures, Unions, File handling, Graphics function and animation.

Odd semester (Aug 2014 - Dec 2014)

MCA 601 Computer Organization and Architecture - An introductory course on the fundamental elements in a computer system including the processor, memory, and interfaces to external components and systems. Topics include Data Representation, Number systems, Logic design, Addressing modes, Assembly Language programming, Memory organization, Arithmetic: Adders, Carry Look ahead Adder, CSA, Fast multipliers, Booth multiplier, Floating point representation and operations, CPU architecture and organization, Microprogramming, Hardwired control unit, Instruction Formats I/O architecture. Multiprocessing, RISC vs., CISC Architectures, Pipelining and superscalar machine, Parallel processing.

MCA 607 Computer Architecture Lab

MCA 828 Compiler Design - Topics include Phases of a compiler. Lexical analysis. Syntax analysis. LEX and YACC utility. Syntax directed translation. Runtime Environments. Intermediate code generation. Code optimization. Code generation.