Teaching

I have taught the following courses:

ICS211: Introduction to Computer Science II
Algorithms and their complexity, introduction to software engineering, data structures, searching and sorting algorithms, numerical errors. (Programming language: Java)

Semesters (2): Fall 2012, Spring 2013.


As a Teaching Assistant, I have assisted with the following courses:

ICS111: Introduction to Computer Science I
Overview of computer science, writing programs. (Programming language: Java)

Semesters (9): Fall 2007 (001, 002), Spring 2008, Fall 2008, Spring 2009, Fall 2009, Spring 2010, Fall 2010, Spring 2011, Fall 2011.

ICS211: Introduction to Computer Science II
Algorithms and their complexity, introduction to software engineering, data structures, searching and sorting algorithms, numerical errors. (Programming language: Java)

Semesters (4): Fall 2003 (001, 003), Fall 2004, Spring 2005, Fall 2006 (001, 002).

ICS212: Program Structure
Program organization paradigms, programming environments, implementation of a module from specifications. (Programming languages: C, C++)

Semesters (4): Spring 2004, Fall 2005, Spring 2006, Spring 2012.

ICS312: Machine-Level and Systems Programming
Machine organization, machine instructions, addressing modes, assembler language, subroutine linkage, linking to higher-level languages, interface to operating systems, introduction to assemblers, loaders and compilers. Grammars, regular expressions, finite automata. (Programming language: MASM assembler)

Semesters (2): Spring 2006, Spring 2007.

ICS313: Programming Language Theory
Syntax, semantics, control structures, variable binding and scopes, data and control abstractions. Programming in functional and logic programming styles. (Programming languages: Common Lisp, Prolog, Perl)

Semesters (2): Fall 2002, Spring 2012.

ICS321: Data Storage and Retrieval
Data storage devices, timing and capacity, programming for files, hashed and indexed files, introduction to relational database systems. (Oracle DB)

Semesters (1): Spring 2003.

ICS461: Artificial Intelligence
Survey of artificial intelligence: natural language processing, vision and robotics, expert systems. Emphasis on fundamental concepts: search, planning, and problem solving, logic, knowledge representation.

Semesters (1): Fall 2011.

Home