Teaching Courses

CS507: Multimedia Systems, Semester I, 2019-20

Instructor

This course lays the foundation for students to build multimedia systems. Multimedia systems involve automated analysis and fusion of multiple types of data such as text, images, video, audio, social networks, and various sensors. The course covers state-of-the-art tools and techniques for multimedia content processing, compression, networking, fusion, summarization, search and retrieval applicable to different areas such as social media, homeland surveillance and privacy. The objective of this course is to prepare students to develop systems using multi-source information commonly and readily available in the form of Big Data in Internet of Things and Smart Cities paradigms.

GE103: Introduction to Computing and Data Structures, Semester II, 2018-19

Instructor

Introduction to computers programming; variable declaration, operators, assignments; if-then-else, while, do-while, for loop; arrays of basic data types; function calls, call by value, call by reference, recursion; pointers, multidimensional arrays, strings and text processing; structures, pointers to structures, file i/p and o/p; computer architecture, machine language and compilers, program verification, brief overview of other programming languages, object-oriented programming, etc.

CSL201: Data Structures, Semester I, 2018-19

Instructor

Revision of notions of time and space complexity, and trade-offs in the design of data structures. Introduction to object-oriented programming through stacks, queues and linked lists. Dictionaries; skip-lists, hashing, analysis of collision resolution techniques. Trees, traversals, binary search trees. Balanced BSTs, tries, priority queues and binary heaps. Object oriented implementation and building libraries. Applications to discrete event simulation. Sorting: merge, quick, radix, selection and heap sort, Graphs: Breadth first search and connected components. Depth first search in directed and undirected graphs. Union-find data structure and applications. Directed acyclic graphs; topological sort.

CSL607: Multimedia Systems, Semester II, 2017-18

Instructor

This course lays the foundation for students to build multimedia systems. Multimedia systems involve automated analysis and fusion of multiple types of data such as text, images, video, audio, social networks, and various sensors. The course covers state-of-the-art tools and techniques for multimedia content processing, compression, networking, fusion, summarization, search and retrieval applicable to different areas such as social media, homeland surveillance and privacy. The objective of this course is to prepare students to develop systems using multi-source information commonly and readily available in the form of Big Data in Internet of Things and Smart Cities paradigms.

CSP203: Software Systems Laboratory, Semester II, 2017-18

Instructor

Programming exercises and projects using software tools. IDEs, spreadsheets, configuration management, make, version control, documentation tools, literate programming (noweb); scientific document type-setting software (LaTeX), XML, scripting languages and tools (Perl, awk, etc.). Botting systems, and installation and compression tools. Archiving and creation of libraries. Security and encryption software. Application software development tools. Simulation tools, Sockets and RPCs, Pthreads. Numerical packages. Using query languages and data bases. Validation, testing and verification tools and techniques.

CSL201: Data Structures, Semester I, 2017-18

Instructor

Revision of notions of time and space complexity, and trade-offs in the design of data structures. Introduction to object-oriented programming through stacks, queues and linked lists. Dictionaries; skip-lists, hashing, analysis of collision resolution techniques. Trees, traversals, binary search trees. Balanced BSTs, tries, priority queues and binary heaps. Object oriented implementation and building libraries. Applications to discrete event simulation. Sorting: merge, quick, radix, selection and heap sort, Graphs: Breadth first search and connected components. Depth first search in directed and undirected graphs. Union-find data structure and applications. Directed acyclic graphs; topological sort.

CSL607: Multimedia Systems, Semester II, 2016-17

Instructor

This course lays the foundation for students to build multimedia systems. Multimedia systems involve automated analysis and fusion of multiple types of data such as text, images, video, audio, social networks, and various sensors. The course covers state-of-the-art tools and techniques for multimedia content processing, compression, networking, fusion, summarization, search and retrieval applicable to different areas such as social media, homeland surveillance and privacy. The objective of this course is to prepare students to develop systems using multi-source information commonly and readily available in the form of Big Data in Internet of Things and Smart Cities paradigms.

CSP203: Software Systems Laboratory, Semester II, 2016-17

Instructor

Programming exercises and projects using software tools. IDEs, spreadsheets, configuration management, make, version control, documentation tools, literate programming (noweb); scientific document type-setting software (LaTeX), XML, scripting languages and tools (Perl, awk, etc.). Botting systems, and installation and compression tools. Archiving and creation of libraries. Security and encryption software. Application software development tools. Simulation tools, Sockets and RPCs, Pthreads. Numerical packages. Using query languages and data bases. Validation, testing and verification tools and techniques.

CSL201: Data Structures, Semester I, 2016-17

Instructor

Revision of notions of time and space complexity, and trade-offs in the design of data structures. Introduction to object-oriented programming through stacks, queues and linked lists. Dictionaries; skip-lists, hashing, analysis of collision resolution techniques. Trees, traversals, binary search trees. Balanced BSTs, tries, priority queues and binary heaps. Object oriented implementation and building libraries. Applications to discrete event simulation. Sorting: merge, quick, radix, selection and heap sort, Graphs: Breadth first search and connected components. Depth first search in directed and undirected graphs. Union-find data structure and applications. Directed acyclic graphs; topological sort.

CS2106 (NUS): Operating Systems, Spring 2009

Teaching Assistant

Topics include kernel architecture, system calls, interrupts, models of processes, process abstraction and services, scheduling, review of physical memory and memory management hardware, kernel memory management, virtual memory and paging, caches, working set, deadlock, mutual exclusion, synchronization mechanisms, data and metadata in file systems, directories and structure, file system abstraction and operations..

CS3220 (NUS): Computer Architecture, Fall 2010

Teaching Assistant

Topics include Execution control and microprogramming, I/O interfaces, Cache, Virtual memory, Instruction pipelining, Superscaler processors, Interconnections, Multiprocessor systems, Vector processors, Cache coherence, Parallel programming, Stack, functional programming and dataflow architectures, Various Processor examples, weekly tutorials and consultation.

Others

Informal QE tuition to junior PhDs

ALgorithms, Networking, Databases, Programing Languages, Artificial Intelligence

Download CV

>