Courses Archive 2003 - 2005
Computer & Information Sciences (C+IN SC)
Students must have at least a "C" in the major prerequisite course, in order to continue on to the next major course. Which Programming Course should a student take? Non-majors with no prior experience in programming in a high-level language (for example, Pascal, C, C++, Fortran, Java) should take C+IN SC 1057 (C071) (Programming in C). Non-majors with prior experience in programming should take C+IN SC 1068 (0067) or 1073 (C081) unless they are specifically interested in learning the C programming language in which case they should take C+IN SC 1057 (C071). Majors in Computer & Information Sciences should begin with C+IN SC 1068 (0067), which is an introduction to object-oriented programming in Java. Although no programming background is assumed, most students in the class have taken a prior course in programming. Consequently, Computer & Information Sciences majors with no prior experience in programming in a high-level language (for example, Pascal, C, C++, Fortran, Java) should consider taking C+IN SC 1057 (C071) before taking C+IN SC 1068 (0067). C+IN SC 1057 (C071) cannot be taken for credit after completing C+IN SC 1068 (0067). Majors in Information Science & Technology should begin with C+IN SC 1073 (C081) regardless of programming background.
0500.
Discrete Structures Of Computer Science (540)
Prerequisite: CIS 66 and Math 86 [Graduate credit will not apply for CIS MS/PHD Programs.]
Graduate credit will not apply for CIS MS/PHD Programs.]Concepts, techniques, results and applications of discrete structures particularly fundamental to computer science are studied. Topics include: sets, relations and their closures, equivalence relations and partitions. Functions, cardinality, permutation. Trees, graphs, planarity, algorithms on graphs and their analysis. Big-O notation. Boolean Algebra and switching functions. Finite state machines and their minimization's. Algebraic structures, semigroups, groups, cosets, Chinese Remainder Theorem. Applications to error-correcting codes and speed of computation.Concepts, techniques, results and applications of discrete structures particularly fundamental to computer science are studied. Topics include: sets, relations and their closures, equivalence relations and partitions. Functions, cardinality, permutation. Trees, graphs, planarity, algorithms on graphs and their analysis. Big-O notation. Boolean Algebra and switching functions. Finite state machines and their minimization's. Algebraic structures, semigroups, groups, cosets, Chinese Remainder Theorem. Applications to error-correcting codes and speed of computation.
0501.
Programming And Data Structures (542)
Prerequisite: CIS 67 or equivalent.
[Graduate credit will not apply for CIS MS/PHD Programs.]Consideration of logical and physical structure of both programs and data. Topics include arrays, lists, trees, searching, sorting, file management, and their application to problem solving. Students will be expected to complete a variety of computer programs in a high-level language.Consideration of logical and physical structure of both programs and data. Topics include arrays, lists, trees, searching, sorting, file management, and their application to problem solving. Students will be expected to complete a variety of computer programs in a high-level language.
0502.
Systems Software And Operating Systems (544)
Prerequisite: CIS 68 (or CIS 501) and CIS 72.
[Graduate credit will not apply for CIS MS/PHD Programs.]Systems software: compilers and assemblers, module linkers, library systems, system utilities and operating system services. Operating systems: fundamental concepts including processes, file systems, CPU scheduling, memory management and virtual memory, deadlocks and concurrency. The influence of computer architecture on these issues is also discussed.Systems software: compilers and assemblers, module linkers, library systems, system utilities and operating system services. Operating systems: fundamental concepts including processes, file systems, CPU scheduling, memory management and virtual memory, deadlocks and concurrency. The influence of computer architecture on these issues is also discussed.
0510.
Automata And Formal Languages (573)
(3 s.h)
Prerequisite: CIS 166 and CIS 242
Types of grammars. Finite automata and regular languages. Kleene's Theorem. Closure properties and decidable problems of regular languages. Derivation trees. Normal forms of context free grammar. The self-embedding properties, closure properties and decidable problems of context free languages. Methods of syntax analysis for context free languages. Context sensitive languages and linear bounded automata. Turing machines.Types of grammars. Finite automata and regular languages. Kleene's Theorem. Closure properties and decidable problems of regular languages. Derivation trees. Normal forms of context free grammar. The self-embedding properties, closure properties and decidable problems of context free languages. Methods of syntax analysis for context free languages. Context sensitive languages and linear bounded automata. Turing machines.
0511.
Programming Techniques (0551)
(3 s.h)
Prerequisite: CIS 68 and CIS 223
A more formalized view of data structures. Stacks, trees, tables, lists, multilinked structures, strings and files are considered. These are viewed in terms of their general usefulness in the construction of algorithms and in their efficient implementation. Both theoretical results and programming techniques will be stressed.A more formalized view of data structures. Stacks, trees, tables, lists, multilinked structures, strings and files are considered. These are viewed in terms of their general usefulness in the construction of algorithms and in their efficient implementation. Both theoretical results and programming techniques will be stressed.
0512.
Operating Systems (561)
(3 s.h)
Prerequisite: CIS 72 and CIS 207
Basic principles of operating systems; multi-tasking systems; control and coordination of tasks; deadlocks; synchronization, mutual exclusion, sharing; memory management, virtual memories, segmentation, paging; protection; file systems; resource management; evaluation and prediction of performance; design and implementation of operating systems in high level languages.Basic principles of operating systems; multi-tasking systems; control and coordination of tasks; deadlocks; synchronization, mutual exclusion, sharing; memory management, virtual memories, segmentation, paging; protection; file systems; resource management; evaluation and prediction of performance; design and implementation of operating systems in high level languages.
0525.
Neural Computation
(3 s.h)
Prerequisite: Stat 503 or (511 and undergraduate level understanding of probability, statistics, and linear algebra)
Neural networks provide powerful techniques to model and control nonlinear and complex systems. The course is designed to provide an introduction to this interdisciplinary topic. The course is structured such that students from computer science, engineering, physics, mathematics, statistics, cognitive sciences and elsewhere learn the main principles of this area as well as to have an opportunity to explore promising research topics by a hands-on experience with neural network simulators applied to classification and prediction problems ranging from bio-medical sciences to finance and business
0526.
Machine Learning
(3 s.h)
Prerequisite: Stat 503 or (511 and undergraduate level understanding of probability, statistics, and linear algebra)
The goal of the field of machine learning is to build computer systems that learn from experience and that are capable to adapt to their environments. This introductory machine learning course will give an overview of many techniques and algorithms in machine learning, beginning with topics such as simple concept learning and ending up with more recent topics such as boosting, support vector machines, and reinforcement learning. The objective of the course is not only to present the modern machine learning methods but also to give the basic intuitions behind the methods as well as a more formal understanding of how and why they work.The goal of the field of machine learning is to build computer systems that learn from experience and that are capable to adapt to their environments. This introductory machine learning course will give an overview of many techniques and algorithms in machine learning, beginning with topics such as simple concept learning and ending up with more recent topics such as boosting, support vector machines, and reinforcement learning. The objective of the course is not only to present the modern machine learning methods but also to give the basic intuitions behind the methods as well as a more formal understanding of how and why they work.
0527.
Data Warehousing, Filtering And Mining
(3 s.h)
Prerequisite: CIS 511 and an undergraduate course in databases
The course is devoted to information system environments enabling efficient indexing and advanced analyses of current and historical data for strategic use in decision making. Data management will be discussed in the content of data warehouses/data marts; Internet databases; Geographic Information Systems, mobile databases, temporal and sequence databases. Constructs aimed at an efficient online analytic processing (OLAP) and these developed for nontrivial exploratory analysis of current and historical data at such data sources will be discussed in details. The theory will be complemented by hands-on applied studies on problems in financial engineering, e-commerce, geo-sciences, bioinformatics and elsewhere.The course is devoted to information system environments enabling efficient indexing and advanced analyses of current and historical data for strategic use in decision making. Data management will be discussed in the content of data warehouses/data marts; Internet databases; Geographic Information Systems, mobile databases, temporal and sequence databases. Constructs aimed at an efficient online analytic processing (OLAP) and these developed for nontrivial exploratory analysis of current and historical data at such data sources will be discussed in details. The theory will be complemented by hands-on applied studies on problems in financial engineering, e-commerce, geo-sciences, bioinformatics and elsewhere.
0595.
Topics In Computer Science
(3 s.h)
Prerequisite: Special authorization required
Current topics and issues in Computer Sciences.
0598.
Independent Study
(1-6 s.h)
Prerequisite: Permission of instructor
Independent research supervised by a computer and information sciences faculty.
0600.
User Interface Design And Systems Integration (578)
(3 s.h)
Prerequisite: CIS 511
This course focuses on the principles of usability engineering to design effective interfaces and as the basis for integrating existing systems to form new systems. The course builds upon knowledge of networking, databases, and programming. The course outline is partly based on the recommendations of the ACM Special Interest Group on Computer-Human Interaction for an introductory graduate course on user interface design.
0601.
Computer Graphics And Image Processing (581)
(3 s.h)
Prerequisite: CIS 511
An analysis of techniques used in computer manipulation of two and three-dimensional images. Although elements of computer graphics are covered (e.g., two and three-dimensional transforms), the main focus is on image processing techniques. We will also gain insights on basic techniques in computer vision. Topics covered include image filters, image segmentation, similarity of images, object detection, object recognition, and shape representation and similarity.
Nowadays it is an easy task to transfer visual input of a camera to computer's memory. However, image and video understanding belong still to unsolved problems of computer science. The main objective of the course is to convey basic intuitions behind the unsolved and solved problems, and to introduce some of the techniques that provided solutions to some of the problems.
0602.
Human Factors And Engineering Systems (642)
(3 s.h)
Prerequisite: CIS 511
Course studies the human factor within information systems development. Sample topics include: design of empirical studies; cognitive task analysis; user interface design, usability evaluations.Course studies the human factor within information systems development. Sample topics include: design of empirical studies; cognitive task analysis; user interface design, usability evaluations.
0603.
Artificial Intelligence (587)
(3 s.h)
Prerequisite: CIS 511 or equivalent
This course covers fundamental and advanced topics in Artificial Intelligence including: Search: uninformed search, heuristic search, game search. Planning: deterministic planning, STRIPS planning, nonlinear planning. Theorem proving: propositional calculus, first order logic, inference with clauses, resolution. Heuristics for NP hard problems: optimizations, simulated annealing, genetic algorithms. Knowledge Representation: inference rules, semantics, semantic nets, frame-based. Probabilistic inference: uncertainty, Bayesian inference, Bayesian networks, HMMs, planning in stochastic domains. Learning: Concept learning, PAC learning, inductive learning, decision trees, neural networks. Programming languages for AI and other topics such as: Robotics, Computer vision, Data Mining.This course covers fundamental and advanced topics in Artificial Intelligence including: Search: uninformed search, heuristic search, game search. Planning: deterministic planning, STRIPS planning, nonlinear planning. Theorem proving: propositional calculus, first order logic, inference with clauses, resolution. Heuristics for NP hard problems: optimizations, simulated annealing, genetic algorithms. Knowledge Representation: inference rules, semantics, semantic nets, frame-based. Probabilistic inference: uncertainty, Bayesian inference, Bayesian networks, HMMs, planning in stochastic domains. Learning: Concept learning, PAC learning, inductive learning, decision trees, neural networks. Programming languages for AI and other topics such as: Robotics, Computer vision, Data Mining.
0615.
Design And Analysis Of Algorithms (673)
(3 s.h)
Prerequisite: CIS 510 and 511
General techniques for developing algorithms. Divide and conquer Greedy dynamic programming. Search and traverse. Backtracking. Branch and Bound. Some theoretical results will be discussed, for example those relating to NP - completeness.General techniques for developing algorithms. Divide and conquer Greedy dynamic programming. Search and traverse. Backtracking. Branch and Bound. Some theoretical results will be discussed, for example those relating to NP - completeness.
0616.
Principles Of Data Management (661)
(3 s.h)
Prerequisite: CIS 511 and 512
This course covers fundamental and advanced topics in Database Management Systems: Database System Architecture: ANSI/SPARC Architecture; data abstraction; external, conceptual, and internal schemata; data independence; data definition and data manipulation languages. Data models: Entity-relationship and relational data models; data structures, integrity constraints, and operations for each data model; relational query languages: SQL, algebra, calculus. Theory of database design: Functional dependencies; normal forms; dependency preservation; information loss. Query Optimization: Equivalence of expressions, algebraic manipulation; optimization of selections and joins. Storage Strategies: Indices, B-trees, hashing. Transaction Processing: Recovery and concurrency control. Object-oriented and object-relational data model. Parallel and Distributed Databases. Multimedia databases and queries by content. Data mining, data warehousing; Mobile databases; Web databases.This course covers fundamental and advanced topics in Database Management Systems: Database System Architecture: ANSI/SPARC Architecture; data abstraction; external, conceptual, and internal schemata; data independence; data definition and data manipulation languages. Data models: Entity-relationship and relational data models; data structures, integrity constraints, and operations for each data model; relational query languages: SQL, algebra, calculus. Theory of database design: Functional dependencies; normal forms; dependency preservation; information loss. Query Optimization: Equivalence of expressions, algebraic manipulation; optimization of selections and joins. Storage Strategies: Indices, B-trees, hashing. Transaction Processing: Recovery and concurrency control. Object-oriented and object-relational data model. Parallel and Distributed Databases. Multimedia databases and queries by content. Data mining, data warehousing; Mobile databases; Web databases.
0617.
Computer Networking And Communication (662)
(3 s.h)
Prerequisite: CIS 511 and 512
Introduction to the design and analysis of computer networks and communications systems, including the Physical, Data Link, Network, Transport and Application layers. The Internet (TCP/IP) model will be emphasized and compared and contrasted with other current technologies. Major themes include the distinction between service and protocol, performance metrics, analysis techniques, and fundamental performance tradeoffs.Introduction to the design and analysis of computer networks and communications systems, including the Physical, Data Link, Network, Transport and Application layers. The Internet (TCP/IP) model will be emphasized and compared and contrasted with other current technologies. Major themes include the distinction between service and protocol, performance metrics, analysis techniques, and fundamental performance tradeoffs.
0618.
Principles Of Software Engineering (580)
(3 s.h)
Prerequisite: CIS 511 and 512
This course takes a technology-based approach to the software engineering of networked application systems design and programming. Normally a course does not predicate itself upon a particular proprietary system, but the new Microsoft .NET technology inherently contains so many implications for new software engineering paradigms that it cannot be ignored. The course, therefore, draws upon this new technology, together with former ones in object oriented design and programming, for its theoretical, architectural, and system design foundations. Principal objectives of software engineering today are (1) Improvement of product quality and reliability and of developer productivity through coding aids and automation and (2) response to both the open technologies of Unix and Java and the more widely used systems of Microsoft, and (3) response to the ubiquitous use of the internet. The course bridges software engineering principles at one end, in their most abstract and conceptual sense, with programming technique at the other end, in its most concrete and pragmatic sense. It uses .NET as a model for the software engineering of enterprise applications primarily intended for networked and distributed deployment but also takes its cue from the 3 above stated objectives: (1) How to optimize productivity of the software engineer, (2) how to integrate the best that open technologies have to offer, and (2) how to build large scale systems that operate most efficiently on the internet.
The course is divided into 3 parts: First is the theory that flows from .NET and object oriented methodologies. This includes Application System Architectures, Design Methodologies, Quality Assurance, Scalability, and Security. Second is the development of a working skill set in two .NET languages: ASP.NET and VB.NET and its major development tool, VS.NET. Third is the design and programming of a small but complete web deployed application.
0650.
Collaborative Systems And Techniques (744)
(3 s.h)
Prerequisite: CIS 602
This course focuses on the issues surrounding the use, design, and adoption of technology to support collaborative work. The course builds upon knowledge of networking, databases, and human factors. The material in this course falls under the emerging discipline of computer supported cooperative work (CSCW).This course focuses on the issues surrounding the use, design, and adoption of technology to support collaborative work. The course builds upon knowledge of networking, databases, and human factors. The material in this course falls under the emerging discipline of computer supported cooperative work (CSCW).
0651.
Artificial Intelligence, Heuristic Models, And Education (593)
(3 s.h)
Prerequisite: CIS 603
Introduction to how artificial intelligence and heuristic models are used to build better computer-based educational systems. Current as well as past models are explored (e.g. PROUST, GUIDON, SOAR, etc.). Key issues to be examined include student models, interfaces, pedagogical expertise, domain expertise and collaborative learning systems.Introduction to how artificial intelligence and heuristic models are used to build better computer-based educational systems. Current as well as past models are explored (e.g. PROUST, GUIDON, SOAR, etc.). Key issues to be examined include student models, interfaces, pedagogical expertise, domain expertise and collaborative learning systems.
0652.
Knowledge Based Systems (682)
(3 s.h)
Prerequisite: CIS 603
An investigation of how expert level performance of computer programs is achieved. Covers relevant theories of human problem solving and models of knowledge. Special languages for knowledge representation will be investigated.An investigation of how expert level performance of computer programs is achieved. Covers relevant theories of human problem solving and models of knowledge. Special languages for knowledge representation will be investigated.
0664.
Knowledge Discovery And Data Mining (671)
(3 s.h)
Prerequisite: Basic knowledge in Data Base Systems (CIS 616); programming skills in C or C++; basic statistics, graph theory, and linear algebra
Basic concepts and techniques for the automated extraction of interesting patterns in large databases. Topics covered include: association-rule mining, sequence mining, web and text mining, data warehousing, information filtering, classification and clustering analysis, Bayesian and neural networks, classification and regression trees, hypotheses evaluation, feature extraction, dimensionality reduction, singular value decomposition, data compression and reconstruction, visualization of large data sets, fractals in databases, and indexing methods that support efficient data mining and queries by content. Special emphasis is given in multimedia, business, scientific, and medical databases.Basic concepts and techniques for the automated extraction of interesting patterns in large databases. Topics covered include: association-rule mining, sequence mining, web and text mining, data warehousing, information filtering, classification and clustering analysis, Bayesian and neural networks, classification and regression trees, hypotheses evaluation, feature extraction, dimensionality reduction, singular value decomposition, data compression and reconstruction, visualization of large data sets, fractals in databases, and indexing methods that support efficient data mining and queries by content. Special emphasis is given in multimedia, business, scientific, and medical databases.
0665.
Advanced Topics In Data Base Systems (670)
(3 s.h)
Prerequisite: CIS 616
Survey of recent developments in database systems with an emphasis on object-oriented databases (OODB`s). Prototype and operational object oriented database systems will be analyzed. Applications of OODB`s to computer aided software engineering (CASE) evironments, integrated application development environments, and geographical information systems.Survey of recent developments in database systems with an emphasis on object-oriented databases (OODB`s). Prototype and operational object oriented database systems will be analyzed. Applications of OODB`s to computer aided software engineering (CASE) evironments, integrated application development environments, and geographical information systems.
0666.
Advanced Networks And Client-Server Computing (625)
(3 s.h)
Prerequisite: CIS 617
Computer networks, network technology, protocols, routing algorithms, reliability and design issues. Data Transmission and Transmission Media, data communications fundamentals, transmission efficiency, wide-area networks, local area networks, wireless networks, TCP/IP and other protocol architectures, client/server computing, network management, and network security.Computer networks, network technology, protocols, routing algorithms, reliability and design issues. Data Transmission and Transmission Media, data communications fundamentals, transmission efficiency, wide-area networks, local area networks, wireless networks, TCP/IP and other protocol architectures, client/server computing, network management, and network security.
0669.
Distributed And Parallel Computer Systems (669)
(3 s.h)
Prerequisite: CIS 617
Intended for students interested in the advances of scalable parallel computing systems. The main goal is to apply distributed and parallel computing theories to practical scalable parallel application development and new parallel programming tool construction.Intended for students interested in the advances of scalable parallel computing systems. The main goal is to apply distributed and parallel computing theories to practical scalable parallel application development and new parallel programming tool construction.
0695.
Software Specification And Design (680)
(3 s.h)
Prerequisite: CIS 616 and 618
The two most prominent specification and design methods used in industry are presented: dataflow oriented and object oriented. The rationale and applicability of each is examined by an analysis of two problems, representing broad application classes. One is a transaction/database problem, the other a real time problem. Within each of the methods there are three modes of specification: functional, behavioral and performance. The student gains insight into each of these modes via models constructed using a Computer Aided Software Engineering (CASE) tool. In the second part of the course the student learns how to convert the specification to a design and the concept of design tradeoffs. The four principal design elements, architectural, database, procedural and user interface, are applied to the two problems.The two most prominent specification and design methods used in industry are presented: dataflow oriented and object oriented. The rationale and applicability of each is examined by an analysis of two problems, representing broad application classes. One is a transaction/database problem, the other a real time problem. Within each of the methods there are three modes of specification: functional, behavioral and performance. The student gains insight into each of these modes via models constructed using a Computer Aided Software Engineering (CASE) tool. In the second part of the course the student learns how to convert the specification to a design and the concept of design tradeoffs. The four principal design elements, architectural, database, procedural and user interface, are applied to the two problems.
0750.
Seminar In Advanced Topics In Computer Science
(3 s.h)
Prerequisite: Permission of the instructor
Topics to be decided individually.
0751.
Project In Computer Science
(3 s.h)
Prerequisite: Any four graduate level courses and permission of the department
Project to be carried out under the direction of a faculty member.
0752.
Thesis in Computer Science
(3-6 s.h)
Prerequisite: Any four graduate level courses and permission of the department
Thesis to be carried out under the direction of a Graduate faculty member.
0799.
Preliminary Exam Prep
(1-6 s.h)
Prerequisite: Successful completion of the Qualifying Examination and permission of the department
.
0899.
Pre-Dissertation Research
(1-6 s.h)
Prerequisite: Successful completion of the Preliminary I Examination and permission of the department
.
0999.
Dissertation Research
(1-6 s.h)
Prerequisite: Successful completion of the Preliminary II examination and permission of the department
All PHD candidates must enroll in this course for at least one to three credit hours each semester until the successful completion of the dissertation. May be repeated. Minimum of 6 credits of CIS 999 are required.