|
|
|
| (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 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 (0-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-0-3)(Lec-Lab-Credit Hours) The aim of this course is to integrate knowledge of basic mathemati
cs 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 moment-generating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: wide-sense stationality and ergodicity.
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, (0-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 385 or (3-1-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 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; sta
ndard 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 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 385 or (3-1-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 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 |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Minin
g (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 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) 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 383 or (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 algoeithms), and assembly language programming.
Close |
CS 550 (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. No graduate credit for students in Computer Science or Computer Engineering.
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 385 or (3-1-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 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 |
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 e-commerce 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 385 or (3-1-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 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 383 or
(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 algoeithms), and assembly language programming.
Close |
CS 550 (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. No graduate credit for students in Computer Science or Computer Engineering.
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 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 520 (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 conce
pt; 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, (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 392, (3-0-3)(Lec-Lab-Credit Hours) Introduction to systems programming in C on UNIX. Students will be introduced to tools for compilation, dynamic linking, debugging, editing, automatic rebuilding, and version control. Some aspects of the UNIX system call interface will be studied, drawn from this list: process creation, signals, terminal I/O, file I/O, inter-process communication, threads, network protocol stacks, programming with sockets, and introduction to RPC. Style issues to be covered include: naming, layout, commenting, portability, design for robustness and debugability, and language pitfalls. X programming and GUI design will be covered, if time allows.
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 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 385 or (3-1-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 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 |
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. Prerequisites: Acquaintance with Multivariable Calculus and programming in C++ and/or Java.
Close |
|
<
tr> | (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 385 or (3-1-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 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 |
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.
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 behavior-based 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 |
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) 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 (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 |
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 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, (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 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 |
CS 545 (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 |
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 large-scale 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 549 (3-0-3)(Le
c-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 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 385 or (3-1-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 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 |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course will provi
de 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 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 |
|
CS 548/ SOC 542 | <
a class='course' href='#87024' onclick=showhide('87024');>Engineering of Enterprise Software Systems |
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the important engineering issues in building large-scale 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 385 or (3-1-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 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 |
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 385 or (3-1-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 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 |
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. No graduate credit for students in Computer Science or Computer Engineering.
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 385, (3-1-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, 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 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 385 or (3-1-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 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 |
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 rece
nt advances in machine learning, with applications in fields such as computer vision, data mining, and bioinformatics. It will cover several of the most important recent developments in learning algorithms, including Support Vector Machines and kernel methods, boosting, and belief propagation, and outline the fundamental concepts behind these approaches. Other topics include: Graphical Models (Bayes Nets and Markov Random Fields), dimensional reduction, supervised (Bayesian) and unsupervised learning, and robust methods.
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 385 or (3-1-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 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 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 (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 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) These two courses, which must be taken in sequence, constitute a capstone project sequence for those students who want to develop those skills, in addition to programming skills, that are required to work in teams to develop quality software. Topics include operational concept development, requirements engineering, software architecture/design, life cycle planning, cost and effort estimation and scheduling, risk analysis, and team management. These topics will be presented within the new Incremental Commitment model, which can be specialized, as needed, to waterfall, risk-drive spiral, or agile development, or to a combination of these. Students will learn these skills by working in teams on real software development projects for real clients. Instructor's approval is required.
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.
Close |
|
| | (3-0-3) (Lec-Lab-Credit Hours) 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 |
|
| (3-0-3) (Lec-Lab-Credit Hours) 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 385 or (3-1-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 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 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 520 (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 |
<
/div> 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.
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 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) 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 security-oriented 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, an
d countermeasures. Close |
Prerequisites: 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 520, (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) 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 security-oriented 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 applicatio
n vulnerabilites, exploits, and countermeasures. Corequisites: CS 576 Secure Systems (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 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 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 520, (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.
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 503, and (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 |
CS 385 or (3-1-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 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 |
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, (0-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.
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 385 or (3-1-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 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 |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Analysis of algorithms: resource-bound
ed 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 |
|
| (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 large-scale 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) 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 |
|
| (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 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 520 (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-Cre
dit 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.
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.
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 (0-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 funct
ions 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 (0-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) 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 |
|
| (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 (0-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) 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, (0-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) Security 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. Forensic activity takes place in a complex, ever-changing legal and social context, which must be understood to fully appreciate the power and value of that activity. This course covers both technological and legal components of the topic. The technical aspect addresses analysis of intruder types and the intrusion process, review of logs and profiles and their types, identification of attack signatures and fingerprints, application of data mining techniques, study of various traceback methods, and the preservation of the information and evidence acquired through the use of forensic tools and techniques. The legal aspect addresses the impact of forensics on the legislative, judicial, and regulatory proceedings that collectively articulate and promote public policy goals, determine civil and criminal liability, and define and assess regulatory compliance. It also discusses the point that the effective and appropriate use of forensics requires that such investigations be conducted under law, with particular regard to civil rights, rights of privacy, property, and contract rights. The course draws on pertinent concepts of law and legal procedure, at a level accessible by non-lawyers, to explore the broader significance of forensics in the private and public sectors.
Prerequisites: CS 573 (3-0-3)(Lec-Lab-Credit Hours) 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 |
|
| (3-0-3) (Lec-Lab-Credit Hours) The first of a two-course sequence on modern computer networks. Trace the evolution of client/server computing to the Internet; the OSI protocol stack; ethernet; SONET and ATM switching; TCP/IP and the structure of the modern Internet. Network layer: IPv4 and IPv6, shortest path and distance vector routing, protocols such as OSPF and BGP, pipelining, broadcast routing, congestion control and reservations, weighted fair queuing, tunneling, and firewalls; and transport layer: TCP and UDP, proxy servers, Web caching, network security, DNS, SAN, SLIP, firewalls, and naming.
Prerequisites: 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 moment-generating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: wide-sense stationality and ergodicity.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The continuation of a two-course sequence on modern computer networks. The lower layers in the OSI protocol stack: medium-access, data-link, and physical layers; and the application of Shannon’s and Nyquist’s bandwidth theorems, Discrete Wave Division Multiplexing, wireless transmission, local loops, QAM, TDM, SONET/SDH, circuit switching, ATM switching, knockout switch, ISDN, STM, framing, error detection and correction, CRC, ARQ protocol, sliding window protocols, finite state machines, PPP, ALOHA, CSMA, fast and gigabit Ethernet, bridges, and FDDI.
Prerequisites: CS 666 (3-0-3)(Lec-Lab-Credit Hours) The first of a two-course sequence on modern computer networks. Trace the evolution of client/server computing to the Internet; the OSI protocol stack; ethernet; SONET and ATM switching; TCP/IP and the structure of the modern Internet. Network layer: IPv4 and IPv6, shortest path and distance vector routing, protocols such as OSPF and BGP, pipelining, broadcast routing, congestion control and reservations, weighted fair queuing, tunneling, and firewalls; and transport layer: TCP an
d UDP, proxy servers, Web caching, network security, DNS, SAN, SLIP, firewalls, and naming.
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 and CS 579. Not for credit for BS/CyS students. CS 576 and CS 675 cannot both be taken for credit.
Prerequisites: CS 492 or (3-0-3)<
/b>(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 520, (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) 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.
Close |
|
| (0-0-6) (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-3) (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) A thesis of significance to be filed in libraries, demonstrating competence in a research area of Computer Science. Five to ten credits with departmental approval for the degree of Master of Science (Computer Science).
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 |
|
|
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: 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) 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 large-scale 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: 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 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 in
clude: 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.
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 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 programs with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press.
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 integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose th
e 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: SOC 542, (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building large-scale 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 641 (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.
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 |
|
|
|
|
|
|
Computer Science Department
Daniel Duchamp, Director |
|
|
|
|
|