Computer Science Course Descriptions
Undergraduate
CS 100 Introduction to the Profession I
An introduction to science and engineering as a profession. Examines the problem-solving process used in engineering and science. Emphasizes the interdisciplinary and international nature of problem-solving and the need to evaluate solutions in terms of a variety of constraints: computational, financial, and social. 1-2-2 C» Sample Syllabus
CS 105 Introduction to Computer Programming I
Introduces the use of high-level programming language (C/C++) as a problem-solving tool, including basic data structures and algorithms, structured programming techniques, and software documentation. Designed for students who have had little or no prior experience with computer programming. 2-1-2
CS 115 Object-Oriented Programming I
Introduces the use of a high-level object-oriented programming language as a problem-solving tool, including basic data structures and algorithms, object-oriented programming techniques, and software documentation. Designed for students who have had little or no prior experience with computer programming. For students in CS and CS-related degree programs. 2-1-2» Sample Syllabus
CS 116 Object-Oriented Programming II
Continuation of CS 115. Introduces more advanced elements of object-oriented programming, including dynamic data structures, recursion, searching and sorting, and advanced object-oriented programming techniques. For students in CS and CS-related degree programs. Prerequisite: CS 115. 2-1-2» Sample Syllabus
CS 201 Accelerated Introduction to Computer Science
Problem-solving and design using an object-oriented programming language. Introduces a variety of problem-solving techniques, algorithms, and data Problem-solving and design using an object-oriented programming language. Prerequisite: CS 105 or experience using any programming language. 3-2-4
CS 330 Discrete Structures
Introduction to the use of formal mathematical structures to represent problems and computational processes. Topics covered include Boolean algebra, first-order logic, recursive structures, graphs, and abstract language models. Corequisite: CS 116 or CS 201. Credit will not be granted for both CS 330 and MATH 230. 3-1-3
CS 331 Data Structures and Algorithms
Implementation and application of the essential data structures used in computer science. Analysis of basic sorting and searching algorithms and their relationship to these data structures. Particular emphasis is given to the use of object-oriented design and data abstraction in the creation and application of data structures. Prerequisite: CS 116 or CS 201. 2-2-3
CS 350 Computer Organization and Assembly Language Programming
Introduction to the internal architecture of computer systems-including micro-, mini-, and mainframe computer architectures. Focuses on the relationship among a computer's hardware, its native instruction set, and the implementation of high-level languages on that machine. Uses a set of assembly language programming exercises to explore and analyze a microcomputer architecture. Prerequisite: CS 116 or CS 201. Credit will not be granted for both CS 350 and ECE 242. 2-2-3 (C)
CS 351 Systems Programming
Examines the components of sophisticated multilayer software systems, including device drivers, systems software, applications interfaces, and user interfaces. Explores the design and development of interrupt-driven and event-driven software. Prerequisites: CS 331 and (CS 350 or ECE 242). 2-2-3
CS 397 Special Projects
Prerequisite: Written concent of instructor. (Credit: Variable)
CS 401 Introduction to Advanced Studies I
Significant programming experience in C. This course does not count toward M.S./Ph.D credit in Computer Science CS 200 or CS 201. First course in a two-course sequence that is designed to prepare students for graduate study in computer science. Explores the implementation and application of fundamental data structures and algorithms, with an emphasis on object-oriented programming in C++. Examines the relationship between these elements and the mathematical structures that form the foundation of computer science. Prerequisite: CS 201 or equivalent. 2-2-3
CS 402 Introduction to Advanced Studies II
This course does not count toward M.S./Ph.D credit in Computer Science. Second course in a two-course sequence that is designed to prepare students for graduate study in computer science. Explores the development of the multiple layers of software that form a sophisticated software system, from device drivers to application interfaces to user interfaces. Examines how computer architecture influences software development. Emphasizes the design and implementation of interrupt-driven/event-driven software. Prerequisite: CS 402 or concent of instructor. 2-2-3
CS 411 Computer Graphics
Overview of display devices and applications. Vector graphics in two and three dimensions. Image generation, representation, and manipulation. Homogeneous coordinates. Modeling and hidden line elimination. Introduction to raster graphics. Perspective and parallel projections. Prerequisite: CS 331, CS 401, or CS 403. 3-0-3 (T)
CS 422 Data Mining
This course will provide an introductory look at concepts and techniques in the field of data mining. After covering the introduction and terminologies to Data Mining, the techniques used to explore the large quantities of data for the discovery of meaningful rules and knowledge such as market basket analysis, nearest neighbor, decision trees, and clustering are covered. The students learn the material by implementing different techniques throughout the semester. Prerequisites: CS 331, CS 401, or CS 403 and strong programming knowledge. 3-0-3 (T) (C)
CS 425 Database Organization
Overview of database architectures, including the Relational, Hierarchical, Network, and Object Models. Database interfaces, including the SQL query language. Database design using the Entity-Relationship Model. Issues such as security, integrity, and query optimization. Prerequisite: CS 331, CS 401, or CS 403. 3-0-3 (T) (C)
CS 429 Information Retrieval
Overview of fundamental issues of information retrieval with theoretical foundations. The information-retrieval techniques and theory, covering both effectiveness and run-time performance of information-retrieval systems are covered. The focus is on algorithms and heuristics used to find documents relevant to the user request and to find them fast. The course covers the architecture and components of the search engine such as parser, stemmer, index builder, and query processor. The students learn the material by building a prototype of such a search engine. Prerequisites: CS 331 or CS 401 and strong programming knowledge. 3-0-3 (T) (C)
CS 430 Introduction to Algorithms
Introduction to the design, behavior, and analysis of computer algorithms. Searching, sorting, and combinatorial algorithms are emphasized. Worst case and average bounds on time and space usage. Prerequisites: ((CS 330 or MATH 230) and CS 331) or CS 401 or CS 403. 3-0-3 (T) (C)
CS 440 Programming Languages and Translators
Study of commonly used computer programming languages with an emphasis on precision of definition and facility in use. Scanning, parsing, and introduction to compiler design. Use of compiler generating tools. Prerequisites: (CS 330 and CS 351) or (MATH 230 and CS 351) or CS 401 or CS 403. 3-0-3 (T)
CS 441 Current Topics in Programming Languages
New topics in programming language design such as concepts of concurrent and distributed programming, communicating sequential processes, and functional programing. System development tools and language features for programming. Introduction to programming language semantics. Prerequisite: CS 331, CS 401, or CS 403. 3-0-3
CS 445 Object-Oriented Design and Programming
Introduction to methodologies for object-oriented design and programming. Examines the object model and how it is realized in various object-oriented languages. Focuses on methods for developing and implementing object-oriented systems. Prerequisite: CS 331, CS 401, or CS 403. 3-0-3 (T)
CS 447 Distributed Objects
This course provides an introduction to architecture, analysis, design, and implementation of distributed, multi-tier applications using distributed object technology. The course focuses on the services and facilities provided by an Object Request Broker (ORB). Students will use a commercially available ORB and Database Management System to develop distributed object applications. Prerequisite: CS 445. 3-0-3 (T) (C)
CS 450 Operating Systems
Introduction to operating system concepts-including system organization for uniprocessors and multiprocessors, scheduling algorithms, process management, deadlocks, paging and segmentation, files and protection, and process coordination and communication. Prerequisites: (CS 331 and CS 350) or (CS 331 and ECE 242) or (CS 401 and 402) or CS 403. 3-0-3
CS 455 Data Communications
Introduction to data communication concepts and facilities with an emphasis on protocols and interface specifications. Focuses on the lower four layers of the ISO-OSI reference model. Prerequisite: CS 450. 3-0-3 (T)
CS 458 Information Security
An introduction to the fundamentals of computer and information security. This course focuses on algorithms and techniques used to defend against malicious software. Topics include an introduction to encryption systems, operating system security, database security, network security, system threats, and risk avoidance procedures. Prerequisites: CS 425 and CS 450. 3-0-3 (T) (C)
CS 470 Computer Architecture
Introduction to the functional elements and structures of digital computers. Detailed study of specific machines at the register transfer level illustrates arithmetic, memory, I/O and instruction processing. Prerequisites: (CS 350 or ECE 242) and ECE 218. 2-2-3 (T) (C)
CS 480 Artificial Intelligence: Planning and Control
Introduction to computational methods for intelligent control of autonomous agents, and the use of programming paradigms that support development of flexible and reactive systems. These include heuristic search, knowledge representation, constraint satisfaction, probabilistic reasoning, decision-theoretic control, and sensor interpretation. Particular focus will be places on real-world application of the material. Prerequisite: CS 331, CS 401, or CS 403. Corequisite: MATH 474 or equivalent. 3-0-3 (T)
CS 481 Artificial Intelligence: Language Understanding
Theory and programming paradigms that enable systems to understand human language texts and extract useful information and knowledge. For example, extraction of structured event representations from news stories or discovering new research hypotheses by analyzing thousands of medical research articles. the course covers a variety of text analysis and text mining methods, with an emphasis on building working systems. Connections to information retrieval, data mining, and speech recognition will be discussed. Prerequisites: MATH 474 and (CS 331 or CS 401). 3-0-3 (T)
CS 485 Computers and Society
Discussion of the impact of computer technology on present and future society.Historical development of the computer. Social issues raised by cybernetics. Prerequisites: COM 421 or COM 428. 3-0-3 (C)
CS 487 Software Engineering I
Study of the principles and practices of software engineering. Topics include software quality concepts, process models, software requirements analysis, design methodologies, software testing and software maintenance. Hands-on experience building a software system using the waterfall life cycle model. Students work in teams to develop all life cycle deliverables: requirements document, specification and design documents, system code, test plan, and user manuals. Prerequisites: CS 331 or CS 401. 3-0-3 (C) (T)» Sample Syllabus
CS 491 Undergraduate Research
Prerequisite: Written consent of instructor. (Credit: Variable)
CS 495 Topics in Computer Science
This course will treat a specific topic, varying from semester to semester, in which there is particular student or staff interest. Prerequisite: Instructor concent. (Credit: Variable)
Graduate
CS 511 Topics in Computer Graphics
Covers advanced topics in computer graphics. The exact course contents may change based on recent advances in the area and the instructor teaching it. Possible topics include: Geometric modeling, Subdivision surfaces, Procedural modeling, Warping and morphing, Model reconstruction, Image based rendering, Lighting and appearance,Texturing, Natural phenomena, Nonphotorealistic rendering Particle systems, Character animation, Physically based modeling and animation. Prerequisite: CS 411. 3-0-3
CS 512 Computer Vision
Introduction to fundamental topics in computer vision and the application of statistical estimation techniques to this area. Intended to give the student a good basis for work in this important field. Topics include: Feature extraction, Probabilistic modeling, Camera calibration, Epipolar geometry, Statistical estimation, Model reconstruction, Statistical filtering, Motion estimation, Recognition, Shape from single image cues. Prerequisite: CS 430. 3-0-3» Sample Syllabus
CS 520 Database Design and Engineering
Overview of database architectures, including the Relational, Hierarchical, Network, and Object Models. Database normalization and design. Implementation issues for database management systems, including the processing and parsing of SQL queries, query optimization, integrity, and concurrency control. Distributed and parallel databases and data warehouse issues are addressed. Solid programming skills are required. Implementation of a database management engine prototype is required. No credit is given for both this course and CS 425. Prerequisites: (CS 351 or CS 402) and CS 430. 3-0-3» Sample Syllabus
CS 521 Object-Oriented Analysis and Design
This course describes a methodology that covers a wide range of software engineering techniques used in system analysis, modeling and design. These techniques integrate well with software process management techniques and provide a framework for software engineers to collaborate in the design and development process. The methodology features the integration of concepts, including software reusability, frame works, design patterns, software architecture, software component design, use-case analysis, event-flow analysis, event-message analysis, behavioral-life cycle analysis, feature, multiple-product, risk and rule analysis, and automatic code generation. Prerequisite: CS 425. 3-0-3» Sample Syllabus
CS 522 Advanced Data Mining
Continued exploration of data mining algorithms. More sophisticated algorithms such as support vector machines will be studied in detail. Students will continuously study new contributions to the field. A large project will be required that encourages students to push the limits of existing data mining techniques. Prerequisite: CS 422. 3-0-3» Sample Syllabus
CS 525 Advanced Database Organization
Comprehensive coverage of the problems involved in database system implementation and an in-depth examination of contemporary structures and techniques used in modern database management systems. Teaches advanced skills appropriate for DBMS architects and developers, database specialist, and the designers and developers of client/server and distributed systems. Focus is on transaction management, database structures and distributed processing. Prerequisite: CS 425. 3-0-3» Sample Syllabus
CS 529 Information Retrieval
The course covers the advanced topics in Information Retrieval. The topics such as Summarization, cross-lingual, Meta-Search, Question Answering, Parallel and distributed IR systems are discussed. The students get involved in research ideas, and get involved in individual and group projects. Prerequisite: CS 429. 3-0-3» Sample Syllabus
CS 530 Theory of Computation
Computability topics such as Turing machines, nondeterministic machines, undecidability, and reducibility. Computational complexity topics such as time complexity, NP-completeness and intractability, time and space hierarchy theorems. Introduces the complexity classes P, NP, NL, L, PSPACE, NC, RNC, BPP and their complete problems. Prerequisite: CS 430. 3-0-3
CS 531 Topics in Automata Theory
Topics selected from mathematical systems and automata theory, decision problems, realization and minimization, algebraic decomposition theory and machines in a category. Prerequisite: CS 430. 3-0-3
CS 533 Computational Geometry
This course covers fundamental algorithms and data structures for convex hulls, Voronoi diagrams, Delauney triangulation, Euclidean spanning trees, point location, and range searching. Also included are lower bounds and discrepancy theory. Optimization in geometry will be covered. This includes fixed dimensional linear programming and shortest paths. Graphic data structures such as BSP trees will be covered. Prerequisites: CS 430 and a linear algebra course. 3-0-3» Sample Syllabus
CS 535 Design and Analysis of Algorithms
Design of efficient algorithms for a variety of problems, with mathematical proof of correctness and analysis of time and space requirements. Topics include lower bounds for sorting and medians, amortized analysis of advanced data structures, graph algorithms (strongly connected components, shortest paths, minimum spanning trees, maximum flows and bipartite matching) and NP-Completeness. Prerequisite: CS 430. 3-0-3» Sample Syllabus
CS 536 Science of Programming
Formal specification of how programs execute operational semantics, how mathematical functions programs compute denotational semantics, and how to use logic to characterize properties and invariants of the program execution (axiomatic semantics). Prerequisite: CS 331 or CS 401. 3-0-3» Sample Syllabus
CS 537 Software Metrics
Theoretical foundations for software metrics. Data collection. Experimental design and analysis. Software metric validation. Measuring the software development and maintenance process. Measuring software systems. Support for metrics. Statistical tools. Setting up a measurement program. Application of software measurement. Prerequisite: CS 487. 3-0-3» Sample Syllabus
CS 538 Combinatorial Optimization
Linear programs and their properties. Efficient algorithms for linear programming. Network flows, minimum cost flows, maximum matching, weighted matching, matroids. Prerequisites: CS 430 and a linear algebra course. 3-0-3» Sample Syllabus
CS 540 Foundations of Programming Language Design
The basic motivations and philosophy underlying the applications of semantic techniques in programming language theory. The structures used in semantics and the techniques that have been developed for relating various approaches to the semantics of programming languages. Prerequisite: CS 440. 3-0-3.Note: The former version of this course, Syntactic Analysis of Programming Languages, is no longer being offered.
» Sample Syllabus
CS 541 Topics in Compiler Construction
Advanced topics in compiler construction, including incremental and interactive compiling, error correction, code optimization, models of code generators, etc. The objective of the course is to provide an in-depth coverage of compiler optimization techniques, including both classical optimization and areas of current interest in compiler research. Prerequisite: CS 440. 3-0-3
CS 542 Computer Networks I: Fundamentals
This course focuses on the engineering and analysis of network protocols and architecture in terms of the Internet. Topics include content distribution, peer-to-peer networking, congestion control, unicast and multicast routing, router design, mobility, multimedia networking quality of service, security and policy-based networking. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CS 544 Computer Networks II: Network Services
Qualitative and quantitative analysis of networks. A combination of analytical and experimental analysis techniques will be used to study topics such as protocol delay, end-to-end network response time, intranet models, Internet traffic models, web services availability, and network management. Prerequisite: CS 542 or ECE 545. 3-0-3» Sample Syllabus
CS 545 Distributed Computing Landscape
Introduction to the theory of concurrent programming languages. Topics include formal models of concurrent computation such as process algebras, nets, and actors; high-level concurrent programming languages and their operational semantics; and methods for reasoning about correctness and complexity of concurrent programs. Prerequisite: CS 450. 3-0-3» Sample Syllabus
CS 546 Parallel and Distributed Processing
This course covers general issues of parallel and distributed processing from a user's point of view, which include system; programming, performance evaluation, and application issues of parallel and distributed computers, and the influence of communication and parallelism on algorithm design. Prerequisite: CS 430 and CS 450. 3-0-3
CS 547 Wireless Networking
This course introduces cellular/PCS systems, short-range mobile wireless systems, fixed wireless systems, satellites, and ad hoc wireless systems. It explains in detail the underlying technology as well regulations, politics, and business of these wireless communications systems. It looks beyond the hype, examining just what is and is not possible with present-day and future wireless systems. As an advanced graduate course, it will combine extensive reading and in class discussion of the research literature with in-dept independent research projects of students' own choosing. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CS 548 Broadband Networks
The course studies the architectures, interfaces, protocols, technologies, products and services for broadband (high-speed) multimedia networks. The key principles of the protocols and technologies used for representative network elements and types of broadband network are studied. Specifically, cable modems, Digital Subscriber Lines, Power Lines, wireless 802.16 (WiMax), and broadband cellular Internet are covered for broadband access; for broadband Local Area Networks (LANs), Gigabit Ethernet, Virtual LANs and wireless LANs (802.11 WiFi and Bluetooth) are discussed; for broadband Wide Area Networks (WANs) the topics covered include optical networks (SONET/SDH,DWDM, optical network nodes, optical network nodes, optical switching technologies), frame-relay, ATM, wire-speed routers, IP switching, and MPLS. Also, quality of service issues in broadband networks and a view of the convergence of technologies in broadband networks are covered. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CS 549 Cryptography and Network Security
This course provides an introduction to the theory and practice of cryptography and network security. The course covers conventional encryption such as classical encryption techniques, modern encryption techniques and encryption algorithms. Students are introduced to the basic number theory, which is used as the foundation for public-key encryption. The public-key cryptography such as encryption methods and digital signatures is covered. Message authentication and hash functions are also discussed. Students will learn techniques of key management, secret sharing and conducting interactive proofs. In addition, the practical network and security protocols are discussed. Prerequisite: CS 430. 3-0-3» Sample Syllabus
CS 550 Advanced Operating Systems
Advanced operating system design concepts, such as multimedia OS, multiprocessor systems, virtual memory management, process migration, process scheduling, synchronization, file systems. Study of systems highlighting these concepts. Prerequisite: CS 450. 3-0-3» Sample Syllabus
CS 551 Operating System Design and Implementation
This course covers in detail the design and implementation of processes, interprocess communication, semaphores, monitors, message passing, remote procedure calls, scheduling algorithm, input/output, device drivers, memory management, file system design, network file servers, atomic transactions, security and protection mechanisms. The hardware-software interface is examined in detail. Students modify and extend a multiuser operating system. Prerequisite: CS 450. 3-0-3» Sample Syllabus
CS 552 Distributed Real-Time Systems
With the advancement of computer hardware, embedded devices, and network technology, real-time applications have become pervasive, ranging from smart automobiles to automated traffic control. Different from general-purpose applications, correct executions of real-time applications depend on both functional correctness and temporal correctness. This course is to study the fundamentals of distributed real-time computing with the focus on its temporal aspects. Prerequisite: CS 450. 3-0-3» Sample Syllabus
CS 553 Pervasive Computing
This course will address a new trend in computing, creating a ubiquitous environment that combines processors and sensors with network technologies (wireless & otherwise) and intelligent software to create an immense environment to improve life. The focus is on general issues of middleware and middleware development, which include mobility, context awareness, resource discovery, cyber foraging, agents, QoS, P2P, Web Services, as well as other pervasive and ubiquitous techniques. Prerequisites: CS 450 or (CS 455 and CS 470). 3-0-3» Sample Syllabus
CS 555 Analytic Models and Simulation of Computer Systems
Analytic and simulation techniques for the performance analysis of computer architecture, operating systems and communication networks. Rigorous development of queuing models. Study of simulation languages and models. Prerequisite: CS 450. 3-0-3» Sample Syllabus
CS 560 Computer Science in the Classroom
Preparation and formulation of computer science courses. Detailed weekly materials organized and perfected. The goal being to develop Open Course Ware (OCW). Prerequisite: None. 3-0-3
CS 561 The Computer and Curriculum Content
Emphasis on the presentation concepts. Selecting the best mode of delivery and using the power of the web page to enhance the presentation. Prerequisite: None. 3-0-3
CS 566 Practicum in the Application of Computers to Education
Provides supervised experience in the development of computer-based teaching units. Evaluation of different theoretical and/or technical approaches to use of computer in the classroom. Prerequisite: CS 560 or CS 561. 1-4-3» Sample Syllabus
CS 567 Computer Technology In Education
This course serves as an introduction to computer technology and networks in education. Topics include networking and communication system concepts, network protocols, topologies, local and wide area networks, internetworking, and telecommunications systems with a focus on the special and particular needs of the educational environment. This course also addresses the integration of technology into existing educational infrastructures, addressing the role of the Technology Coordinator in computer technology, computer networks, the Internet, presentation products, multi-media, distance education, archival storage and retrieval, communications, and more. Finally the course will equip educators to create and manage Web pages in an educational environment, covering basic through advanced Web page authoring techniques using both HTML and WYSIWYG authoring software. Students will study, create and refine Web pages online. Credit for this course may not be applied to any degree program in Computer Science except the Master of Science for Teachers (M.S.T) 3-0-3
CS 568 The Internet In Education
This course will address how the Internet is organized; addressing, routing, DNS, and use of all major Internet applications. It covers basic and advanced applications including advanced Web and FTP searches and places particular emphasis on integration of Internet resources with classroom curriculums. Students develop an actual set of lesson plans integrating the Internet into a curriculum. Credit for this course may not be applied to any degree program in Computer Science except the Master of Science for Teachers (M.S.T) 2-2-3
CS 570 Advanced Computer Architecture
Computer system design and architecture such as pipelining and instruction-level parallelism, memory-hierarchy system, interconnection networks, multiprocessors, and clusters of servers. Selected study on current experimental computer systems. Prerequisites: CS 450 and CS 470. 3-0-3» Sample Syllabus
CS 572 Advanced Topics in Computer Architecture
Current problems in computer architecture. Prerequisite: CS 570. 3-0-3
CS 580 Medical Informatics
This course provides an introduction to computer applications in health care with an emphasis on contributions of artificial intelligence and database analysis. Topics will include medical expert systems, medical decision analysis, reasoning under uncertainty, medical tutoring systems, medical language processing, medical record systems, hospital and office information systems, laboratory, pharmacy, radiology and bibliographic information retrieval systems. Presentations and papers or projects will be required. Prerequisites: CS 425 and CS 480. 3-0-3» Sample Syllabus
CS 581 Topics in Artificial Intelligence
Covers various advanced topics in AI, including both theory and practice. Content may vary by instructor. Possible topics include: Planning: STRIPs planning; Partial-order planning; Situation calculus; Theorem proving; GraphPlan/SatPlan; Transformational planning; Simulated annealing; Motion planning; Case-based reasoning; Multi-agent coordination; Negotiation planning; Representation and Reasoning: Logical representation; Frame problem; Probabilistic reasoning; Bayesian networks; Game Playing: Minimax search; Evaluation functions; Learning evaluation functions; Markov Decision Processes; Reinforcement learning for games; Developing AI agents; Multi-agent planning. Prerequisite: CS 480. 3-0-3» Sample Syllabus
CS 582 Computational Robotics
Covers basic algorithms and techniques used in Computational Robotics, to give the student a good basis for work in this highly relevant field. Topics include: Locomotion, Non-visual sensors and algorithms, Uncertainty modeling, data fusion, State space models, Kalman filtering, Visual sensor, Sampling theory, Image features, Depth reconstruction, Multiple view geometry, Ego-motion, Active vision, Reasoning, Spatial decomposition, Geometric representations, Topological representations, Path planning, Spatial uncertainty, Active control, Pose maintenance, Dead reckoning, Correlation-based localization, Sensorial maps, Task planning and task interference, Multi-agent coordination. Prerequisite: CS 430. 3-0-3» Sample Syllabus
CS 583 Expert Systems
Medical expert systems and clinical decision analysis. Decision making under uncertainty. Inference mechanisms for expert systems: production rules, pattern recognition, automatic theorem proving, fuzzy logic. Expert system architecture. Knowledge engineering. Information retrieval. Natural language interfaces. Prerequisite: CS 480. 3-0-3» Sample Syllabus
CS 584 Machine Learning
Covers basic algorithms and techniques used in Machine Learning, to give the student a good basis for work in this highly relevant field. Topics include: Version space learning, Computational learning theory, PAC-learning, VC-dimension, On-line learning, Winnow, Perceptrons, Neural Networks, Backpropagation, Genetic algorithms, Bayesian learning, Experimental design, Decision-tree learning, Covering algorithms for learning rule sets, Minimum description length, Clustering algorithms, Reinforcement learning, Markov decision processes. Prerequisite: CS 480. 3-0-3» Sample Syllabus
CS 585 Natural Language Processing
An introduction to the problems of computing with human languages. Parsing. Semantic representations. Text generation. Lexicography. Discourse. Sublanguage studies. Applications to CAI, database interfaces and information retrieval. Prerequisites: CS 480, Linear algebra, Probability theory. 3-0-3» Sample Syllabus
CS 586 Software Systems Architectures
This course covers the state-of-the-art in architectural design of complex software systems. The course considers commonly-used software system architectures, techniques for designing and implementing these architectures, models and notations for characterizing and reasoning about architectures, and case studies of actual software system architectures. Prerequisite: CS 487. 3-0-3» Sample Syllabus
CS 587 Software Project Management
Concepts of software product and process quality. Role of TQM in software project management. Use of metrics, feasibility studies, cost and effort estimates. Discussion of project planning and scheduling. The project team and leadership issues. The Capability Maturity Model: basic tenets and application of process evaluation. Prerequisite: CS 487. 3-0-3» Sample Syllabus
CS 588 Advanced Software Engineering Development
Software development process improvement is a major objective of this course.This is achieved through a series of individual programming and process projects. Students learn to plan their projects, apply measurements, estimate size, schedule tasks, and classify defects in order to improve the quality of both their development process and their software products. Prerequisite: CS 487. 3-0-3» Sample Syllabus
CS 589 Software Testing and Analysis
Concepts and techniques for testing and analysis of software. Software testing at the unit, subsystem, and system levels. Specification-based testing. Code-based testing. Model-based testing. Methods for test generation and validation. Static and dynamic analysis. Formal methods and verification. Reliability analysis. Prerequisite: CS 487. 3-0-3» Sample Syllabus
CS 590 Seminar in Computer Science
Investigation and discussion by faculty and students concentrated on some topic of current interest. May be taken more than once. Prerequisite: Written instructor concent. 3-0-3
CS 591 Research and Thesis for M.S. Degree
Credit: Variable
CS 595 Topics in Computer Science
This course will treat a specific topic, varying from semester to semester, in which there is a particular student or staff interest. May be taken more than once. Credit: Variable.
CS 597 Reading and Special Problems
May be taken more than once. Prerequisite: Written instructor concent. Credit: Variable
CS 612 Topics in Computer Vision
Covers advanced topics in computer vision to enhance knowledge of students interested in this highly important area. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Image based modeling and rendering, Multiple view geometry, Auto-calibration, Object recognition, Motion analysis, Tracking, Perceptual user interfaces, Face and gesture recognition, Active vision. Prerequisite: CS 512. 3-0-3
CS 630 Advanced Topics in Algorithms
Theoretical analysis of various types of algorithms. Topics vary, and may include approximation, quantum, on-line, distributed, randomized, and parallel algorithms. Prerequisite: CS 430 and instructor consent. 3-0-3
CS 642 Advanced Topics in Networking
Introduction to advanced networking research. A particular focus area will be considered, keeping current with advances in computer networking. Quantitative methods will be emphasized. Prerequisite: CS 542. 3-0-3
CS 653 Pervasive Computing
The course will address a new trend in computing, creating an ubiquitous environment that combines processors and sensors with network technologies (wireless and otherwise) and intelligent software to create an immerse environment to improve life. The focus is on general issues of middlewave and middlewave development, which include mobility, context awareness, resource discovery, cyber foraging, agents, QoS, P2P, web service, as well as other pervasive and ubiquitous techniques. 3-0-3.
CS 681 Topics in Computational Linguistics
Covers various topics in linguistics as they may be applied to various computational problems in AI, NLP, or IR. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Systemic Functional Linguistics, Clausal structure, Group structure, Complex structure, Cognitive Linguistics, Process semantics. Prerequisite: CS 585. 3-0-3
CS 689 Advanced Topics in Software Engineering
Course content is variable and reflects the current trends in software engineering. Prerequisite: Instructor concent. 3-0-3
CS 691 Research and Thesis for Ph.D. Degree
Credit: Variable
CS 695 Doctoral Seminar
Doctoral seminar. 1-0-1
CS 750 Computer Aided Software Engineering
This course presents the state-of-the-art of computer-aided software engineering technologies. CASE encompasses a collection of automated tools and methods that provide automated support to the software specification, design, development,testing, maintenance, and management of large and complex software systems. Students will develop working understanding of CASE methodologies and tools. Prerequisite: CS 487. 2-0-2» Sample Syllabus
CS 763 Automated Software Testing
This course will examine both the state-of-the-art and the state-of-practice in automated software testing on a system level and an unit level. Relevant issues include theoretical foundations of automated testing, automation tools and techniques, empirical studies and industrial experience. Key topics include, but are not limited to: Fundamentals of automated software testing, automated test design, modeling and generation, automated test execution, automated test management, automated test metrics, automated tools, automated feature and regression testing Environments to support cost-effective automated software testing, discussions on the barriers to industrial use of automated testing. Prerequisite: CS 487. 2-0-2» Sample Syllabus
CSP 527 Client-Server Applications Development
Through hands-on experience in developing a client-server database project and developing and managing a client-server Internet project, this course teaches advanced skills for effective design and implementation of client-server applications. Students will examine the architectural and functionality decisions, technologies, configurations, languages, and techniques associated with client-server systems. Active/passive client-server technologies, as well as public, enterprise-wide, and inter-enterprise approaches to decision and operation support are discussed and implemented. Prerequisite: CS 425. 3-0-3» Sample Syllabus
CSP 541 Internet Technologies
This course focuses on the technologies and protocols used by Internet WAN’s and LAN’s. The fundamental architecture, organization, and routing principles of the Internet are described. Part of the course will focus on emerging Internet technologies. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CSP 542 Internet Design and Analysis
This course examines the principles of network design. The design process is studied from requirements gathering to deployment. The student will gain experience in estimating application load, network sizing, component choice, and protocol choice. Internetworking between popular components and protocols will be studied. Analytical and simulation techniques are described and used to design several local and wide-area networks. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CSP 543 Multimedia Networking
This course covers the architectures, protocols, and design issues for multimedia networks. Topics covered include coding, compression, streaming, synchronization, QoS, and adaptation. Current tools for multimedia networking will be surveyed. Issues with multimedia application development will be explored. Students will design and develop multimedia applications. Prerequisites: CS 455 and experience programming in high-level languages. 3-0-3» Sample Syllabus
CSP 544 System and Network Security
This course will present an in-depth examination of topics in data and network security, such as: Access control, authentication, security assessment, network and data security tools, and security policies. A significant hands-on component includes network incidents to detect and fix. Prerequisites: CS 430 and CS 455. 3-0-3» Sample Syllabus
CSP 545 Wireless Networking Technologies and Applications
This course will present the foundation of wireless technologies and examine state-of-the-art wireless systems, services, network technologies, and security. Prerequisite: CS 542. 3-0-3» Sample Syllabus
CSP 550 Internet Programming
This course discusses current fundamental concepts and development techniques for distributed applications. Topics covered include multithreaded programs, sockets, message-passing systems, remote method invocation and procedure calls, peer-to-peer networks, and underlying technologies for internet applications. Prerequisite: CS 455. 3-0-3» Sample Syllabus
CSP 551 Advanced UNIX Programming
This course provides students a hands-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client-server designs, and application portability. Prerequisites: C programming, CS 450 or its equivalent, and user-level knowledge of UNIX. 3-0-3» Sample Syllabus
CSP 581 Applied AI Programming
To learn AI programming algorithms and techniques in Common Lisp. Time is split between Common Lisp topics and discussions of implementation strategies for AI algorithms. Prerequisite: CS 440 or equivalent. 3-0-3» Sample Syllabus
CSP 585 Object-Oriented Design Patterns
This course introduces the principles of design patterns for Object-Oriented software systems. A catalog of design patterns is shown, to illustrate the roles of patterns in designing and contracting complex software systems. The catalog of design patterns also provides a pragmatic reference to a well-engineered set of existing patterns currently in use. Also discussed is the impact of post-object-oriented software development on design patterns. Prerequisite: CS 445. 3-0-3» Sample Syllabus
CSP 586 Software Modeling and Development with UML
Students will obtain a significant exposure to the UML technology. This will include exposure to modeling, model-driven development, executable models, and round-trip engineering. These technologies will be explained at the application level. Prerequisite: CS 487 or CS 445. 3-0-3» Sample Syllabus
CSP 587 Software Quality Management
Students will learn methods of software quality management. This will include exposure to software quality assurance, quality measures, and quality control. These quality management methods will be explained at the applications level. Prerequisite: CS 487 or equivalent. 3-0-3» Sample Syllabus
This Computer Science course bulletin is not in final form and is subject to change without notice. Please contact the Office of the Registrar to confirm course schedules and for additional course information.

