INSTRUCTIONAL SOFTWARE DESIGN AND DEVELOPMENT
An advanced course that deals with the different stages in courseware development and current studies about IT in the classroom, local and international. Students are required to produce individually authored educational packages using any of the authoring tools used by the department.
A course on color theory, image design and processing, video production and interactive presentations. Students are required to produce an individual portfolio containing various images and video created during the semester. Students are required to report on current issues in multimedia development such as synchronization and compression.
HUMAN COMPUTER INTERACTION
A course on the basic elements that contribute to successful user interface design and implementation. Topics include interdisciplinary nature of human-computer interaction (HCI), approaches and future trends in HCI research, design guidelines and principles, and usability evaluation.
3D ANIMATION AND MODELING
Pre-requisite: CS 216
A course on computer graphics and 3D modeling animation.
LEARNING THEORY AND INSTRUCTIONAL SOFTWARE DESIGN
A study of the relationship between psychology of learning and the construction and use of computer-based learning aids. The computer is regarded as a learning device that may be used to model learning theories associated with behaviorism, constructivism, human information processing, and so on.
INTRODUCTION TO SOFTWARE ENGINEERING
An overview of the software engineering process. Topics include requirement analysis, analysis modeling, software design fundamentals, software testing, software maintenance, and object-oriented software engineering.
Pre-requisite: CS 122
An introduction to advanced concepts and topics in database systems which are currently being implemented in the industry. Various DMBSs which develop database application are used including object-oriented databases, datawarehousing, client-server concepts and database administration.
ADVANCED SYSTEMS ANALYSIS AND DESIGN
A course on the fundamentals of systems development providing students with specific activities, tools, techniques, and methods in developing information systems.
THEORY OF ALGORITHMS
A course on the fundamental techniques used to design and analyze efficient algorithms, including greedy algorithms, divide-and-conquer algorithms, dynamic programming, graph algorithms, probabilistic algorithms, and parallel algorithms.
THEORY OF AUTOMATA AND FORMAL LANGUAGES
An introduction to formal methods of computing and their relation to formal languages. Topics include lexical analysis, parsing, finite state machines, formal grammars, context-free grammars, pushdown automata and Turing machines.
A discussion on models of computation and complexity classes. Topics include computability, polynomial solvability, NP-completeness, and approximability of problems.
COMPILER DESIGN AND THEORY
A discussion on various compiling techniques, theory, and practical application of the concepts in compiler design. Topics include lexical analyzers, parsing techniques, symbol table management, code generator, code optimization, and run-time environments.
A course on advanced computer architectures and the principles of their design. Topics include multiprocessor systems, parallel computer models, pipeline processors, SIMD and MIMD processors, interconnection networks, modeling and performance evaluation. Recent research papers related to the latest technologies are used as supplementary materials.
An introduction to the techniques used to implement operating systems specifically NT and UNIX. Topics include process management, processor scheduling, deadlocks, main-memory management, control of disks and other input-output devices, file systems structure, and implementation and protection security.
Pre-requisite: CS 150/160, CS 161 or equivalent
An in-depth view of computer and communication networks. Topics include data communications concepts, protocol architectures, communication architectures, local area networks, wide area networks, network applications, and a survey of the latest networking technologies and issues.
Pre-requisite CS 262
A course on issues in the design and analysis of communication networks and systems in terms of physical implementation, protocols, routing, management, software interfaces and applications. Focus is on high-speed LAN, WAN, and telecommunication network technologies and on network design and integration issues.
A course on building computer-based simulations for use in educational or industry settings. Students perform detailed analyses of real-world systems -whether physical biological, or social- and design models representing these systems as well as implement these using simulation software.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE
An introduction to the basic principles, techniques, and applications of artificial intelligence.
PROGRAMMING LANGUAGES AND PARADIGMS
An in-depth study of current and historical issues in the design implementation and application of programming languages. Topics vary from basic to advanced in areas such as syntax, semantics, binding, data abstraction, exception handling, concurrency, and functional, logic and object-oriented programming.
METHODS OF RESEARCH
A preparation for graduate level research. Students conduct research in at least two research areas department is involved in, e.g., Networks, Multimedia and CAI, MIS Theory. Students produce a project proposal, and a final paper including a classroom defense.
ADVANCED TOPICS IN COMPUTER SCIENCE
Seminar on topics related to developments in the different sub-fields of computer science. Students are required to do research on these topics and present papers. Lecturers from the industry sector are invited to shed light on current advances in the field
METHODS OF TEACHING COMPUTER SCIENCE
Students teach at least six units (2 courses or sections) worth of CS courses while being overseen and evaluated by a senior faculty member.
CS 300 B
This course prepares the student for thesis defense. At the end of the semester, the student should be able to produce and defend a thesis paper.
ADVANCED RESEARCH METHODS I
A discussion on advanced qualitative and quantitative research methods. Topics include various stages of research, specifically the identification of the research problem, review of related literature, design of a research methodology and interpretation of results.
ADVANCED RESEARCH METHODS II
A course on the formalism involved in the preparation of the research proposal and the final dissertation report. Procedures for the defense of both documents are discussed.
SEMINAR IN COMPUTER SCIENCE THEORY
A discussion on computer science theory. Topics include algorithms over graph, compiler design, computability, computational complexity, computational biology and others.
SEMINAR IN HIGH PERFORMANCE COMPUTING AND COMPUTATIONAL SCIENCE
A discussion of research on parallel computing, parallel architecture and volunteer computing. The use of these technologies to address computationally intensive problems are also explored.
CS 390 A
The student will undertake independent research in Computer Science under the guidance of a mentor. The research must be of sufficient depth and quality as to merit international publication. At the end of the semester, the student should be able to defend topics in areas of specialization including the paper as part of the dissertation proposal defense.
CS 390 B
The students continue to undertake independent research in Computer Science under the guidance of a mentor. The research must be of sufficient depth and quality as to merit international publication. At the end of the semester, the student should be able to produce, submit and defend the dissertation.