|
|
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the Java programming language for those students who have little or no programming background. It is intended as an elective for the Master of Science in Information Systems to be taken near the end of the program. Basic topics considered will be programs and program structure in general and Java syntax, data types, flow of control, classes, methods and objects, arrays, exception handling, and recursion. In addition, the use of Java in enterprise-wide computing and distributed systems will be introduced by considering APIs in general, and the ones specific to JDBC and the Java security features in particular. Not for credit for Computer Science department undergraduate majors.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Topics include basic discrete probability, including urn models and random mappings; a brief introduction to information theory; elements of number theory, including the prime number theorem, the Euler phi function, the Euclidean algorithm, and the Chinese remainder theorem; and elements of abstract algebra and finite fields including basic fundamentals of groups, rings, polynomial rings, vector spaces, and finite fields. Carries credit toward the Applied Mathematics degree only when followed by CS 668. Recommended for high-level undergraduate students.
Prerequisites: MA 502 or (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 135 (3-2-4)(Lec-Lab-Credit Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML. Recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, and state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance, and subtyping; polymorphism and genericity; and design patterns and the visitor pattern.
Prerequisites: MA 502 and (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 and (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 334 (3-0-3)(Lec-Lab-Credit Hours) Introduction to recursive functional programming and equational reasoning; lists as inductive types and list induction; introduction to formal languages, automata, and the theory of computation; regular expressions, finite state machines, and pumping lemma; context free grammars and push down automata; turing machines, recursive enumerability, and unsolvable problems; and complexity and intractability. A number of models of computation are considered, as well as their relation to various problem classes (e.g. solvable problems and polynomial time solvable problems). Some experiments are performed that involve writing small Scheme programs.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The study of concurrency as it appears at all levels and in different types of computing systems. Topics include: models of concurrency; languages for expressing concurrency; formal systems for reasoning about concurrency; the challenges of concurrent programming; race conditions; deadlock; livelock and nondeterministic behavior; prototypical synchronization problems, such as readers-writers and dining philosophers; mechanisms for solution of these problems, such as semaphores, monitors, and conditional critical regions; important libraries for concurrent programming; message passing, both synchronous and asynchronous; and applications of multithreaded concurrent programming and parallel algorithms. Substantial programming required.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems.
Prerequisites: MA 331 or (3-0-3)(Lec-Lab-Credit Hours) An introduction to statistical inference and to the use of basic statistical tools. Topics include descriptive and inferential statistics; review of point estimation, method of moments, and maximum likelihood; interval estimation and hypothesis testing; simple and multiple linear regression; analysis of variance and design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software is used throughout the course for exploratory data analysis and statistical inference based in examples and in real data relevant for applications.
Close |
MA 541 (3-0-3)(Lec-Lab-Credit Hours) This course offers an introduction to exploratory data analysis and the use of basic statistical tools. Topics will include: data collection; descriptive statistics, and graphical and tabular treatment of quantitative, qualitative, and count data; detecting relations between variables; confidence intervals and hypothesis testing for one and two samples; simple and multiple linear regression; analysis of variance; design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software will be used throughout the course and statistical inference will be based on examples using real data. Students will participate in group projects of data analysis. They will be trained in the different phases of the professional statistician’s work, namely: data collection, description, analysis, testing, and presentation of the conclusions.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Measures of cost, performance, and speedup; instruction set design; processor design; hard-wired and microprogrammed control; memory hierarchies; pipelining; input/output systems; and additional topics as time permits. The emphasis in this course is on quantitative analysis of design alternatives.
Prerequisites: CS 550 or (3-0-3)(Lec-Lab-Credit Hours) This course provides an intensive introduction to material on computer organization and assembly language programming required for entrance into the graduate program in Computer Science or Computer Engineering. The topics covered are: structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis.
Close |
CS 383 (3-0-3)(Lec-Lab-Credit Hours) The main aspects of computers: data (data types and formats, number bases), hardware (stored program computer concept, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory), communication (network protocols), software (operating systems, dispatching algorithms), and assembly language programming.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an introduction to the structure and design of compilers. Topics include lexical analysis; syntax analysis; symbol table construction; semantic analysis; syntax-directed translation; and if time permits dataflow analysis, liveness analysis; and register allocation. The emphasis in this course is on the integration of the various parts of a compiler. Each student writes a complete compiler for a small, but substantial, language.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The course provides an understanding of electronic commerce and related architectures, protocols, and technologies. It describes the e-commerce concept, objectives, and market drivers, as well as its requirements and underpinning techniques and technologies, including the Internet, WWW, multimedia, intelligent agents, client-server, and data mining. Security in e-commerce is addressed, including types of security attacks, security mechanisms, Virtual Private Networks (VPNs), firewalls, Intranets, and extranets. Implementation issues in e-commerce, including the design and management of its infrastructure and applications (ERP, CRM, and SCM), are discussed. M-commerce is addressed, electronic payment systems with their associated protocols are described, and various B2C and B2B applications are presented. Also, policy and regulatory issues in ecommerce are discussed.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Prerequisites: CS 590 and (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 550 or (3-0-3)(Lec-Lab-Credit Hours) This course provides an intensive introduction to material on computer organization and assembly language programming required for entrance into the graduate program in Computer Science or Computer Engineering. The topics covered are: structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis.
Close |
CS 383 and (3-0-3)(Lec-Lab-Credit Hours) The main aspects of computers: data (data types and formats, number bases), hardware (stored program computer concept, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory), communication (network protocols), software (operating systems, dispatching algorithms), and assembly language programming.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to IP networking. Examination of all layers of the OSI stack. Detailed examination of the IP, ICMP, UDP, and TCP protocols. Basic concepts of network design: end-to-end principle, routing, encapsulation, flow control, congestion control, and security. Detailed coverage of TCP. Some treatment of important Internet applications and services. Emphasis on network layer and above. Assignments focus on protocols and software.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces the field of mobile computing and the closely related field of pervasive computing. Topics covered include: mobile hardware, wireless communication, ubiquitous data access, resource scarcity, sensing and actuation, location and context awareness, security and privacy, design methodologies and infrastructure, and end-to-end application considerations.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 549 (3-0-3)(Lec-Lab-Credit Hours) Developing robust applications in distributed environments. Coursework includes developing a fault-tolerant distributed application. RPC and RMI; Web Services; application servers (e.g., JEE and Websphere). Transactions: concurrency control and recovery, distributed transactions, nested transactions, and business transactions. Models of distributed systems, impossibility results, and Byzantine failures. Protocol design and examples (2PC and 3PC). Distributed snapshots. Logical time and vector clocks. Replication for fault tolerance: primary-backup and state machine approaches, quorum consensus, and process groups. Peer-to-peer networks.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an introduction to programming and administration of mainframe computers, which are the backbone of modern enterprise computing. Introduction to z/OS and z/VM; protection and virtualization; total cost of ownership (TCO); converstaional Monitoring System (CMS); initial program load (IPL) and launching new virtual machines; writing scripts in REXX; interactive z/OS facilities: TSO/E, ISPF and Unix; Unix system services; JCL and SDSF; transaction management using the Java CICS API; and network programming concepts: virtual LANs, open service adapters, and hipersockets.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Design concepts for combinational and sequential (synchronous and asynchronous) logic systems; the design processes are described algorithmically and are applied to complex function design at the gate and register level; the designs are also implemented using software development tools - logic compilers for programmable logic devices and gate arrays.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) The design of complex digital logic systems using processor architectures. The architectures are implemented for reduced instruction set computers (RISC) and extended to complex instruction set computers (CISC). The emphasis in the course is the design of high-speed digital systems and includes processors, sequencer/controllers, memory systems and input/output.
Prerequisites: CS 514, (3-0-3)(Lec-Lab-Credit Hours) Measures of cost, performance, and speedup; instruction set design; processor design; hard-wired and microprogrammed control; memory hierarchies; pipelining; input/output systems; and additional topics as time permits. The emphasis in this course is on quantitative analysis of design alternatives.
Close |
CS 527 (0-0-3)(Lec-Lab-Credit Hours) Design concepts for combinational and sequential (synchronous and asynchronous) logic systems; the design processes are described algorithmically and are applied to complex function design at the gate and register level; the designs are also implemented using software development tools - logic compilers for programmable logic devices and gate arrays.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An objective cost model is necessary for planning and executing software projects. A cost model provides a framework for communicating business decisions among the stakeholders of a software effort; it supports contract negotiations, process improvement analysis, tool purchases, architecture changes, component make/buy tradeoffs, and several other return-on-investment decisions. This course provides the student with a through introduction to software estimation and to industry standard tools, like COCOMOII, used in cost estimation. Cross-listed with CpE533.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is a course in modeling the values of assets and financial derivatives and the software implementation of these models for pricing, simulations, and scenario analysis. The course includes an introduction to markets and financial derivatives, and a development of the necessary tools from the theories of stochastic processes and parabolic differential equations. An integral part of the course is the use of financial information sources and software packages available on the Internet for modeling and analysis.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Types of multimedia information: voice, data video facsimile, graphics, and their characterization; modeling techniques to represent multimedia information; analysis and comparative performances of different models; detection techniques for multimedia signals; specification of multimedia representation based on service requirements; and evaluation of different multimedia representations to satisfy user applications and for generating test scenarios for standardization.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Visual analytics is the combination of data filtering, statistical algorithms, and visual presentation in an interactive visual interface. This course provides an introduction to both information and scientific visualization. Topics include: perception (color, space/order, and depth/occlusion), interaction (navigation, zooming, focus, and context), design studies and evaluation, and data representation (graphs, trees, volumes, and time series). Applications include: software, scientific, financial, and cartographic visualization. Junior, senior, or graduate standing is required.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Prerequisites: CS 537 (3-0-3)(Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) This course introduces the subject of software engineering, also known as software development process or software development best practice from a quantitative, i.e., analytic- and metrics-based point of view. Topics include introdcutions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; object-oriented analysis and design. The course is case-history and project oriented.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the large and diverse field of artificial intelligence. Topics include: problem-solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 182 or (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides an introduction to entertainment-based user interface design and development from a computer science perspective. The course includes: a survey and classification of the types of computer-mediated entertainment (CME); challenges in developing such interfaces; software architectures to support CME; design principles for sketching CME; and software tools to create CME and provide the technical infrastructure necessary to sustain it.
Prerequisites: CS 347 and (3-0-3)(Lec-Lab-Credit Hours) This course provides a general introduction to the essentials of the software development process, that series of activities that facilitate developing better software in less time. The course introduces software development and deployment life cycles, requirements acquisition and analysis, software architecture and design, and resource management and scheduling in the implementation phase. Students gain experience with tools and methodologies for configuration management and project management. Security engineering is considered as an essential part of the software development process, particularly from the standpoint of applied risk management.
Close |
CS 545 or (3-0-3)(Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Close |
SSW 540 (3-0-3)(Lec-Lab-Credit Hours) This course introduces the subject of software engineering, also known as software development process or software development best practice from a quantitative, i.e., analytic- and metrics-based point of view. Topics include introductions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; object-oriented analysis and design. The course is case history and project oriented.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7; review of information access and evaluation, health care terminology and health care economics, and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings.
Prerequisites: CS 548 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Prerequisites: CS 590, (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. The course will teach the students how to create a complex global site through the creation of individual working modules, giving them the skills required in any business such as proper team work and coordination between groups.
Prerequisites: CS 561, (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 561 or (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 442 and (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 146 or (3-0-3)(Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and markup languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
Close |
SOC 611 (3-0-3)(Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and mark-up languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Developing robust applications in distributed environments. Coursework includes developing a fault-tolerant distributed application. RPC and RMI; Web Services; application servers (e.g., JEE and Websphere). Transactions: concurrency control and recovery, distributed transactions, nested transactions, and business transactions. Models of distributed systems, impossibility results, and Byzantine failures. Protocol design and examples (2PC and 3PC). Distributed snapshots. Logical time and vector clocks. Replication for fault tolerance: primary-backup and state machine approaches, quorum consensus, and process groups. Peer-to-peer networks.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides an intensive introduction to material on computer organization and assembly language programming required for entrance into the graduate program in Computer Science or Computer Engineering. The topics covered are: structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Students in this course work in teams to develop real software for real clients. Topics in software engineering additional to or more advanced than those taught in CS 347 are introduced "just in time," as needed.
Prerequisites: CS 182 or (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
CS 385 and (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 442 (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is a continuation of CS 551.
Prerequisites: CS 551 (3-0-3)(Lec-Lab-Credit Hours) Students in this course work in teams to develop real software for real clients. Topics in software engineering additional to or more advanced than those taught in CS 347 are introduced "just in time," as needed.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the field of Computer Vision, focusing on the underlying algorithmic, geometric, and optic issues. The course starts with a brief overview of basic image processing topics (convolution, smoothing, and edge detection). It then proceeds on various image analysis topics: binary images, moments-based shape analysis, Hough transform, image formation, depth and shape recovery, photometry, motion, classification, and special topics.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385, (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
MA 232 (3-0-3)(Lec-Lab-Credit Hours) This course introduces basic concepts of linear algebra from a geometric point of view. Topics include the method of Gaussian elimination to solve systems of linear equations; linear spaces and dimension; independent and dependent vectors; norms, inner product, and bases in vector spaces; determinants, eigenvalues and eigenvectors of matrices; symmetric, unitary, and normal matrices; matrix representations of linear transformations and orthogonal projections; the fundamental theorems of linear algebra; and the least-squares method and LU-decomposition.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In many fields (e.g., computer vision, speech recognition, data mining, and bioinformatics), machine learning has become a crucial ingredient in translating research into applications. The course is intended to provide an in-depth overview of recent advances in machine learning, with applications in fields such as computer vision, data mining, natural language processing. Fundamental topics that will be covered include supervised (Bayesian) and unsupervised learning, non-parametric methods, graphical models (Bayes Nets and Markov Random Fields) and dimensionality reduction. The course will also cover several of the most important recent developments in learning algorithms, including boosting, Support Vector Machines and kernel methods, and outline the fundamental concepts behind these approaches.
Prerequisites: MA 222 (3-0-3)(Lec-Lab-Credit Hours) Introduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Prerequisites: CS 284, (4-0-4)(Lec-Lab-Credit Hours) This is a course on standard data structures, including sorting and searching and using the Java language. The topics include: stages of software development; testing; UML diagrams; elementary data structures (lists, stacks, queues, and maps); use of elementary data structures in application frameworks; searching; sorting; and introduction to asymptotic complexity analysis.
Close |
CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 and (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 347 or (3-0-3)(Lec-Lab-Credit Hours) This course provides a general introduction to the essentials of the software development process, that series of activities that facilitate developing better software in less time. The course introduces software development and deployment life cycles, requirements acquisition and analysis, software architecture and design, and resource management and scheduling in the implementation phase. Students gain experience with tools and methodologies for configuration management and project management. Security engineering is considered as an essential part of the software development process, particularly from the standpoint of applied risk management.
Close |
SSW 540 (3-0-3)(Lec-Lab-Credit Hours) This course introduces the subject of software engineering, also known as software development process or software development best practice from a quantitative, i.e., analytic- and metrics-based point of view. Topics include introductions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; object-oriented analysis and design. The course is case history and project oriented.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Continuation of CS 561. Topics include UML modeling of relational databases; indexing, both static and dynamic; B-trees and B+-trees; query optimization; concurrency control; and recovery control.
Prerequisites: CS 561 (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Requirements Acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In this course, the first of a two-course sequence, students will learn the basics of software development process and will work in teams on software development projects. Teams will develop the following documents: operational concept, requirements, architecture, life cycle plan, and feasibility argument. The course will meet twice a week, with one meeting devoted to instruction and the other to team meetings. Undergraduate students in the computer science department, and graduate students who have taken CS551 and/or CS552 may not take this course for credit.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Students will work in teams on a software development project that was begun in CS568. In this course they will re-baseline the following documents: operational concept, requirements, architecture, life cycle plan, and feasibility argument and will execute its implementation and deployment. Undergraduate students in the computer science department, and graduate students who have taken CS 551 and/or CS 552 may not take this course for credit.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to programming using standard data types and programming constructs of C++. Students will be given regular programming assignments.
Prerequisites: CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Java The course consists of an in-depth discussion of Java language and programming techniques. Comparison of Java to other languages, such as C/C++, is made throughout the course to emphasize various shortcomings of the language and their implications on design paradigms. Some aspects of GUI libraries, multithreading support, and Java native interface are also discussed. Not for undergraduate credit in Computer Science, Computer Engineering, Cybersecurity, and Information Systems degree programs.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) This course is designed as a refresher for graduate students with professional experience, or in disciplines other than computer science, who want to register in the Graduate Certificate in CyberSecurity program. Depending on the student's transcript and background, this course may be recommended to be taken as a prerequisite to the program. The course has three components: math, operating systems, and telecommunication, and may be initially taught by three instructors in the related areas. The math topics include: elements of set theory, basics of modular mathematics, functions and operations, binary numbers, and operations, Boolean functions, prime numbers and their properties. The operating system topics include: general functions and services provided by the OS, simple file protection schemes, file systems of UNIX and Windows, memory management, and OS logs. The telecom topics include: basics of OSI seven layers and protocol data units, addressing and routing in IP, CRC coding, overview of circuit and packet switching, access control and collision detection, LAN protocol architecture, basics of TCP/IP and wireless communications.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Fundamentals of CyberSecurity This course studies the mathematical models for computer security (Bell- LaPadula, Clark-Wilson, Biba, and Gligor models). It analyzes and compares, with respect to formal and pragmatic criteria, the properties of various models for hardware, software, and database security. Topics also include: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. The course includes a project.
Prerequisites: CS 520 and (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 and (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 492 (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Theory of object-oriented design, classes, interfaces, inheritance hierarchy, and correctness; abstract data types, encapsulation, formal specification with preconditions, postconditions and invariants, and proofs of correctness; object-oriented software, objects and classes, genericity, inheritance, polymorphism, and overloading; single and multiple inheritance, programming by contract, subclassing as subcontract, specification, and verification; programming language examples include C+ +, Java, Smalltalk, and Eiffel.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Secure Systems Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Corequisites: CS 577 Cybersecurity Laboratory (3-0-3)(Lec-Lab-Credit Hours) Cybersecurity Laboratory Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other securityoriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. Close |
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 and (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Cybersecurity Laboratory Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other securityoriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. Corequisites: CS 576 Secure Systems (3-0-3)(Lec-Lab-Credit Hours) Secure Systems Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Close |
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 and (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| | (3-0-3) (Lec-Lab-Credit Hours) Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other majors with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press.
Prerequisites: CS 579 or (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
CS 594 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Close |
CS 506 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385, (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 503 (3-0-3)(Lec-Lab-Credit Hours) Topics include basic discrete probability, including urn models and random mappings; a brief introduction to information theory; elements of number theory, including the prime number theorem, the Euler phi function, the Euclidean algorithm, and the Chinese remainder theorem; and elements of abstract algebra and finite fields including basic fundamentals of groups, rings, polynomial rings, vector spaces, and finite fields. Carries credit toward the Applied Mathematics degree only when followed by CS 668. Recommended for high-level undergraduate students.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills needed to formulate a viable design and take it from the idea stage to a published game.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
This course examines the use of machine learning techniques in all stages of game design. Topics covered include environment and character modeling, motion synthesis, behavior learning, evolution and competition. The emphasis will be on cutting edge technology that utilizes the vast amounts of recorded game data as a basis for learning more realistic or more effective game design strategies. Advanced topics that will also be covered are gamebot identification in online games, as well as integration and evaluation of learning in games. Students will participate in groups to develop a game using principles learned in class. To complete the project, they will be required to implement and observe a representative set of the techniques covered in class.
Prerequisites: (MA 222 and (3-0-3)(Lec-Lab-Credit Hours) Introduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model.
Close |
CS 585) and (3-0-3)(Lec-Lab-Credit Hours)
The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills needed to formulate a viable design and take it from the idea stage to a published game.
Close |
(CS 539 or (3-0-3)(Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Close |
CS 587) (3-0-3)(Lec-Lab-Credit Hours) In this course we will study the science and concrete programming tools underlying the design and implementation of game engines. The course will cover the principal components and techniques of a modern game engine: physics simulation engines, 3D graphics engines, artificial intelligence engines, scripting languages, network gaming for massively multiplayer games.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In this course we will study the science and concrete programming tools underlying the design and implementation of game engines. The course will cover the principal components and techniques of a modern game engine: physics simulation engines, 3D graphics engines, artificial intelligence engines, scripting languages, network gaming for massively multiplayer games.
Prerequisites: CS 537 and (3-0-3)(Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Close |
CS 539 and (3-0-3)(Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Close |
CS 541 (3-0-3)(Lec-Lab-Credit Hours) An introduction to the large and diverse field of artificial intelligence. Topics include: problem-solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Prerequisites: MA 502 and (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 570 (3-0-3)(Lec-Lab-Credit Hours) Introduction to programming using standard data types and programming constructs of C++. Students will be given regular programming assignments.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Prerequisites: CS 548 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Analysis of algorithms: resource-bounded computation and time and space complexity. Various models of computation will be studied. Complexity classes and reducibilities, hardness, and completeness. Randomized algorithms and approximation algorithms.
Prerequisites: CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Axioms of probability. Discrete and continuous random vectors. Functions of random variables. Expectations. moments, characteristic functions, and moment generating functions. Inequalities, convergence concepts, and limit theorems. Central limit theorem. Characterization of simple stochastic processes: wide-sense stationality, and ergodicity.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Poisson process; renewal theory; discrete- and continuous- parameter Markov chains; birth-death processes; random walk; applications in computer science.
Prerequisites: CS 605 (0-0-3)(Lec-Lab-Credit Hours) Axioms of probability. Discrete and continuous random vectors. Functions of random variables. Expectations. moments, characteristic functions, and moment generating functions. Inequalities, convergence concepts, and limit theorems. Central limit theorem. Characterization of simple stochastic processes: wide-sense stationality, and ergodicity.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an advanced graduate course on database systems. It gives an overview of a few key research topics in database systems including information retrieval (IR), principles of semi-structured XML databases (thus the course complements application-centric software engineering courses that use XML), and security and privacy from the database perspective (thus the course complements security courses that take a cryptography-based perspective on database security and in particular on privacy-preserving operations). Course readings are drawn from the recent top-tier international database conferences and journals.
Prerequisites: CS 561 or (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 442 (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course develops advanced organizational and engineering skills in managing and enforcing privacy and security policies in enterprise system. Security governance; access control; authentication and single sign-on; security in enterprise operating systems; access control and user operating systems; privacy management; identity management; federations and web services security; risk management and compliance; intrusion detection, honeypots, digital forensics; enterprise security management. Course work involves hands-on experience with systems programming and configuration of enterprise computers.
Prerequisites: CS 548, (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
CS 573 (3-0-3)(Lec-Lab-Credit Hours) Fundamentals of CyberSecurity This course studies the mathematical models for computer security (Bell- LaPadula, Clark-Wilson, Biba, and Gligor models). It analyzes and compares, with respect to formal and pragmatic criteria, the properties of various models for hardware, software, and database security. Topics also include: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. The course includes a project.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) This course covers topics in intelligent extraction of data and information from data stores and data warehouses. The course complements several theoretical techniques such as neural networks, data-driven decision, rule-based systems, machine learning, and decision trees with case studies from several telecommunications companies such as Bell Atlantic, US West, etc.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course covers some of the most essential aspects of systems administration, giving students the opportunity to develop the skills necessary to analyze and troubleshoot problems arising in every day usage of networked computer systems, applying equally to single-user systems, as well as to large-scale installations. Some of the topics covered include: hardware configuration, operating system installation, shell programming, security policies, back-up deployment and disaster recovery, network design, software installation and maintenance, operating system tuning, and best practices for problem determination. Security topics including packet sniffers and spoofers, buffer overflow attacks and stack protection, and firewalls and intrusion detection are also covered, with an emphasis on their implementation. Students are expected to be comfortable in a Unix-like environment on a user level and have a solid understanding of TCP/IP networking and operating system concepts.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Optimization: dataflow analysis, copy propagation, dead code elimination, common subexpression elimination, code hoisting, elimination of redundant induction variables, compiling functional and object-oriented languages; control-flow analysis, and static single-assignment form intermediate languages. Additional topics at discretion of the instructor.
Prerequisites: CS 516 (3-0-3)(Lec-Lab-Credit Hours) This course is an introduction to the structure and design of compilers. Topics include lexical analysis; syntax analysis; symbol table construction; semantic analysis; syntax-directed translation; and if time permits dataflow analysis, liveness analysis; and register allocation. The emphasis in this course is on the integration of the various parts of a compiler. Each student writes a complete compiler for a small, but substantial, language.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) The course provides an understanding of electronic commerce and related architectures, protocols and technologies. The course introduces the E-commerce concept, objectives, and market drivers, and identifies its requirements, underpinning techniques, and technologies. These include Internet techniques like tunneling and Telnet and WWW techniques like Forms, and Common Gateway Interface (CGI). Other related topics such as multimedia, intelligent agents and their applications in E-commerce, the client/server model, and Commitment, Concurrency and Recovery (CCR) are also presented. Network, service, and application management, which are important aspects of E-commerce, are discussed. Quality of Service (QoS) management, Service Level Agreement (SLA) management, Application Programming Interface (APIs), and the role of Application Service Providers (ASPs) are discussed. There will be strong emphasis on the important topic of security management. Topics here include security concepts and technologies, types of security attacks, encryption techniques, public key systems, Data Encryption Standard (DES), and authentication techniques. Virtual Private Networks (VPNs), secure tunneling techniques, firewalls, Intranets, extranets, and VPN management are covered. The policy and regulatory issues in E-commerce are discussed. Finally, various E-commerce applications in the areas of finance, securities, trading, auctions, and travel are described. The course includes some E-commerce case studies and demonstrations.
Prerequisites: TM 610, (0-0-3)(Lec-Lab-Credit Hours) Concentrated study of data and computer communications, information network architectures, and standards. Topics include: IP networking, information characteristics and requirements for voice, video, image, and data; protocol definitions and performance analyses for distributed networks; network topologies; local area networks (LAN) functional characteristics, performance, and analysis studies for Ethernet and token ring as primary technologies; internetworking; metropolitan area networks (MAN) including FDDI and DQDB; and wide area networking (WAN) technologies including frame relay and asynchronous transfer mode (ATM).
Close |
CS 666 (3-0-3)(Lec-Lab-Credit Hours) CpE 678 Information Networks I is the first of two courses on modern computer networks. Its focus is the physical and data link levels of the OSI layers. It traces the evolution of client/server computing to the Internet. Topics covered include OSI layering, TCP/IP overview, the application of Shannon's and Nyquist's bandwidth theorem's, Discrete Wave Division Multiplexing, wireless transmission, local loops, QAM, TDM, SONET/SDH, circuit switching, ATM switching, knockout switch, ISDN, ATM, framing, error detection and correction, CRC, ARQ protocol, sliding window protocols, finite state machines, Universal Modeling Language, PPP, ALOHA, CSMA, LANs, fast and gigabit Ethernet, Bridges and FDDI. A significant amount of time is spent on designing 802.3 LANs.
Close |
MGT 776 (0-0-3)(Lec-Lab-Credit Hours) This course introduces the technical as well as managerial aspects of distributed information systems. The emphasis is on synthesizing the underlying technologies (networks, databases and applications) with management approaches (planning, staffing and organizing). Topics include: opportunities and challenges of distributed information systems, review of network technologies (LANs, WANs, MANs, high speed networks), network architectures, client/server computing, distributed databases, distributed applications, open systems standards and the management of distributed information systems. Case studies are introduced to illustrate different challenges and approaches to solutions.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Design and analysis of distributed algorithms, and impossibility results showing when some problems are unsolvable. Models of synchronous and asynchronous distributed computing. Fault models, including crash failures and malicious failures, and communication models, including message passing and shared memory systems. Distributed algorithms and impossibility results for problems, such as consensus, Byzantine agreement, clock synchronization, mutual exclusion, and secure multiparty computation.
Prerequisites: CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Design concepts for combinational and sequential (synchronous and asynchronous) logic systems; the design processes are described algorithmically and are applied to complex function design at the gate and register level; the designs are also implemented using software development tools - logic compilers for programmable logic devices and gate arrays. Cross listed with CpE 643.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) The design of complex digital logic systems using processor architectures. The architectures are implemented for reduced instruction set computers (RISC) and extended to complex instruction set computers (CISC). The emphasis in the course is the design of high-speed digital systems and includes processors, sequencer/controllers, memory systems and input/output.
Prerequisites: CS 514, (3-0-3)(Lec-Lab-Credit Hours) Measures of cost, performance, and speedup; instruction set design; processor design; hard-wired and microprogrammed control; memory hierarchies; pipelining; input/output systems; and additional topics as time permits. The emphasis in this course is on quantitative analysis of design alternatives.
Close |
CS 627 (0-0-3)(Lec-Lab-Credit Hours) Design concepts for combinational and sequential (synchronous and asynchronous) logic systems; the design processes are described algorithmically and are applied to complex function design at the gate and register level; the designs are also implemented using software development tools - logic compilers for programmable logic devices and gate arrays. Cross listed with CpE 643.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Analysis of finite automata and regular sets. Formal languages and grammars, and Chomsky-hierarchy. Context-free languages and PDAs. Applications to parsing.
Prerequisites: MA 502 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Computable functions and Turing machines. Primitive recursive functions, recursive functions, loop-programs, and while-programs. Decidability, solvability, and unsolvable problems. High complexity classes and reducibilities, hardness, and completeness. The arithmetical hierarchy and definability. The connection to complexity theory is emphasized throughout the course.
Prerequisites: MA 502 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Types of multimedia information: voice, data video facsimile, graphics, and their characterization; modeling techniques to represent multimedia information; analysis and comparative performances of different models; detection techniques for multimedia signals; specification of multimedia representation based on service requirements; evaluation of different multimedia representations to satisfy user applications and for generating test scenarios for standardization.
Prerequisites: EE 605, (0-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
CS 505 (3-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Mathematical foundations and algorithms for advanced computer graphics. Topics include 3-D modeling, texture mapping, curves and surfaces, physics-based modeling, and visualization. Special attention will be paid to surfaces and shapes. The class will consist of lectures and discussion on research papers assigned for reading. In class, we will study the theoretical foundations and algorithmic issues. In programming assignments, we will use OpenGL as the particular API for writing graphics programs. C/C++ programming skills are essential for this course.
Prerequisites: CS 537 (3-0-3)(Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Formal systems for specification and verification of software; review of the first-order predicate calculus; abstract data types, formal specification, preconditions, postconditions, invariants, predicate transformers, proofs of correctness, and partial and total correctness; correctness for assignments, alternatives, iterations, and procedure calls. Tools for deductive verification, model checking, and analysis of specifications and models.
Prerequisites: CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Fundamental characterization of computer networks and distributed systems; Network programming using sockets and RMI; Distributed file systems; Distributed application protocol design and examples; transactions; concurrency control and recovery, distributed transactions, nested transactions. Replication, fault tolerance; primary-backup and state machine approaches, models of distributed computation; vector clocks; reliable broadcast.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to the theory and applications of networks and graphs. Topics include paths, connectivity, trees, cycles, planarity, network flows, matchings, colorings, and some extremal problems.
Prerequisites: MA 502 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Queuing models will be developed and applied to current problems in telecommunication networks and performance analysis of computer systems. Topics include elementary queuing theory, birth-death processes, open and closed networks of queues, priority queues, conservation laws, models for time-shared computer systems and computer communication networks.
Prerequisites: EE 605, (0-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
CS 505 (3-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Queuing models will be developed and applied to current problems in telecommunication networks and performance analysis of computer systems. Topics include elementary queuing theory, birth-death processes, open and closed networks of queues, priority queues, conservation laws, models for time-shared computer systems and computer communication networks.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Basic graph-theoretic notions; data structures for graph representation; running time analysis; review of depth-first search, breadth-first search, and minimum spanning trees; network flow problems; graph connectivity; matchings; Eulerian graphs and digraphs; de Bruijn graphs; Hamiltonian graphs; traveling salesman problem; planar graphs; planarity testing; vertex and edge colorings; chromatic polynomials; five-coloring algorithm; and the Four-color problem.
Prerequisites: MA 502, (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Network forensics involves the identification, preservation, and analysis of evidence of attacks in order to identify the attackers and document their activity with sufficient reliability to justify appropriate technological, business, and legal responses. This course, however, only focuses on the technological and not on the legal components of the topic. The emphasis is on the network traffic analysis aspect, not on the host aspect. The technical aspect addresses analysis of intruder types and the intrusion process, review of network traffic logs (pcap, flow records) and profiles and their types, identification of attack signatures and fingerprints, application of data mining techniques, study of various traceback methods, and the extraction of information (e.g. from malware, including botnet traffic) acquired through the use of network analysis tools and techniques. The class will not only cover the subjects in theory but instead also provide the students with an extensive hands-on experience. The class will involve a fair amount of programming.
Prerequisites: CS 521 and (3-0-3)(Lec-Lab-Credit Hours) Introduction to IP networking. Examination of all layers of the OSI stack. Detailed examination of the IP, ICMP, UDP, and TCP protocols. Basic concepts of network design: end-to-end principle, routing, encapsulation, flow control, congestion control, and security. Detailed coverage of TCP. Some treatment of important Internet applications and services. Emphasis on network layer and above. Assignments focus on protocols and software.
Close |
CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Hierarchical network management for LAN and distributed discrete and integrated services networks; network management concepts; administrative and operational management; performance management; fault management; maintenance management; and security management and architectural management of different ownerships. Concept of managed objects, manager-agent relationship, and applications of network management protocols. Standard management protocols: SNMP and CMIP.
Prerequisites: CS 521 (3-0-3)(Lec-Lab-Credit Hours) Introduction to IP networking. Examination of all layers of the OSI stack. Detailed examination of the IP, ICMP, UDP, and TCP protocols. Basic concepts of network design: end-to-end principle, routing, encapsulation, flow control, congestion control, and security. Detailed coverage of TCP. Some treatment of important Internet applications and services. Emphasis on network layer and above. Assignments focus on protocols and software.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrusion detection systems; and operating systems and application vulnerabilities, exploits, and countermeasures. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 and (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Students will learn how to deal with issues impacting industrial software developments. A broad range of topics will be covered emphasizing large [project issues. Large software projects are those employing 50 or more software developers for three years or more. Throughout the course, emphasis will be placed on quantitative evaluation of alternatives. Specific examples and case histories from real projects in the telephone industry are provided. Students will learn how to create architectures for large systems based on the '4+1' model; how to use modern software connector technology; module decomposition; scaling of agile methods to large projects, the use of work flows to drive software process and database designs, test plans and implementation; configuration control and software manufacturing. The special issues of database conversion data consistency, database maintenance and performance tuning will be addresses for large databases. The physical environment of the computer systems including multi-site deployment; software releases and special management report generation are examined.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) To introduce students to systematic testing of software systems, software verificaton, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management software maintenance, software reuse and reverse engineering.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Students will learn how to analyze, predict, design, and engineer the required and expected reliability of software systems. Case studies will be used throughout, including studies of sysems that worked well and of systems that failed in some crucial aspect. Examples of the types of systems which will be studied are the London Ambulance Dispatch System, the Lucent Telephone Switching Systems and the Mars and Voyager missions.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course covers the design and analysis of security protocols, and studies different attacks and defenses against them. Topics include: signature and authentication protocols, privacy, digital rights management, security protocols for wired, wireless and distributed networks, electronic voting, payment and micropayment protocols, anonymity, broadcast encryption and traitor tracing, quantum cryptography, and visual cryptography. The course includes a project.
Prerequisites: CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Methods for giving meaning to programming language constructs; Operational, Denotational, and Axiomatic semantics. Introduction to algebraic tools; recursive definitions and fixed-point semantics; proving program correctness; and program equivalence.
Prerequisites: CS 630 (3-0-3)(Lec-Lab-Credit Hours) Analysis of finite automata and regular sets. Formal languages and grammars, and Chomsky-hierarchy. Context-free languages and PDAs. Applications to parsing.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An investigation of a current research topic at the pre-master's level, under the direction of a faculty member. A written report is required, which should have the substance of a publishable article. Students with no practical experience who do not write a master's thesis are invited to take advantage of this experience. One to six credits for the degree of Master of Science (Computer Science).
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An investigation of a current research topic beyond that of CS 800 level, under the direction of a faculty member. A written report is required, which should have importance in Computer Science and should have the substance of a publishable article. This course is open to students who intend to be doctoral candidates and wish to explore an area that is different from the doctoral research topic. One to six credits for the degree of Doctor of Philosophy.
Close |
|
| (0-0-6) (Lec-Lab-Credit Hours) This will test the software engineering knowledge of students who have completed Stevens Institute of Technology-approved training programs in software engineering. Upon successful completion (graded pass/fail), students will be awarded six credits towards the Master of Quantitative Software Engineering on their study plan and three on the approval form for the certificate of Quantitative Software Engineering. To obtain a pass in this course, the student is required to demonstrate proficiency equivalent to a grade of ?B? (i.e. 3.0 out of 4.0) or higher. These credits are not transferable to other institutions.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) A participating seminar on topics of current interest and importance in computer science. Open to both undergraduates and graduate students.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Original research of a significant character carried out under the guidance of a member of the departmental faculty, which may serve as the basis for the dissertation, is required for the degree of Doctor of Philosophy. Credits to be arranged.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Original research of a significant character carried out under the guidance of a member of the departmental faculty, which may serve as the basis for the dissertation, is required for the degree of Doctor of Philosophy.
Close |
|
|
Service Oriented Computing |
| (3-0-3) (Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Requirements acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, and the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools.
Prerequisites: SOC 606 (3-0-3)(Lec-Lab-Credit Hours) This is a survey course of techniques and technologies for developing Internet applications, particularly for the Web. Web servers and security; three-tier client server architectures; database design and administration; and server- and client-side scripting in Web applications. The course also introduces basic software engineering principles and practices, including project management, requirements acquisition, design, testing and configuration management, reliability, security, and risk management.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Prerequisites: CS 590, (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (4-0-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems.
Prerequisites: MA 331 or (3-0-3)(Lec-Lab-Credit Hours) An introduction to statistical inference and to the use of basic statistical tools. Topics include descriptive and inferential statistics; review of point estimation, method of moments, and maximum likelihood; interval estimation and hypothesis testing; simple and multiple linear regression; analysis of variance and design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software is used throughout the course for exploratory data analysis and statistical inference based in examples and in real data relevant for applications.
Close |
MA 501 (3-0-3)(Lec-Lab-Credit Hours) This course is an introduction to the basic ideas of pre-calculus and calculus for the people who need preparation or review before taking more advanced courses. The exact content depends upon the particular needs of those enrolled and the requirements of degree programs they are pursuing. Topics covered will be selected from the following: algebra, functions, and graphs; slopes and secant lines; derivatives; chain rule; optimization; curve sketching; integration; the exponential and natural logarithm; and probability density functions and integration by parts.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other majors with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press.
Prerequisites: CS 579 or (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
CS 594 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Close |
CS 506 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7; review of information access and evaluation, health care terminology and health care economics, and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings.
Prerequisites: CS 548, (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| | (3-0-3) (Lec-Lab-Credit Hours) This is an introduction to the field of service-oriented computing, in the context of a first course in computer programming, for students with no prior experience. Students will learn the core process of programming: given a problem statement, how does one design an algorithm to solve that particular problem and then implement the algorithm in a computer program? The course will also introduce elementary programming concepts like basic control concepts (such as conditional statements and loops) and a few essential data types. The notions of objects and object creation will also be introduced. The course will involve programming assignments using a self-contained user-friendly programming environment.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is a survey course of techniques and technologies for developing Internet applications, particularly for the Web. Web servers and security; three-tier client server architectures; database design and administration; and server- and client-side scripting in Web applications. The course also introduces basic software engineering principles and practices, including project management, requirements acquisition, design, testing and configuration management, reliability, security, and risk management. Corequisites: SOC 611 Web Fundamentals (3-0-3)(Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and mark-up languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies. Close |
Prerequisites: SOC 605 (3-0-3)(Lec-Lab-Credit Hours) This is an introduction to the field of service-oriented computing, in the context of a first course in computer programming, for students with no prior experience. Students will learn the core process of programming: given a problem statement, how does one design an algorithm to solve that particular problem and then implement the algorithm in a computer program? The course will also introduce elementary programming concepts like basic control concepts (such as conditional statements and loops) and a few essential data types. The notions of objects and object creation will also be introduced. The course will involve programming assignments using a self-contained user-friendly programming environment.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and mark-up languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is a survey of advanced techniques for developing distributed applications. Blocking and unblocking message-passing; RPC and middleware; Web services; concurrency control; recoverability and availability; transactions and distributed databases; centralized and distributed transactions; load balancing; mobile computing; and distributed systems security. Discussion of architectures, such as representational state transfer (REST) and technologies such as AJAX and SOAP.
Prerequisites: SOC 606 (3-0-3)(Lec-Lab-Credit Hours) This is a survey course of techniques and technologies for developing Internet applications, particularly for the Web. Web servers and security; three-tier client server architectures; database design and administration; and server- and client-side scripting in Web applications. The course also introduces basic software engineering principles and practices, including project management, requirements acquisition, design, testing and configuration management, reliability, security, and risk management.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) A participating seminar on topics of current interest and importance in Service Oriented Computing.
Close |
|
|
|
|
|
|
Computer Science Department
Daniel Duchamp, Director |
|
|
|
|
|