Teaching:
One of my favorite aspects of being a graduate student is getting the opportunity to teach. I take my teaching very seriously. I put in a lot of effort (both inside and outside the classroom) in the hopes of my students having an excellent experience. I hope that my students not only learn the information well, but also enjoy the manner in which they are taught.
Here is a list of courses that I have taught or was a TA for:
22C:001 – Computer Literacy (Sole Responsibility) (Fall 2006)
Introductory course for non-majors. In charge of all lecturing and grading. Topics include computer literacy; computer system organization; history of computing; the impact of computer technology on society; issues of privacy, ethics, and security; networks and the Internet; artificial intelligence and robotics.
22C:005 – Introduction to Computer Science (Fall 2005 - Spring 2006)
Introductory course for non-majors. Topics include computing fundamentals such as digital data representation, simple algorithms and their efficiency, networks and databases, an overview of artificial intelligence and the scope and limitations of information technology.
22C:016 – Computer Science I: Fundamentals (Summer 2007)
This is the introduction to programming course in the computer science major and minor curriculum. This course teaches the fundamentals of C# or Java to students with no prior programming experience assumed.
22C:021 – Computer Science II: Data Structures (Fall 2006)
The second course required for computer science majors and minors emphasizes the design, implementation, and analysis of common data structures and algorithms. The goal is to teach how data structures provide the necessary data abstraction for the development of large software systems and their central role in software engineering.
22C:022 – Object-Oriented Software Development (Spring 2008)
The course continues the presentation of skills and knowledge necessary for effective software development, building upon the basic competence students gained in 22C:016. The course is taught in Ruby and focuses on developing professional-level programming competence using the object-oriented paradigm and associated concepts of classes, objects, methods, inheritance, and polymorphism. Students are taught the basics of software engineering and use that knowledge in a group project to develop a large software system.
22C:231 – Design and Analysis of Algorithms (Fall 2008)
Graduate level algorithms course. Review of design and analysis techniques; advanced data structures; graph algorithms (network flows, matching, min-cut); NP-completeness, randomization and approximation algorithms; special topics (string matching, computational geometry or number theoretic algorithms).
06N:216 – Data and Decisions (Fall 2008)
Elective course for MBA students. Topics include decision analysis, discrete probability, continuous probability, statistical sampling, simulation modeling, regression models, and linear optimization.
Awards:
Outstanding Teaching Assistant, Spring 2006.