|
|
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the Java programming language for those students who have little or no programming background. It is intended as an elective for the Master of Science in Information Systems to be taken near the end of the program. Basic topics considered will be programs and program structure in general and Java syntax, data types, flow of control, classes, methods and objects, arrays, exception handling, and recursion. In addition, the use of Java in enterprise-wide computing and distributed systems will be introduced by considering APIs in general, and the ones specific to JDBC and the Java security features in particular. Not for credit for Computer Science department undergraduate majors.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Topics include basic discrete probability, including urn models and random mappings; a brief introduction to information theory; elements of number theory, including the prime number theorem, the Euler phi function, the Euclidean algorithm, and the Chinese remainder theorem; and elements of abstract algebra and finite fields including basic fundamentals of groups, rings, polynomial rings, vector spaces, and finite fields. Carries credit toward the Applied Mathematics degree only when followed by CS 579. Recommended for high-level undergraduate students.
Prerequisites: MA 502 or (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 135 (2-2-4)(Lec-Lab-Credit Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML. Recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, and state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance, and subtyping; polymorphism and genericity; and design patterns and the visitor pattern.
Prerequisites: MA 502 and (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 590 (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 study of concurrency as it appears at all levels and in different types of computing systems. Topics include: models of concurrency; languages for expressing concurrency; formal systems for reasoning about concurrency; the challenges of concurrent programming; race conditions; deadlock; livelock and nondeterministic behavior; prototypical synchronization problems, such as readers-writers and dining philosophers; mechanisms for solution of these problems, such as semaphores, monitors, and conditional critical regions; important libraries for concurrent programming; message passing, both synchronous and asynchronous; and applications of multithreaded concurrent programming and parallel algorithms. Substantial programming required.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems.
Prerequisites: MA 331 or (3-0-3)(Lec-Lab-Credit Hours) An introduction to statistical inference and to the use of basic statistical tools. Topics include descriptive and inferential statistics; review of point estimation, method of moments, and maximum likelihood; interval estimation and hypothesis testing; simple and multiple linear regression; analysis of variance and design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software is used throughout the course for exploratory data analysis and statistical inference based in examples and in real data relevant for applications.
Close |
MA 541 (3-0-3)(Lec-Lab-Credit Hours) This course offers an introduction to exploratory data analysis and the use of basic statistical tools. Topics will include: data collection; descriptive statistics, and graphical and tabular treatment of quantitative, qualitative, and count data; detecting relations between variables; confidence intervals and hypothesis testing for one and two samples; simple and multiple linear regression; analysis of variance; design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software will be used throughout the course and statistical inference will be based on examples using real data. Students will participate in group projects of data analysis. They will be trained in the different phases of the professional statistician’s work, namely: data collection, description, analysis, testing, and presentation of the conclusions.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Measures of cost, performance, and speedup; instruction set design; processor design; hard-wired and microprogrammed control; memory hierarchies; pipelining; input/output systems; and additional topics as time permits. The emphasis in this course is on quantitative analysis of design alternatives.
Prerequisites: CS 550 and (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. Prerequisites: Undergraduates need permission of advisor.
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 is an introduction to the structure and design of compilers. Topics include lexical analysis; syntax analysis; symbol table construction; semantic analysis; syntax-directed translation; and if time permits dataflow analysis, liveness analysis; and register allocation. The emphasis in this course is on the integration of the various parts of a compiler. Each student writes a complete compiler for a small, but substantial, language.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The course provides an understanding of electronic commerce and related architectures, protocols, and technologies. It describes the e-commerce concept, objectives, and market drivers, as well as its requirements and underpinning techniques and technologies, including the Internet, WWW, multimedia, intelligent agents, client-server, and data mining. Security in e-commerce is addressed, including types of security attacks, security mechanisms, Virtual Private Networks (VPNs), firewalls, Intranets, and extranets. Implementation issues in e-commerce, including the design and management of its infrastructure and applications (ERP, CRM, and SCM), are discussed. M-commerce is addressed, electronic payment systems with their associated protocols are described, and various B2C and B2B applications are presented. Also, policy and regulatory issues in ecommerce are discussed.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Prerequisites: CS 590 and (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 550 (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. Prerequisites: Undergraduates need permission of advisor.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to IP networking. Examination of all layers of the OSI stack. Detailed examination of the IP, ICMP, UDP, and TCP protocols. Basic concepts of network design: end-to-end principle, routing, encapsulation, flow control, congestion control, and security. Detailed coverage of TCP. Some treatment of important Internet applications and services. Emphasis on network layer and above. Assignments focus on protocols and software.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces the field of mobile computing and the closely related field of pervasive computing. Topics covered include: mobile hardware, wireless communication, ubiquitous data access, resource scarcity, sensing and actuation, location and context awareness, security and privacy, design methodologies and infrastructure, and end-to-end application considerations.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 549 (3-0-3)(Lec-Lab-Credit Hours) Developing robust applications in distributed environments. Coursework includes developing a fault-tolerant distributed application. RPC and RMI; Web Services; application servers (e.g., JEE and Websphere). Transactions: concurrency control and recovery, distributed transactions, nested transactions, and business transactions. Models of distributed systems, impossibility results, and Byzantine failures. Protocol design and examples (2PC and 3PC). Distributed snapshots. Logical time and vector clocks. Replication for fault tolerance: primary-backup and state machine approaches, quorum consensus, and process groups. Peer-to-peer networks.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces the concepts of cloud computing, using the frameworks of software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Fundamental concepts from each framework are introduced and related to the structure of the modern cloud. Cloud computing: economics of outsourcing. SaaS: The Web as a client-server system. Web stack: HTML and HTTP. Web data: XML and JSON. Web services and example APIs. PaaS: Introduction to databases and middleware. Data storage in the cloud. Privacy issues. IaaS: Design of server farms. Virtualization and green computing. Service discovery: DNS and content distribution networks. Batch processing in the cloud. Assignments include quizzes, examinations, and a presentation and term paper on a cloud-related topic.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an introduction to programming and administration of mainframe computers, which are the backbone of modern enterprise computing. Introduction to z/OS and z/VM; protection and virtualization; total cost of ownership (TCO); converstaional Monitoring System (CMS); initial program load (IPL) and launching new virtual machines; writing scripts in REXX; interactive z/OS facilities: TSO/E, ISPF and Unix; Unix system services; JCL and SDSF; transaction management using the Java CICS API; and network programming concepts: virtual LANs, open service adapters, and hipersockets.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Computer vision addresses the image understanding problem; in other words, it aims to infer what was depicted in still images or video based on pixel intensity or color values. Never is the relationship between the depicted scene and images more explicit than in 3D computer vision that aims to extract 3D information from image and video data, as well as other modalities. This course will introduce students to concepts relating 2D images and 3D scenes including single and multiple-view geometry, structure from motion and 3D reconstruction. It will also cover processing of 3D data regardless of its origin starting from point sets and progressing to lines, polygons, Delaunay triangulations and Voronoi diagrams. Students will acquire in depth knowledge of 3D computer vision topics that have moved to the forefront for a broad range of applications in geospatial information systems (Google and Bing maps), robotics and driver assistance, 3D user interfaces (Microsoft Kinect), augmented reality and visual aids for people with impaired sight.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An objective cost model is necessary for planning and executing software projects. A cost model provides a framework for communicating business decisions among the stakeholders of a software effort; it supports contract negotiations, process improvement analysis, tool purchases, architecture changes, component make/buy tradeoffs, and several other return-on-investment decisions. This course provides the student with a through introduction to software estimation and to industry standard tools, like COCOMOII, used in cost estimation. Cross-listed with CpE533.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is a course in modeling the values of assets and financial derivatives and the software implementation of these models for pricing, simulations, and scenario analysis. The course includes an introduction to markets and financial derivatives, and a development of the necessary tools from the theories of stochastic processes and parabolic differential equations. An integral part of the course is the use of financial information sources and software packages available on the Internet for modeling and analysis.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Types of multimedia information: voice, data video facsimile, graphics, and their characterization; modeling techniques to represent multimedia information; analysis and comparative performances of different models; detection techniques for multimedia signals; specification of multimedia representation based on service requirements; and evaluation of different multimedia representations to satisfy user applications and for generating test scenarios for standardization.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Visual analytics is the combination of data filtering, statistical algorithms, and visual presentation in an interactive visual interface. This course provides an introduction to both information and scientific visualization. Topics include: perception (color, space/order, and depth/occlusion), interaction (navigation, zooming, focus, and context), design studies and evaluation, and data representation (graphs, trees, volumes, and time series). Applications include: software, scientific, financial, and cartographic visualization. Junior, senior, or graduate standing is required.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Prerequisites: CS 537 (3-0-3)(Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the large and diverse field of artificial intelligence. Topics include: problem-solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 182 or (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides an introduction to entertainment-based user interface design and development from a computer science perspective. The course includes: a survey and classification of the types of computer-mediated entertainment (CME); challenges in developing such interfaces; software architectures to support CME; design principles for sketching CME; and software tools to create CME and provide the technical infrastructure necessary to sustain it.
Prerequisites: CS 347 and (3-0-3)(Lec-Lab-Credit Hours) This course provides a general introduction to the essentials of the software development process, that series of activities that facilitate developing better software in less time. The course introduces software development and deployment life cycles, requirements acquisition and analysis, software architecture and design, and resource management and scheduling in the implementation phase. Students gain experience with tools and methodologies for configuration management and project management. Security engineering is considered as an essential part of the software development process, particularly from the standpoint of applied risk management.
Close |
CS 545 or (3-0-3)(Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Close |
SSW 540 (3-0-3)(Lec-Lab-Credit Hours) This course introduces the subject of software engineering, also known as software development process or software development best practice from a quantitative, i.e., analytic- and metrics-based point of view. Topics include introductions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; object-oriented analysis and design. The course is case history and project oriented.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
From medical centers and individual physicians adopting electronic medical records, to patients keeping track of chronic diseases through websites and apps, we live in an era of unprecedented access to health data. These data enable inference of drug side effects, causes of disease, and new treatments, but the new terminologies, policies, and challenges in understanding the data itself can make it difficult for computational researchers to apply their techniques to this new area and for health professionals to begin using informatics to solve practical problems. This course will give both groups the foundation needed to propose, evaluate and develop projects such as secondary analysis of health data and will enable them to begin effective interdisciplinary collaborations. Students will learn how health data is collected (in both hospital and non-hospital settings), how the structure of record systems impacts the research process and interpretation of results, and how to design and evaluate studies involving secondary use of health data (while complying with HIPAA and IRB regulations) in order to gain new medical knowledge and improve healthcare delivery.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Prerequisites: CS 590, (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. The course will teach the students how to create a complex global site through the creation of individual working modules, giving them the skills required in any business such as proper team work and coordination between groups.
Prerequisites: CS 561 or (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 442 and (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 146 or (3-0-3)(Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and markup languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
Close |
SOC 611 (3-0-3)(Lec-Lab-Credit Hours) This course introduces students to the infrastructure underlying the Web, including protocols and mark-up languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course focuses on teaching students the newest technologies available in Web Programming. Topics include advanced client side programming, responsive design, NoSQL databases, JQuery, AJAX, Web Site security, and the latest Frameworks. Students will be given the opportunity to suggest topics they would like to discover at the end of the semester. The course is a very hands-on course where everything taught will be practiced through in-class exercises.
Prerequisites: CS 546 (3-0-3)(Lec-Lab-Credit Hours) This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. The course will teach the students how to create a complex global site through the creation of individual working modules, giving them the skills required in any business such as proper team work and coordination between groups.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Developing robust applications in distributed environments. Coursework includes developing a fault-tolerant distributed application. RPC and RMI; Web Services; application servers (e.g., JEE and Websphere). Transactions: concurrency control and recovery, distributed transactions, nested transactions, and business transactions. Models of distributed systems, impossibility results, and Byzantine failures. Protocol design and examples (2PC and 3PC). Distributed snapshots. Logical time and vector clocks. Replication for fault tolerance: primary-backup and state machine approaches, quorum consensus, and process groups. Peer-to-peer networks.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
This course provides an intensive introduction to material on computer organization and assembly language programming required for entrance into the graduate program in Computer Science or Computer Engineering. The topics covered are: structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis. Prerequisites: Undergraduates need permission of advisor.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours)
This course will introduce statistical processing of natural language texts, particularly counting words and phrases in and of themselves as well as associations between them using correlations and other measures. Goals of text mining include document classification, information retrieval, source authentication, and stylistic categorization. Typical document sources are newspaper stories, email captures, and Internet pages, as well as collections of non-fiction and fiction such as Federalist Papers and Edgar Allan Poe short stories.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
In software problem areas that require exploratory development efforts, those with complex requirements and high levels of change, agile software development practices are highly effective when deployed in a collaborative, people-centered organizational culture. This course examines agile methods, including Extreme Programming (XP), Scrum, Lean, Crystal, Dynamic Systems Development Method and Feature-Driven Development to understand how rapid realization of software occurs most effectively. The ability of agile development teams to rapidly develop high quality, customer-valued software is examined and contrasted with teams following more traditional methodologies that emphasize planning and documentation. Students will learn agile development principles and techniques covering the entire software development process from problem conception through development, testing and deployment, and will be able to effectively participate in and manage agile software developments as a result of their successfully completing this course. Case studies and software development projects are used throughout. Prerequisites: Programming experience in an object-oriented language, preferably Java.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) An introduction to the field of Computer Vision, focusing on the underlying algorithmic, geometric, and optic issues. The course starts with a brief overview of basic image processing topics (convolution, smoothing, and edge detection). It then proceeds on various image analysis topics: binary images, moments-based shape analysis, Hough transform, image formation, depth and shape recovery, photometry, motion, classification, and special topics.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385, (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
MA 232 (3-0-3)(Lec-Lab-Credit Hours) This course introduces basic concepts of linear algebra from a geometric point of view. Topics include the method of Gaussian elimination to solve systems of linear equations; linear spaces and dimension; independent and dependent vectors; norms, inner product, and bases in vector spaces; determinants, eigenvalues and eigenvectors of matrices; symmetric, unitary, and normal matrices; matrix representations of linear transformations and orthogonal projections; the fundamental theorems of linear algebra; and the least-squares method and LU-decomposition. Prerequisites: Sophomore or higher class standing.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In many fields (e.g., computer vision, speech recognition, data mining, and bioinformatics), machine learning has become a crucial ingredient in translating research into applications. The course is intended to provide an in-depth overview of recent advances in machine learning, with applications in fields such as computer vision, data mining, natural language processing. Fundamental topics that will be covered include supervised (Bayesian) and unsupervised learning, non-parametric methods, graphical models (Bayes Nets and Markov Random Fields) and dimensionality reduction. The course will also cover several of the most important recent developments in learning algorithms, including boosting, Support Vector Machines and kernel methods, and outline the fundamental concepts behind these approaches.
Prerequisites: MA 222 (3-0-3)(Lec-Lab-Credit Hours) Introduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Prerequisites: CS 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) Continuation of CS 561. Topics include UML modeling of relational databases; indexing, both static and dynamic; B-trees and B+-trees; query optimization; concurrency control; and recovery control.
Prerequisites: CS 561 (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Requirements Acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides a conceptual framework and practical experience in a full range of software development and assessment activities from a software systems engineering approach. By examining real-world examples and employing professionally accepted techniques, students will understand issues confronting software practitioners and the wider public. Undergraduate students whose program requires CS 423 and CS 424 may not take this course for credit.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Students will work in teams on a software development project that was begun in CS568. In this course they will re-baseline the following documents: operational concept, requirements, architecture, life cycle plan, and feasibility argument and will execute its implementation and deployment. Undergraduate students in the computer science department, and graduate students who have taken CS 551 and/or CS 552 may not take this course for credit.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
Introduction to programming using standard data types and programming constructs of C++. Students will be given regular programming assignments. Prerequisites: Undergraduates require permission of advisor.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Java The course consists of an in-depth discussion of Java language and programming techniques. Comparison of Java to other languages, such as C/C++, is made throughout the course to emphasize various shortcomings of the language and their implications on design paradigms. Some aspects of GUI libraries, multithreading support, and Java native interface are also discussed. Not for undergraduate credit in Computer Science, Computer Engineering, Cybersecurity, and Information Systems degree programs.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Fundamentals of CyberSecurity This course studies the mathematical models for computer security (Bell- LaPadula, Clark-Wilson, Biba, and Gligor models). It analyzes and compares, with respect to formal and pragmatic criteria, the properties of various models for hardware, software, and database security. Topics also include: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. The course includes a project.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 or (2-2-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 182 (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Theory of object-oriented design, classes, interfaces, inheritance hierarchy, and correctness; abstract data types, encapsulation, formal specification with preconditions, postconditions and invariants, and proofs of correctness; object-oriented software, objects and classes, genericity, inheritance, polymorphism, and overloading; single and multiple inheritance, programming by contract, subclassing as subcontract, specification, and verification; programming language examples include C+ +, Java, Smalltalk, and Eiffel.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Corequisites: CS 577 Cybersecurity Laboratory (3-0-3)(Lec-Lab-Credit Hours) Cybersecurity Laboratory Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other securityoriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. Close |
Prerequisites: CS 182 or (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
CS 385 or (2-2-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 and (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 306 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Cybersecurity Laboratory Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other securityoriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. Corequisites: CS 576 Secure Systems (3-0-3)(Lec-Lab-Credit Hours)
Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Close |
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 and (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 579 (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other majors with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press.
Prerequisites: CS 579 or (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
CS 594 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Close |
CS 306 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385, (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 503 (3-0-3)(Lec-Lab-Credit Hours) Topics include basic discrete probability, including urn models and random mappings; a brief introduction to information theory; elements of number theory, including the prime number theorem, the Euler phi function, the Euclidean algorithm, and the Chinese remainder theorem; and elements of abstract algebra and finite fields including basic fundamentals of groups, rings, polynomial rings, vector spaces, and finite fields. Carries credit toward the Applied Mathematics degree only when followed by CS 579. Recommended for high-level undergraduate students.
Close |
Close |
|
| | (3-0-3) (Lec-Lab-Credit Hours) The technical issues involved in modern internet and online social networks. Basic social network terminology; properties of social networks: connectivity, long tail, network effects; and how these properties affect real life software systems, e.g.: blogs, wikis, social bookmarks and tagging, folksonomy, and online social networks. Students will learn programming with online social networking APIs: OpenSocial, Facebook, and Twitter. They shall also develop an appreciation of ethical, legal, and technical issues like privacy, anonymity, and authentication inherent in online social network applications. Course includes a term project resulting in a social networking application that uses the social networking APIs to operate on one of the popular social software platforms.
Prerequisites: (CS 385 or (2-2-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 182 or (4-0-4)(Lec-Lab-Credit Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms.
Close |
CS 590) and (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 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 |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
This course covers what causality is, how we can infer it using automated methods, and how to use causes to predict future events, explain past occurrences and intervene on systems. Students will learn both the theory behind causal inference methods as well as how to apply them to real-world datasets such as from finance, biology, and politics. In addition to Bayesian networks, we will cover methods for causal inference in time series including dynamic Bayesian networks, Granger causality, and logic-based methods.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills needed to formulate a viable design and take it from the idea stage to a published game.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
This course examines the use of machine learning techniques in all stages of game design. Topics covered include environment and character modeling, motion synthesis, behavior learning, evolution and competition. The emphasis will be on cutting edge technology that utilizes the vast amounts of recorded game data as a basis for learning more realistic or more effective game design strategies. Advanced topics that will also be covered are gamebot identification in online games, as well as integration and evaluation of learning in games. Students will participate in groups to develop a game using principles learned in class. To complete the project, they will be required to implement and observe a representative set of the techniques covered in class.
Prerequisites: (MA 222 and (3-0-3)(Lec-Lab-Credit Hours) Introduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model.
Close |
CS 585) and (3-0-3)(Lec-Lab-Credit Hours)
The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills needed to formulate a viable design and take it from the idea stage to a published game.
Close |
(CS 539 or (3-0-3)(Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Close |
CS 587) (3-0-3)(Lec-Lab-Credit Hours) In this course we will study the science and concrete programming tools underlying the design and implementation of game engines. The course will cover the principal components and techniques of a modern game engine: physics simulation engines, 3D graphics engines, artificial intelligence engines, scripting languages, network gaming for massively multiplayer games.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In this course we will study the science and concrete programming tools underlying the design and implementation of game engines. The course will cover the principal components and techniques of a modern game engine: physics simulation engines, 3D graphics engines, artificial intelligence engines, scripting languages, network gaming for massively multiplayer games.
Prerequisites: CS 537 and (3-0-3)(Lec-Lab-Credit Hours) This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues.
Close |
CS 539 and (3-0-3)(Lec-Lab-Credit Hours) The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behaviorbased animation; human-computer interaction; and event-driven simulations.
Close |
CS 541 (3-0-3)(Lec-Lab-Credit Hours) An introduction to the large and diverse field of artificial intelligence. Topics include: problem-solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Prerequisites: MA 502 and (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 570 (3-0-3)(Lec-Lab-Credit Hours)
Introduction to programming using standard data types and programming constructs of C++. Students will be given regular programming assignments. Prerequisites: Undergraduates require permission of advisor.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours)
The recently introduced terminology of Big Data refers to data sets whose volume (amount of data collected, number of data sources), velocity (rate at which data is collected) and variety (heterogeneity of data and data sources) are so extreme that advanced data mining algorithms are needed to process and discover useful patterns in data for actionable intelligent decisions, in a reasonable amount of time. The purpose of this course is to introduce theoretical as well as practical aspects of advanced algorithms for mining massive datasets. Topics include: dimension reduction techniques, similarity algorithms, streaming, web mining, on-line mining, recommendation systems, market-basket models, and Naive Bayes & Bayesian networks.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Prerequisites: CS 548 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course covers programming for the Windows system environment using current Microsoft tools and technologies. The course emphasizes inter-process communication and synchronization techniques as well as explaining advanced memory management, file handling and asynchronous I/O, multi-threaded processes, and techniques applicable to high-performance and large-scale software systems.
Prerequisites: CS 392 or (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 631 (3-0-3)(Lec-Lab-Credit Hours) In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX family of operating systems and their programming environment. Topics covered will include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced I/O, file systems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems (development and debugging tools such as "make" and "gdb") will also be covered.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course targets how to create, design, code and evaluate effective, efficient and enjoyable user experiences using both standard and emerging techniques. It explores psychological and computational foundations, fundamental concepts, task analysis and requirements analysis. The course emphasizes design, implementation and evaluation and encourages extensive use of design patterns in the design and construction of user experiences. This is truly an interactive course in all ways with demonstrations and exercises drawn from real and virtual worlds. At the end of the course the student should have a heightened appreciation of coding and evaluating user experiences in the real and virtual worlds.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Analysis of algorithms: resource-bounded computation and time and space complexity. Various models of computation will be studied. Complexity classes and reducibilities, hardness, and completeness. Randomized algorithms and approximation algorithms.
Prerequisites: CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an advanced graduate course on database systems and data exploration on Web. It covers a few key current research topics in database systems and Web data exploration including: (1) information retrieval (IR) from Web, (2) semi-structured XML databases from the perspective of theory (thus accompanies the application-centric software engineering courses that uses XML), and (3) Web information integration. 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 are drawn from the recent top-tier international database conferences and journals.
Prerequisites: CS 561 or (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
CS 442 (3-0-3)(Lec-Lab-Credit Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course covers some of the most essential aspects of systems administration, giving students the opportunity to develop the skills necessary to analyze and troubleshoot problems arising in every day usage of networked computer systems, applying equally to single-user systems, as well as to large-scale installations. Some of the topics covered include: hardware configuration, operating system installation, shell programming, security policies, back-up deployment and disaster recovery, network design, software installation and maintenance, operating system tuning, and best practices for problem determination. Security topics including packet sniffers and spoofers, buffer overflow attacks and stack protection, and firewalls and intrusion detection are also covered, with an emphasis on their implementation. Students are expected to be comfortable in a Unix-like environment on a user level and have a solid understanding of TCP/IP networking and operating system concepts.
Prerequisites: CS 520 or (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
CS 492 (3-0-3)(Lec-Lab-Credit Hours) The use and internals of modern operating systems. Lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Design and analysis of distributed algorithms, and impossibility results showing when some problems are unsolvable. Models of synchronous and asynchronous distributed computing. Fault models, including crash failures and malicious failures, and communication models, including message passing and shared memory systems. Distributed algorithms and impossibility results for problems, such as consensus, Byzantine agreement, clock synchronization, mutual exclusion, and secure multiparty computation.
Prerequisites: CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) A second course in computer networking that explores protocols underlying the modern Internet. Topics covered include IPv6, IPSec, mobility, quality of service, traffic engineering, multicase, transport protocols for streaming media, BGP decision algorithms, router techniques (address lookup, packet classification, switch fabric design), and mathematical techniques for describing properties of flows and flow interaction. The course uses free and/or open source tools and testbeds to conduct quantitative measurements of live traffic and to construct simulations of the operation of advanced protocols. Example tools and testbeds are: tcpdump, Wireshark, ns, Click, C-BGP, ntop, PlanetLab, and Emulab. Not all such tools and testbeds will be used in any individual offering of the course.
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) Analysis of finite automata and regular sets. Formal languages and grammars, and Chomsky-hierarchy. Context-free languages and PDAs. Applications to parsing.
Prerequisites: MA 502 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX family of operating systems and their programming environment. Topics covered will include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced I/O, file systems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems (development and debugging tools such as "make" and "gdb") will also be covered.
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 |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Computable functions and Turing machines. Primitive recursive functions, recursive functions, loop-programs, and while-programs. Decidability, solvability, and unsolvable problems. High complexity classes and reducibilities, hardness, and completeness. The arithmetical hierarchy and definability. The connection to complexity theory is emphasized throughout the course.
Prerequisites: MA 502 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (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 (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Queuing models will be developed and applied to current problems in telecommunication networks and performance analysis of computer systems. Topics include elementary queuing theory, birth-death processes, open and closed networks of queues, priority queues, conservation laws, models for time-shared computer systems and computer communication networks.
Prerequisites: EE 605, (0-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
CS 505 (3-0-3)(Lec-Lab-Credit Hours) Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and momentgenerating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: widesense stationality and ergodicity.
Close |
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Queuing models will be developed and applied to current problems in telecommunication networks and performance analysis of computer systems. Topics include elementary queuing theory, birth-death processes, open and closed networks of queues, priority queues, conservation laws, models for time-shared computer systems and computer communication networks.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Basic graph-theoretic notions; data structures for graph representation; running time analysis; review of depth-first search, breadth-first search, and minimum spanning trees; network flow problems; graph connectivity; matchings; Eulerian graphs and digraphs; de Bruijn graphs; Hamiltonian graphs; traveling salesman problem; planar graphs; planarity testing; vertex and edge colorings; chromatic polynomials; five-coloring algorithm; and the Four-color problem.
Prerequisites: MA 502, (3-0-3)(Lec-Lab-Credit Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed.
Close |
CS 600 (3-0-3)(Lec-Lab-Credit Hours) Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Network forensics involves the identification, preservation, and analysis of evidence of attacks in order to identify the attackers and document their activity with sufficient reliability to justify appropriate technological, business, and legal responses. This course, however, only focuses on the technological and not on the legal components of the topic. The emphasis is on the network traffic analysis aspect, not on the host aspect. The technical aspect addresses analysis of intruder types and the intrusion process, review of network traffic logs (pcap, flow records) and profiles and their types, identification of attack signatures and fingerprints, application of data mining techniques, study of various traceback methods, and the extraction of information (e.g. from malware, including botnet traffic) acquired through the use of network analysis tools and techniques. The class will not only cover the subjects in theory but instead also provide the students with an extensive hands-on experience. The class will involve a fair amount of programming.
Prerequisites: CS 573 (3-0-3)(Lec-Lab-Credit Hours) Fundamentals of CyberSecurity This course studies the mathematical models for computer security (Bell- LaPadula, Clark-Wilson, Biba, and Gligor models). It analyzes and compares, with respect to formal and pragmatic criteria, the properties of various models for hardware, software, and database security. Topics also include: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. The course includes a project.
Close |
Close |
|
| (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) The class will cover advanced network and host security concepts and mechanisms. The class will cover the subjects in theory and provide the students with an extensive hands-on experience: assessing vulnerabilities, writing real working exploits for existing systems in a closed and controlled environment, and developing countermeasures to these perceived and real threats, also in the form of projects. The class will involve a fair amount of programming. Those who take the class are expected to be able to program in C/C++, have some a solid knowledge of assembly language, and be familiar with network basics and programming, as well as modern operating systems (Windows, MacOS, Unix).
Prerequisites: CS 576 and (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 |
CS 577 and (3-0-3)(Lec-Lab-Credit Hours) Cybersecurity Laboratory Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other securityoriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures.
Close |
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)
The course covers advanced architectures and programming techniques for visual computing and machine learning and their applications in gaming, simulation, data analysis and visualization. This class covers the architecture and programming of multicore processors and graphical processing units and associated programming frameworks and languages, for example, CUDA and OpenCL. The course will cover a wide range of applications including real-time rendering of populations and scenario developments in large scale dynamic environments, machine learning and computer vision algorithms for recognition and tracking, large scale dynamic scientific visualizations. C/C++ programming skills, experience with analyzing and implementing data structures and algorithms 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 |
|
| (0-0-3) (Lec-Lab-Credit Hours) Students will learn how to deal with issues impacting industrial software developments. A broad range of topics will be covered emphasizing large [project issues. Large software projects are those employing 50 or more software developers for three years or more. Throughout the course, emphasis will be placed on quantitative evaluation of alternatives. Specific examples and case histories from real projects in the telephone industry are provided. Students will learn how to create architectures for large systems based on the '4+1' model; how to use modern software connector technology; module decomposition; scaling of agile methods to large projects, the use of work flows to drive software process and database designs, test plans and implementation; configuration control and software manufacturing. The special issues of database conversion data consistency, database maintenance and performance tuning will be addresses for large databases. The physical environment of the computer systems including multi-site deployment; software releases and special management report generation are examined.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) To introduce students to systematic testing of software systems, software verificaton, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management software maintenance, software reuse and reverse engineering.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Students will learn how to analyze, predict, design, and engineer the required and expected reliability of software systems. Case studies will be used throughout, including studies of sysems that worked well and of systems that failed in some crucial aspect. Examples of the types of systems which will be studied are the London Ambulance Dispatch System, the Lucent Telephone Switching Systems and the Mars and Voyager missions.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Systems biology is a new approach to complex biological problems. It uses a combination of the most modern techniques for comprehensive measurements of cells and molecules, combined with complex computer and mathematical modeling, to build up inclusive depictions of how living systems function. This course is an integrative approach to help comprehend dynamic biological systems. True understanding of systems biology requires a cross-disciplinary approach. Topics will include both a biological and computer science perspective taught by experts in each individual discipline. The course will cover introduction to advance biological subjects in cell biology and genetics followed by introduction to computer science methods including modeling and “bio-machine” features of systems biology. In class, we will also explore critical reading of current research.
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) This course combines computational modeling with lab experience. The course is project based. Students will be able to choose from a pool of problems being actively researched at Stevens, understand how to obtain experimental data, design and implement a computational model, predict the behavior of the system being modeled, and use a second set of experimental results to validate the model.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Host forensics involves the identification, preservation, and analysis of evidence of attacks in order to identify the attackers and document their activity with sufficient reliability to justify appropriate technological, business, and legal responses. This course focuses on the technological and not on the legal components of the topic. The emphasis is on the host aspect, not on the network aspect. The technical aspect addresses analysis of intruder types and the intrusion process, review of attacks and their types, identification of attack signatures and fingerprints, application of data mining techniques, study of varied discovery methods including reverse engineering, and the extraction of information from hard disks and devices. The class will not only cover the subjects in theory but instead also provide the students with an extensive hands-on experience. The class will involve a fair amount of programming.
Prerequisites: (CS 392 or (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 631) and (3-0-3)(Lec-Lab-Credit Hours) In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX family of operating systems and their programming environment. Topics covered will include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced I/O, file systems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems (development and debugging tools such as "make" and "gdb") will also be covered.
Close |
CS 306 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course is an advanced graduate course that provides an up-to-date overview of data security models, techniques, and architectures in a variety of data management applications and settings. It will cover some of the most comprehensive work on database security, with the covered topics as: (1) access control policies and mechanisms for both relational and structured databases, (2) database integrity auditing techniques, (3) database watermarking, and (4) security in distributed database management systems.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Methods for giving meaning to programming language constructs; Operational, Denotational, and Axiomatic semantics. Introduction to algebraic tools; recursive definitions and fixed-point semantics; proving program correctness; and program equivalence.
Prerequisites: CS 630 (3-0-3)(Lec-Lab-Credit Hours) Analysis of finite automata and regular sets. Formal languages and grammars, and Chomsky-hierarchy. Context-free languages and PDAs. Applications to parsing.
Close |
Close |
|
| (1-0-1) (Lec-Lab-Credit Hours) International graduate students may arrange an educationally relevant internship or paying position off campus and receive Curricular Practical Training (CPT) credit via this course. Students must maintain their full time status while receiving CPT. Prior approval of the program director is required for enrollment. To justify enrollment, the student must have a concrete commitment from a specific employer for a specific project, and must provide to the program director for his/her approval a description of the project plus a statement from the employer that he/she intends to employ the student. This information must be provided to the program director with sufficient advance notice so that the program director has time to review the materials and determine if the project is appropriate. The project must be educationally relevant; i.e., it must help the student develop skills consistent with the goals of the educational program. During the semester, the student must submit written progress reports. At the end of the semester, the student must submit for grading a written report that describes his/her activities during that semester, even if the activity remains ongoing. The student must also present his/her activities in an accompanying oral presentation that is also graded. This is a one-credit course that may be repeated up to a total of three credits.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course will include the essential elements of artificial intelligence (AI); knowledge representation, search techniques, heuristic, typical problems and solution methodologies which constitute the less-than-precise definition of AI which exists today. Current practical uses of AI in information management and decision-support systems (such as intelligent agents, neural networks, and search engines) will be discussed and their relative merits/success rates evaluated. A potential application will be proposed and presented by the students.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An investigation of a current research topic at the pre-master's level, under the direction of a faculty member. A written report is required, which should have the substance of a publishable article. Students with no practical experience who do not write a master's thesis are invited to take advantage of this experience. One to six credits for the degree of Master of Science (Computer Science).
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) An investigation of a current research topic beyond that of CS 800 level, under the direction of a faculty member. A written report is required, which should have importance in Computer Science and should have the substance of a publishable article. This course is open to students who intend to be doctoral candidates and wish to explore an area that is different from the doctoral research topic. One to six credits for the degree of Doctor of Philosophy.
Close |
|
| (0-0-6) (Lec-Lab-Credit Hours) This will test the software engineering knowledge of students who have completed Stevens Institute of Technology-approved training programs in software engineering. Upon successful completion (graded pass/fail), students will be awarded six credits towards the Master of Quantitative Software Engineering on their study plan and three on the approval form for the certificate of Quantitative Software Engineering. To obtain a pass in this course, the student is required to demonstrate proficiency equivalent to a grade of ?B? (i.e. 3.0 out of 4.0) or higher. These credits are not transferable to other institutions.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) A participating seminar on topics of current interest and importance in computer science. Open to both undergraduates and graduate students.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Original research of a significant character carried out under the guidance of a member of the departmental faculty, which may serve as the basis for the dissertation, is required for the degree of Doctor of Philosophy. Credits to be arranged.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours)
Design project required for the degree of Engineer in Computer Science. One to 12 credits. Course may be repeated for credit up to a total of 12 credits. Prerequisite: enrollment in the Engineer degree and permission of advisor.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) Original research of a significant character carried out under the guidance of a member of the departmental faculty, which may serve as the basis for the dissertation, is required for the degree of Doctor of Philosophy.
Close |
|
|
Service Oriented Computing |
| (3-0-3) (Lec-Lab-Credit Hours)
An introduction to the Java programming language for those students who have little or no programming background. It is intended as an elective for the Master of Science in Information Systems to be taken near the end of the program. Basic topics considered will be programs and program structure in general and Java syntax, data types, flow of control, classes, methods and objects, arrays, exception handling, and recursion. In addition, the use of Java in enterprise-wide computing and distributed systems will be introduced by considering APIs in general, and the ones specific to JDBC and the Java security features in particular. Not for credit for Computer Science department undergraduate majors.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
Prerequisites: CS 590 or (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) The course provides an understanding of electronic commerce and related architectures, protocols, and technologies. It describes the e-commerce concept, objectives, and market drivers, as well as its requirements and underpinning techniques and technologies, including the Internet, WWW, multimedia, intelligent agents, client-server, and data mining. Security in e-commerce is addressed, including types of security attacks, security mechanisms, Virtual Private Networks (VPNs), firewalls, Intranets, and extranets. Implementation issues in e-commerce, including the design and management of its infrastructure and applications (ERP, CRM, and SCM), are discussed. M-commerce is addressed, electronic payment systems with their associated protocols are described, and various B2C and B2B applications are presented. Also, policy and regulatory issues in ecommerce are discussed.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) 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 introduces the concepts of cloud computing, using the frameworks of software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Fundamental concepts from each framework are introduced and related to the structure of the modern cloud. Cloud computing: economics of outsourcing. SaaS: The Web as a client-server system. Web stack: HTML and HTTP. Web data: XML and JSON. Web services and example APIs. PaaS: Introduction to databases and middleware. Data storage in the cloud. Privacy issues. IaaS: Design of server farms. Virtualization and green computing. Service discovery: DNS and content distribution networks. Batch processing in the cloud. Assignments include quizzes, examinations, and a presentation and term paper on a cloud-related topic.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Prerequisites: CS 590, (3-0-3)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
CS 385 (2-2-4)(Lec-Lab-Credit Hours) This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems.
Prerequisites: MA 331 or (3-0-3)(Lec-Lab-Credit Hours) An introduction to statistical inference and to the use of basic statistical tools. Topics include descriptive and inferential statistics; review of point estimation, method of moments, and maximum likelihood; interval estimation and hypothesis testing; simple and multiple linear regression; analysis of variance and design of experiments; and nonparametric methods. Selected topics, such as quality control and time series analysis, may also be included. Statistical software is used throughout the course for exploratory data analysis and statistical inference based in examples and in real data relevant for applications.
Close |
MA 501 (3-0-3)(Lec-Lab-Credit Hours) This course is an introduction to the basic ideas of pre-calculus and calculus for the people who need preparation or review before taking more advanced courses. The exact content depends upon the particular needs of those enrolled and the requirements of degree programs they are pursuing. Topics covered will be selected from the following: algebra, functions, and graphs; slopes and secant lines; derivatives; chain rule; optimization; curve sketching; integration; the exponential and natural logarithm; and probability density functions and integration by parts.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other majors with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press.
Prerequisites: CS 579 or (3-0-3)(Lec-Lab-Credit Hours) This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols such as DES, AES, PGP, and Kerberos, are studied.
Close |
CS 594 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Close |
CS 306 (3-0-3)(Lec-Lab-Credit Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7; review of information access and evaluation, health care terminology and health care economics, and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings.
Prerequisites: CS 548, (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| | (3-0-3) (Lec-Lab-Credit Hours) This course will introduce statistical processing of natural language texts, particularly counting words and phrases in and of themselves as well as associations between them using correlations and other measures. Goals of text mining include document classification, information retrieval, source authentication, and stylistic categorization. Typical document sources are newspaper stories, email captures, and Internet pages, as well as collections of non-fiction and fiction such as Federalist Papers and Edgar Allan Poe short stories.
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) The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills neeed to formulate a viable design and take it from the idea stage to a published game.
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
Prerequisites: CS 548 or (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
SOC 542 (3-0-3)(Lec-Lab-Credit Hours) This course addresses the important engineering issues in building largescale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies.
Close |
Close |
|
| (3-0-3) (Lec-Lab-Credit Hours) 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 Fundamentals of Service Oriented Computing (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 |
|
| (1-0-1) (Lec-Lab-Credit Hours) International graduate students may arrange an educationally relevant internship or paying position off campus and receive Curricular Practical Training (CPT) credit via this course. Students must maintain their full time status while receiving CPT. Prior approval of the program director is required for enrollment. To justify enrollment, the student must have a concrete commitment from a specific employer for a specific project, and must provide to the program director for his/her approval a description of the project plus a statement from the employer that he/she intends to employ the student. This information must be provided to the program director with sufficient advance notice so that the program director has time to review the materials and determine if the project is appropriate. The project must be educationally relevant; i.e., it must help the student develop skills consistent with the goals of the educational program. During the semester, the student must submit written progress reports. At the end of the semester, the student must submit for grading a written report that describes his/her activities during that semester, even if the activity remains ongoing. The student must also present his/her activities in an accompanying oral presentation that is also graded. This is a one-credit course that may be repeated up to a total of three credits.
Close |
|
| (0-0-3) (Lec-Lab-Credit Hours) A participating seminar on topics of current interest and importance in Service Oriented Computing.
Close |
|
|
|
|
|
|
Computer Science Department
Daniel Duchamp, Director |
|
|
|
|
|