Teaching Experience

Educating the Next Generation of Computer Scientists

CSE323

Operating System Design

Delivered comprehensive instruction on the principles and architecture of modern operating systems, encompassing kernel design, process scheduling, synchronization, deadlock handling, and inter-process communication. Explored key components such as memory management techniques (paging, segmentation, and virtual memory), file system implementation, and device I/O management.

Integrated discussions on operating system security, access control models, and recent research trends in virtualization and containerization technologies.

Mentored students through term projects focused on the design and simulation of core operating system components, reinforcing their theoretical knowledge through applied experimentation and performance evaluation.

10 sections taught
CSE115

Programming Language I

Instructed foundational concepts of structured programming using the C language, including syntax, control structures, functions, arrays, pointers, and memory management. Emphasized algorithmic thinking and the development of efficient, modular, and maintainable code.

Provided mentorship on code optimization, complexity analysis, and best practices for software documentation. Introduced fundamental data structures (linked lists, stacks, queues) and their algorithmic use cases.

Evaluated student performance through a combination of programming assignments, quizzes, lab assessments, and project presentations. Supported struggling students through one-on-one mentoring and feedback sessions to strengthen their logical reasoning and coding confidence.

15 sections taught