Academics

Computer Science

  • Core Computer Science

 

Core Computer Science Courses

Area

Course Code

Course Name

Prerequisites

CCS

101

Introduction to Computer Science

x x
Fundamentals of computer science are introduced, with emphasis on programming methodology and problem solving. Topics include basic concepts of computer systems, software engineering, algorithm design, programming languages and data abstraction, with applications. A high level language is fully discussed and serves as the vehicle to illustrate many of the concepts. Topics include logical data structures (lists, stacks, queues, trees, etc.). Physical representation of data. Design and analysis of algorithms operating on the structures including internal searching, sorting, recursion, and string processing. The course also covers program specifications, correctness and efficiency, and techniques for program development and debugging. C/C++ is used in this course.
CCS

202

Current Topics in Computer Science

101

x
The study of new and/or advanced topics in an area of computer science not regularly covered in any other CS course. Introduction to the concepts of iteration, asymptotic performance analysis of algorithms, recursion, recurrence relations, string processing, graphs, automata and logic, and also surveys the main data models used in computer science including trees, lists, sets, and relations. Programming assignments are given. Algorithms, programming, debugging; functions and; abstraction and encapsulation. Correctness: specification, testing, and proving. Survey of language features. . The precise topics to be covered, along with prerequisites, are announced in the semester prior to the offering of the course.
CCS

205

Data Structures and Algorithm Design

101

105

A study of advanced programming topics dealing with logical structures of data, their hardware representation, and the design and analysis of computer algorithms operating on the structures. This course concentrates on data structures: primitive types, stacks, queues, arrays, sets, linked lists, trees, and graphs. Also covered are some basic operations using these data structures including sorting, searching and memory management. External sorting, hashing, dynamic storage allocation, file organizations would be included.
CCS

306

Design and Analysis of Programs

205

x
Algorithmic paradigms: divide and conquer, greedy algorithms, dynamic programming, branch and bound. NP-completeness and topics selected from the following: cryptography algorithms, approximation algorithms, randomized algorithms, parallel algorithms, lower bounds. Proofs of program correctness and a survey of mathematical techniques useful in the analysis and verification of programs. Advanced topics in data structures and algorithms, including mathematical induction, analysis and complexity of algorithms, and algorithms involving sequences, sets, and graphs such as searching, sorting, order statistics, sequence comparisons, graph traversals, etc.
CCS

403

Automata, Logic and Formal Languages

205

x
Turing machines; recursive functions; formal languages, theory, grammar; nondeterministic automata, pushdown automata. An introduction to theory of logic, automata and formal grammars. Theoretical models such as finite state machines, push-down stack machines, and Turing machines are developed and related to issues in programming language theory and design of computer systems, languages and algorithms.

A survey of the theoretical bases of computation: computational complexity (including the classes P and NP) and formal models of the semantics of programming languages. . Covers the application of Boolean algebra to design of finite state machines, formal systems, symbolic logic, computability, halting problem, Church's thesis, and the main ideas of the theory of computation. The formal treatment of programming language translation and compiler design concepts.

   [About][Admissions][Academics][Administration][Alumni][Facilities][Students' Life][FAQ]
[What's New][Site Map]
[Home]

1