- Select Year
- Registrar
- Introduction
- Student Life
- Student Services
- Engage
- Academics
- Admissions
- Research
- Athletics
- University Life
- News
- About
Graduate Courses
Course # | Course Name | Credit | Lab | Lecture | Study Hours |
CS 306 | Introduction to IT Security This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and nonrepudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies. | 4 | 1 | 3 | 0 |
CS 501 | Introduction to JAVA Programming 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. | 3 | 0 | 3 | 0 |
CS 503 | Discrete Mathematics for Cryptography 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, CS 135 | 3 | 0 | 3 | 0 |
CS 505 | Probability and Stochastic Processes I 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. | 3 | 0 | 3 | 0 |
CS 510 | Principles of Programming Languages 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, CS 590 | 3 | 0 | 3 | 0 |
CS 511 | Concurrent Programming 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, CS 385 | 3 | 0 | 3 | 6 |
CS 513 | Knowledge Discovery and Data Mining 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, MA 541 | 3 | 0 | 3 | 0 |
CS 514 | Computer Architecture 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 590, CS 550 | 3 | 0 | 3 | 0 |
CS 516 | Compiler Design 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, CS 385 | 3 | 0 | 3 | 0 |
CS 519 | Introduction to E-commerce 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. | 3 | 0 | 3 | 0 |
CS 520 | Introduction to Operating Systems 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, CS 550 | 3 | 0 | 3 | 0 |
CS 521 | TCP/IP Networking 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, CS 492 | 3 | 0 | 3 | 0 |
CS 522 | Mobile Systems and Applications 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, CS 492, CS 549 | 3 | 0 | 3 | 0 |
CS 524 | Introduction to Cloud Computing 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. | 3 | 0 | 3 | 0 |
CS 526 | Enterprise and Cloud Computing 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, CS 385 | 3 | 0 | 3 | 0 |
CS 532 | 3D Computer Vision 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. | 3 | 0 | 3 | 0 |
CS 533 | Cost Estimation and Metrics 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. | 0 | 0 | 0 | 0 |
CS 535 | Financial Computing 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. | 3 | 0 | 3 | 0 |
CS 536 | Integrated Services - Multimedia 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. | 3 | 0 | 3 | 0 |
CS 537 | Interactive Computer Graphics 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, CS 385 | 3 | 0 | 3 | 0 |
CS 538 | Visual Analytics 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, CS 385 | 3 | 0 | 3 | 0 |
CS 539 | Real-Time Rendering, Gaming, and Simulations Programming 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 | 0 |
CS 541 | Artificial Intelligence 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, CS 182, CS 385 | 3 | 0 | 3 | 0 |
CS 543 | Principles of Computer Mediated Entertainment 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, CS 545, SSW 540 | 3 | 0 | 3 | 0 |
CS 544 | Health Informatics 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. | 3 | 0 | 3 | 0 |
CS 545 | Human-Computer Interaction 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, CS 385 | 3 | 0 | 3 | 0 |
CS 546 | Web Programming 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, CS 442, CS 146, SOC 611 | 3 | 0 | 3 | 0 |
CS 547 | Web Programming II 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 | 0 |
CS 548 | Enterprise Software Architecture and Design 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, CS 385 | 3 | 0 | 3 | 0 |
CS 549 | Distributed Systems and Cloud Computing 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, CS 385 | 3 | 0 | 3 | 0 |
CS 550 | Computer Organization and Programming 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. | 3 | 0 | 3 | 0 |
CS 553 | Introduction to Text Mining and Statistical Natural Language Processing 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. | 3 | 0 | 0 | 0 |
CS 554 | Web Programming II 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 | 0 |
CS 555 | Agile Methods for Software Development 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. | 3 | 0 | 3 | 0 |
CS 558 | Computer Vision 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, CS 385, MA 232 | 3 | 0 | 3 | 0 |
CS 559 | Machine Learning: Fundamentals and Applications 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 | 0 |
CS 561 | Database Management Systems I 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 | 0 |
CS 562 | Database Management Systems II 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 | 0 |
CS 564 | Software Requirements Aquisition and Analysis 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. | 0 | 0 | 0 | 0 |
CS 568 | Software Development Project I 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. | 3 | 0 | 3 | 0 |
CS 569 | Software Development Project II 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. | 3 | 0 | 3 | 0 |
CS 570 | Introduction to Programming in C++ 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. | 3 | 0 | 3 | 0 |
CS 571 | Java Java | 3 | 0 | 3 | 0 |
CS 573 | Fundamentals of CyberSecurity Fundamentals of CyberSecurity Prerequisites: CS 590, CS 182, CS 385 | 3 | 0 | 3 | 0 |
CS 574 | Object-Oriented Analysis and Design Theory of object-oriented design, classes, interfaces, inheritance Prerequisites: CS 590, CS 385 | 3 | 0 | 3 | 0 |
CS 576 | Secure Systems Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilites, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Corequisites: CS 577 Prerequisites: CS 590, CS 182, CS 385, CS 306 | 3 | 0 | 3 | 0 |
CS 577 | Cybersecurity Laboratory Cybersecurity Laboratory Corequisites: CS 576 Prerequisites: CS 520, CS 492, CS 579 | 3 | 0 | 3 | 0 |
CS 578 | Privacy in a Networked World Increasing use of computers and networks in business, government, Prerequisites: CS 579, CS 594, CS 306 | 3 | 0 | 3 | 0 |
CS 579 | Foundations of Cryptography This course provides a broad introduction to cornerstones of security Prerequisites: CS 590, CS 385, CS 503 | 3 | 0 | 3 | 0 |
CS 581 | Online Social Networks 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 590, CS 182, CS 385, CS 392 | 3 | 0 | 3 | 0 |
CS 582 | Causal Inference 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. | 3 | 0 | 3 | 0 |
CS 585 | Introduction to Game Development The course will provide the students with: (i) A theoretical | 3 | 0 | 3 | 0 |
CS 586 | Machine Learning for Game Design This course examines the use of machine learning techniques in all Prerequisites: MA 222, CS 539, CS 585, CS 587 | 3 | 0 | 3 | 0 |
CS 587 | Game Engine Design In this course we will study the science and concrete programming tools Prerequisites: CS 537, CS 539, CS 541 | 3 | 0 | 3 | 0 |
CS 590 | Algorithms This is a course on more complex data structures, and algorithm design Prerequisites: MA 502, CS 570 | 3 | 0 | 3 | 0 |
CS 593 | Data Mining II: Advanced Algorithms for Mining Big Data 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. | 3 | 0 | 3 | 0 |
CS 594 | Enterprise Security and Information Assurance This course addresses the security of e-business and cyber environments Prerequisites: CS 548, SOC 542 | 3 | 0 | 3 | 0 |
CS 596 | Introduction to Windows Programming 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, CS 631 | 3 | 0 | 3 | 0 |
CS 597 | User Exp Design & Programming 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. | 3 | 0 | 3 | 0 |
CS 600 | Advanced Algorithm Design and Implementation 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, CS 385 | 3 | 0 | 3 | 0 |
CS 601 | Algorithmic Complexity 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 | 0 |
CS 609 | Data Management and Exploration on the Web 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, CS 442 | 3 | 0 | 3 | 0 |
CS 615 | Systems Administration 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, CS 492 | 3 | 0 | 3 | 0 |
CS 625 | Foundations of Distributed Computing 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 | 0 |
CS 629 | Advanced Internet Protocols 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 | 0 | 3 |
CS 630 | Models of Computation and Formal Languages 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 | 0 |
CS 631 | Advanced Programming in the UNIX Environment 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 | 0 |
CS 634 | Decidability and Computability 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 | 0 |
CS 638 | Advanced Computer Graphics 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 | 0 |
CS 643 | Formal Verification of Software 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 | 0 |
CS 651 | Introduction to Network and Graph Theory 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 | 0 |
CS 655 | Queuing Systems With Computer Applications I Queuing models will be developed and applied to current problems in Prerequisites: EE 605, CS 505 | 0 | 0 | 0 | 0 |
CS 656 | Queuing Systems with Computer Applications II 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. | 0 | 0 | 0 | 0 |
CS 660 | Graph Algorithms 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, CS 600 | 3 | 0 | 3 | 0 |
CS 665 | Network Forensics 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 | 0 |
CS 669 | Network Management 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 | 0 |
CS 675 | Threats, Exploits, and Countermeasures 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, CS 577, CS 579 | 3 | 0 | 3 | 0 |
CS 677 | Multicore Platforms for Cognitive Gaming and Simulation 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 | 0 |
CS 687 | Engineering of Large Software Systems 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. | 0 | 0 | 0 | 0 |
CS 688 | Software Testing, Quality Assurance & Maintenance 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. | 0 | 0 | 0 | 0 |
CS 689 | Software Reliability Engineering 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. | 0 | 0 | 0 | 0 |
CS 691 | Introduction to Systems Biology 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. | 3 | 0 | 3 | 0 |
CS 693 | Cryptographic Protocols 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 | 0 |
CS 694 | Advanced Computational Modeling in Biology and Biomaterials Science 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. | 3 | 0 | 3 | 0 |
CS 695 | Host Forensics 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, CS 306, CS 631 | 3 | 0 | 3 | 0 |
CS 696 | Database Security 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. | 3 | 0 | 3 | 0 |
CS 700 | Formal Semantics of Programming Language 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 | 0 |
CS 701 | CS Co-Op Education Project Please contact the Registrar for more information.
| 0 | 0 | 0 | 0 |
CS 703 | Curricular Practical Training 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. | 1 | 0 | 1 | 0 |
CS 777 | Introduction to Expert Systems 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. | 3 | 0 | 3 | 0 |
CS 800 | Special Problems in Computer Science (M.S.) 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). | 0 | 0 | 0 | 0 |
CS 801 | Special Problems in Computer Science (Ph.D.) 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. | 0 | 0 | 0 | 0 |
CS 802 | Software Engineering Examination 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. | 6 | 0 | 0 | 0 |
CS 810 | Special Topics in Computer Science A participating seminar on topics of current interest and importance in computer science. Open to both undergraduates and graduate students. | 3 | 0 | 3 | 0 |
CS 900 | Thesis in Computer Science (M.S.) 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. | 0 | 0 | 0 | 0 |
CS 950 | Design Project 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. | 0 | 0 | 0 | 0 |
CS 960 | Research in Computer Science(Ph.D.) 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. | 0 | 0 | 0 | 0 |
Course # | Course Name | Credit | Lab | Lecture | Study Hours |
SOC 501 | Introduction to JAVA Programming 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. | 3 | 0 | 3 | 0 |
SOC 510 | Human- Computer Interaction 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, CS 385 | 3 | 0 | 3 | 0 |
SOC 512 | Online Social Networks for SOC Please contact the Registrar for more information.
| 3 | 0 | 3 | 0 |
SOC 519 | Introduction to E-commerce 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. | 3 | 0 | 3 | 0 |
SOC 521 | Software Requirements Acquisition and Analysis 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 | 0 |
SOC 524 | Introduction to Cloud Computing 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. | 3 | 0 | 3 | 0 |
SOC 542 | Enterprise Software Architecture and Design 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, CS 385 | 3 | 0 | 3 | 0 |
SOC 550 | Knowledge Discovery and Data Mining 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, MA 501 | 3 | 0 | 3 | 0 |
SOC 551 | Privacy in a Networked World Increasing use of computers and networks in business, government, Prerequisites: CS 579, CS 594, CS 306 | 3 | 0 | 3 | 0 |
SOC 552 | Health Informatics 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, SOC 542 | 3 | 0 | 3 | 0 |
SOC 553 | Introduction to Text Mining and Statistical Natural Language Processing 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 | 0 |
SOC 585 | Introduction to Game Development 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. | 3 | 0 | 3 | 0 |
SOC 594 | Enterprise Security and Information Assurance 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, SOC 542 | 3 | 0 | 3 | 0 |
SOC 605 | Introduction to Service -Oriented Computing 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. | 3 | 0 | 3 | 0 |
SOC 606 | Introduction to Developing Internet Applications 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 Prerequisites: SOC 605 | 3 | 0 | 3 | 3 |
SOC 611 | Fundamentals of Service Oriented Computing 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. | 3 | 0 | 3 | 0 |
SOC 641 | Distributed Application Development 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 | 0 |
SOC 703 | Curricular Practical Training 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. | 1 | 0 | 1 | 0 |
SOC 810 | Special Topics in Service Oriented Computing A participating seminar on topics of current interest and | 0 | 0 | 0 | 0 |
Computer Science Department
Daniel Duchamp, Director