# Course Catalog

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Back to main page

Course code & No. | Course Title | Course Description | Offering Unit |
---|---|---|---|

CS 11 | Computer Programming I | EEEI, DCS | |

CS 12 | Computer Programming II | Advanced programming techniques. Recursion. Abstract data types: stacks, queues, linked structures. Programming interfaces. Introduction to object-oriented programming: classes, inheritance, polymorphism. Event-handling. Exception handling. API programming. | EEEI, DCS |

CS 21 | Computer Organization and Assembly Language Programming | Machine level representation of data. Assembly level machine organization. Assembly/machine language programming. Memory system organization and architecture. Interfacing and communication. Functional organization. Multiprocessing and alternative architectures. | DCS |

CS 22 | Introduction to Computer Organization | Basic logic design; coding; number representation and arithmetic; computer architecture; study of an actual, simple minicomputer or microcomputer system. | DCS |

CS 24 | Operating Systems and Computer Architecture II | concurrent processes; name management; resource allocation; protection; advanced architecture and operating systems implementations. | DCS |

CS 30 | Discrete Mathematics for Computer Science | Combinatorial Structures and their applications to Computer Science | DCS |

CS 32 | Data Structures | Graphs; algorithms design and analysis; algorithms for memory management; design of a simple database management system. | DCS |

CS 32 | Data Structures | Concepts, algorithms and applications of complex data structures: tables, trees, graphs, heaps, generalized lists, multilinked structures. Basic algorithmic techniques and analysis: sorting algorithms, hash tables, binary search trees, balanced trees. | DCS |

CS 70 | Computers and Society | History of computing and technology; the role of computers in modern society; the computer and the individual; survey of computer applications; legal and ethical issues; computers in decision-making processes; the computer scientist as a professional; futurists' views of computing public perception of computers and computer scientists. | DCS |

CS 80 | Special Problems | DCS | |

CS 115 | Advance Communication Electronics | Circuits for digital communications. Phase -locked loops. Clock circuits. Digital modulation and demodulation. A/D converters. Multiplexers. | EEEI |

CS 120 | Internet Technologies | Programmer-oriented survey of contemporary authoring, distributing, browsing, client server and other technologies; role, use and implementation of current Internet tools; security and privacy issues. | DCS |

CS 130 | Mathematical Methods in Computer Science | Vector spaces. Linear transformations. Matrices and determinants. Ordinary differential equations and systems of ordinary differential equations; Fourier series; Laplace transforms. | DCS |

CS 131 | Numerical Methods | Floating point arithmetic; use of mathematical subroutine packages; approximation; numerical integration and differentiation; solution of linear and non-linear equations; solution of ordinary differential equations | DCS |

CS 131 | Numerical Methods | Floating point arithmetic; use of mathematical subroutine packages; approximation; numerical integration and differentiation; solution of linear and non-linear equations; solution of ordinary differential equations | DCS |

CS 133 | Automata Theory and Computability | Finite state automata and regular expressions; context free grammars and pushdown automata. Turing machines, Church's thesis, complexity classes, and undecidability. | DCS |

CS 134 | Computational Complexity | Time complexity; the classes P and NP; NP-completeness; the polynomial hierarchy; space complexity; intractability. | DCS |

CS 135 | Algorithm Design and Analysis | . Algorithm analysis: asymptotic analysis, time and space tradeoffs, recurrence relations. Greedy, divide and conquer, heuristics and other algorithm design strategies. Fundamental computing algorithms for sorting, selection, trees and graphs. Intractability and approximation. | DCS |

CS 137 | Computer Algebra | Arithmetic in basic algebraic domains; the Euclidean algorithm; polynomial greatest common divisors and resultants; polynomial factorization. | DCS |

CS 140 | Operating Systems and Computer Architecture I | Review of some basic computer systems concepts; dynamic procedure activation, including runtime storage allocation,addressing mechanisms and parameter handling; system structures; evaluation of systems; memory management; process management; recovery procedures. | DCS |

CS 140 | Operating Systems | Survey of operating systems. Memory management: virtual memory, segmentation, paging,fetch and replacement policies. Processor and process management: scheduling, concurrency, synchronization and mutual exclusion, deadlock. Device management. Security. File systems: sequential, direct access, and indexed sequential files. Implementation of file organization. files. Implementation of file organization | DCS |

CS 145 | Computer Networks | Network models and layers; terminal and file transfer protocols; message handling protocols; concurrency; network interconnection; distributed computation; overview of networking and communication software. | DCS |

CS 150 | Organization of Programming Languages | Programming language concepts. Data types and structures; control structures and data flow; run-time consideration; interpretive languages; introduction to analytical analysis and parsing. | DCS |

CS 150 | Programming Languages | History and overview of programming languages. Programming paradigms: imperative, functional, object-oriented, logical. Type systems. Data and execution control. Declaration and modularity. Introduction to syntax and semantics. Introduction to language translation. | DCS |

CS 153 | Introduction to Computer Security | Computer Security Models and Protocols. Security Issues. Cryptographic Algorithms and Digital Signatures. Risk Assessment | DCS |

CS 155 | Compiler Construction | Grammar specification, lexical analysis, parsing techniques, semantic analysis, code generation and optimization, runtime storage administration, error detection and recovery. | DCS |

CS 160 | File Processing | Logical and physical file structures. Secondary storage devices. Sequential, direct and indexed files. Single-key and multiple-key retrieval. Data compaction. Implementation of file organizations. | DCS |

CS 165 | Database Systems | Database concepts: data independence,architecture, models, administration, relational algebra and calculus, normalization, structured query language, query optimization, transactions, concurrency, recovery, security.Survey of database management systems. | DCS |

CS 165 | Database Management System Design | Introduction to database concepts; data normalization; data description languages; query facilities; file organization; index organization; file security; data integrity and reliability. | DCS |

CS 171 | Topics in Theoretical Computer Science | DCS | |

CS 172 | Topics in Net-Centric Computing | DCS | |

CS 173 | Topics in Software Technology | DCS | |

CS 174 | Topics in Computer Systems | DCS | |

CS 175 | Topics in Computational Science | DCS | |

CS 176 | Topics in Intelligent Systems | DCS | |

CS 180 | Artificial Intelligence | Fundamental principles of artificial intelligence. Search methods. Knowledge representation and reasoning. Agents. Machine learning and neural works. Current research applications. | DCS |

CS 180 | Artificial Intelligence | Means and uses of knowledge representation in heuristic problem solving; search strategies and control; introduction to natural language processing; selected studies on communication and perception; current research and applications. | DCS, DCS |

CS 191 | Software Engineering I | Principles of Software Engg. Software Project Management. Requirements Engineering. Systems Analysis and Design. | DCS |

CS 192 | Software Engineering II | Software architecture and design patterns; software quality assurance; software implementation and maintenance. | DCS |

CS 194 | Undergraduate Research Seminar | DCS | |

CS 195 | Practicum | DCS | |

CS 195 | Practicum | DCS | |

CS 196 | Seminar on Ethical and Professional Issues in Computing | DCS | |

CS 197 | Special Topics | DCS | |

CS 198 | Special Problems | DCS | |

CS 198 | Special Problems I | DCS | |

CS 199 | Special Problems II | DCS | |

CS 200 | Undergraduate Thesis | DCS | |

CS 204 | Theory of Computation | Formal models of computation; recursive function theory; undecidability. Resourcebounded computational complexity, non-determinism, NPcompleteness. | DCS, DCS |

CS 208 | Complexity Theory | Computational models, measures of complexity, complexity classes: nondeterministic, alternating, probabilistic, parallel. Boolean circuits. Complete problems. | DCS |

CS 210 | Advanced Algorithms and Data Structures | Advanced data structures; algorithm design techniques; mathematical techniques in the analysis of algorithms. | DCS |

CS 211 | Combinatorial Optimization | Design and analysis of algorithms for combinatorial optimization problems, worst-case complexity, NP- Completeness proofs, euristics. Open problems. | DCS |

CS 213 | Communication Theory | Mathematical theory of communication. Information Theory, Communication Channels. Coding. Cryptography. | DCS |

CS 214 | Parallel Algorithms | Models of parallel computation. Performance measures, scalability, pipelining, techniques for analyzing parallel algorithms. Interconnection network topologies. Applications. | DCS |

CS 216 | Randomized Algorithms | Construction and analysis of randomized algorithms. Expected performance of randomized algorithms, fundamental limitations on probabilistic computations, complexity issues, applications. | DCS |

CS 220 | Survey Of Programming Languages | Comparative study of different types of modern programming languages; imperative, functional, logic-based and object-oriented. Syntax, semantics and implementation of programming languages. | DCS |

CS 222 | Programming Language Theory | Fundamental concepts underlying all programming languages. Semantic aspects including binding times, visibility, retention, storage management, abstraction mechanisms and extensibility. Operational and denotational semantic specifications. | DCS |

CS 225 | Compiler Design and Construction | Theory of compiler design and construction: techniques in error correction and recovery; code generation and optimization. | DCS |

CS 231 | Numerical Computing | Algorithm design for numerical computation. Error analysis. Performance evaluation of numerical software. | DCS |

CS 233 | Probabilistic Methods in Computer Science | Random combinatorial structures and their applications to computer science. | DCS |

CS 236 | Scientific Computing | Problems and methods in scientific computing. Applications from science and engineering. | DCS |

CS 237 | Biomedical Informatics | Computational methods for managing and analyzing information about biomedical systems. Standards and tools in biomedical informatics. | DCS |

CS 239 | Parallel Computing | Parallel computer architectures. Programming for parallel architectures. Representation, program dependence, control structures. | DCS |

CS 240 | Computer Graphics | Solid modeling: Euler operators, finite element methods. Rendering: filling, shading, ray tracing. Natural modeling: L-systems, fractals. Image processing: filtering, antialiasing, enhancement. | DCS |

CS 242 | Data Visualization | Visualization techniques for data from science, business, social science, demographics, and information management. | DCS |

CS 245 | Network Optimization | Algorithms for network optimization problems; shortest paths, maximum flows, minimum-cost flows, multicommodity flows, dynamic flows, minimum cuts, matching, and assignment problem | DCS |

CS 247 | Cryptography | Primality testing, finite fields, elliptic curves. Protocols: public key cryptography, digital signatures, zero knowledge proofs, and other cryptographic protocols. | DCS |

CS 248 | Computational Mathematics | Overview of computational mathematics. Algorithms for computing with algebraic structures. Computer algebra systems. | DCS |

CS 250 | Advanced Operating Systems | Synchronization and communication mechanisms, virtual memory management,file systems, deadlock control, resource allocation, protection and access control. Case study of specialized systemsother cryptographic protocols. | DCS |

CS 252 | Advanced Computer Architecture | DCS | |

CS 253 | Computer Security | Encryption, digital signatures,authentication, key management. Secure electronic commerce. Network Security. File security. | DCS |

CS 255 | Advanced Computer Networks | The OSI Reference Model and layers. Distributed computing. Networked multimedia systems. Clint-server computing. Communication and internet working. | DCS |

CS 255 | Computer Networks | OSI Reference Model and layers; protocols and services; local and wide area networks; internet working; specific implementations. | DCS |

CS 256 | Computer Systems Performance Analysis | Overview of performance evaluation. Measurement techniques and tools. Applications of probability theory and techniques. Experimental design and analysis. Simulation and queuing models | DCS |

CS 257 | Distributed Systems | Computer communications networks and their protocols. Event ordering and synchronization. Deadlocks. Network operating systems and languages for distributed computing. Distributed databases. Fault tolerance and recovery strategies. Applications. | DCS |

CS 258 | Mobile Computing | Mobile computing systems. Data management, packet transmission, mobile IP, routing protocols, reliability and issues in mobile wireless networks. | DCS |

CS 259 | Network Performance, Modeling and Monitoring | Network performance evaluation. Measurement techniques and tools. Simulation, queuing models, case studies, practicals. | DCS |

CS 260 | Advanced Software Engineering | Structured approach to requirements analysis, system design, implementation and maintenance of software systems. Formal description and documentation techniques. | DCS |

CS 262 | Methods of Software Development | Modern approaches to software development. Prototyping and automated tools. Computer Aided Systems Engineering (CASE) methods and tools. Object-oriented Programming Systems (OOPS). | DCS |

CS 265 | Software Quality Assurance | Quality Management, Quality Assurance, Quality Control. Measurement and Analysis. Maturity Model. | DCS |

CS 266 | IT Project Management | Detailed discussions of project management knowledge areas and processes. Case studies. Simulations and walk through of real-world IT projects from initiation and planning to evaluation and closing. | DCS |

CS 267 | Software Engineering for the Web | Software process and requirements analysis, design, development and testing for web-based systems, software development tools, configuration management systems, case studies. | DCS |

CS 268 | Web Science | The Web as a full communications medium that fosters full collaboration, social interaction, and commerce. Case studies. | DCS |

CS 270 | Advanced Database Systems | Data models and their underlying mathematical foundations; database manipulation and query languages; functional dependencies; physical data organization and indexing methods; concurrency control; crash recovery; database security; distributed databases. | DCS |

CS 271 | Database Theory | Data models and their underlying mathematical foundations; database manipulation and query languages; functional dependencies; physical data organization and indexing methods; concurrency control; crash recovery; database security; distributed databases. | DCS |

CS 280 | Intelligent Systems | Fundamental issues in Intelligent Systems. Intelligent search and optimization methods. Knowledge representation and reasoning. Learning, natural language understanding, pattern recognition, knowledge-based systems and other methods in intelligent Systems. | DCS |

CS 280.0 | Artificial Intelligence | Fundamental issues in Intelligent Systems. Intelligent search and optimization methods. Knowledge representation and reasoning. Learning, natural language understanding, pattern recognition, knowledge-based systems and other methods in intelligent Systems. | DCS |

CS 281 | Robotic Systems | Biologically-motivated robotic systems. Reactive, deliberative, and hybrid architectures. Knowledge representation for robotics systems. Sensor fusion and perceptual strategies. Adaptation and social behavior. Knowledge representation and reasoning. Learning, natural language understanding, pattern recognition, knowledge-based systems and other methods in intelligent Systems. | DCS |

CS 282 | Computer Vision | Image formation; early vision; segmentation from texture and motion; object representation; matching and inference; knowledge-based vision. | DCS |

CS 283 | Data Mining | Decision trees, association rules, clustering. Intrusion detection. Design and use of serial, distributed and parallel data mining algorithms. | DCS |

CS 284 | Machine Learning | Pattern recognition, parametric and nonparametric learning, decision trees, Bayesian and neural networks, reinforcement learning, genetic algorithms, computational learning theory. | DCS |

CS 286 | Natural Language Understanding | Computational properties of natural languages. Morphological, syntactic and semantic processing from an algorithmic perspective. Models of acquisition and parsing. | DCS |

CS 287 | Speech Processing | Models of speech processing, speech recognition and synthesis. Speech recognition systems. Text-to-speech systems. Applications. | DCS |

CS 289 | Digital Image Processing | DCS | |

CS 290 | Advanced Topics in Theoretical Computer Science | DCS | |

CS 291 | Advanced Topics in Net-Centric Computing | DCS | |

CS 292 | Advanced Topics in Software Technology | DCS | |

CS 293 | Advanced Topics in Computer Systems | DCS | |

CS 294 | Advanced Topics in Computational Science | DCS | |

CS 295 | Advanced Topics in Intelligent Systems | DCS | |

CS 296 | Seminar | DCS | |

CS 297 | Special Topics | DCS | |

CS 298 | Special Problem | DCS | |

CS 300 | Thesis | DCS | |

CS 301 | Communication Complexity | DCS | |

CS 315 | Algorithms in Bioinformatics | DCS | |

CS 318 | Approximation Algorithms | DCS | |

CS 334 | Computational Systems Biology | DCS | |

CS 338 | Computational Models of Biological Processes | DCS | |

CS 341 | Knowledge Engineering | DCS | |

CS 351 | Pervasive Computing and Communication | DCS | |

CS 360 | Formal Methods | DCS | |

CS 369 | The Semantic Web | DCS | |

CS 371 | Security Engineering | DCS | |

CS 380 | Computational Intellingence 1 | DCS | |

CS 381 | Computational Intellingence 2 | DCS | |

CS 385 | Artificial Neural Networks | DCS | |

CS 389 | Digital Image Processing | DCS | |

CS 390 | Independent Study | DCS | |

CS 397 | Special Topics | DCS | |

CS 400 | Dissertation | DCS |