- 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.