Courses Taught or being Taught:
CIS*2430 Object Oriented Programming
CIS*2910 Discrete Structures in Computing II
CIS*3530 Data Base Systems and Concepts
CIS*3700 Introduction to Artificial Intelligence
CIS*4430 Information Organization and Retrieval
CIS*4650 Compilers
CIS*6650 Special Topics in Statistical Natural Language Processing
CIS*6650 Special Topics in Experimental Design
This is an introductory course on Object-Oriented Programming (OOP). It assumes that students
already know the basics of a procedural programming language such as C and can write
computer programs independently either through previous courses or working experience. It is
also desirable that students have some basic understanding of simple data structures such as
arrays, linked lists, and hash tables. The course focuses on the fundamental concepts and
techniques of object-oriented programming along with suitable applications. Students will
have ample opportunites to improve their development skills with Java programming language
through assignments and lab exercises.
Back to top
This course is a further introduction to discrete structures and formal methodologies
used in Computer Science, including sequences, summations, recursion, combinatorics,
discrete probability, and graph theory. It is a subsequent course to CIS*1910 and
is often taken together with CIS*2520. The three together help lay a solid mathematical
foundation so that the students can understand the related concepts and theories
in other computer science courses in depths.
Back to top
Review of data organization and data management principles with the
perspective of analyzing apllications suitable for implementation
using a DBMS. Analysis of several data base models, query specification
methods, and query processing techniques. Overview of several related
issues including concurrency control, security, integrity and recovery.
Students are expected to demonstrate concepts through project
assignments.
Back to top
Examination of techniques used in the field of artificial intelligence,
including heuristic search, A* algorithms, game searches, logic-based
knowledge representation. Other topics may include frames, scripts,
semantic nets, models of uncertain reasoning, expert systems, and natural
language understanding. These ideas will be explored through the
development of a substantial project.
Back to top
Advanced techniques for information management. Analysis of advanced
indexing structures. Information retrieval, feedback strategies,
text searchings, and automatic indexing. Database query optimization
and system support. Web-based retrieval.
Back to top
Detailed study of the compilation process. Design and implementation
of a compiler considering techniques for parsing, building, and
manipulating intermediate representations of a program and code
generation. Interpreters.
Back to top
Statistical language modeling is an interdisciplinary area among
Probability and Statistics, Information Theory, Linguistics, and
Computer Science. This course will provide an introduction to this
emerging filed, with emphasis on major techniques and applications.
Students are required to review the literature and implement a
particular technique with a suitable application.
Back to top
This course provides students with an understanding of the design and analysis
for experiments and how these skills relate to research in computer science in general
and their areas of study in specific. Basic knowledge of probabilities and statistics
at un undergraduate level should be helpful, although not necessarily required, since we
will also review and introduce essential concepts and techniques for applied statistics
in this course.
Back to top