Note: Course details for Summer 2019 will be available on December 15. The courses below were offered in Summer 2018 and can serve as a guide to what is typically offered.
Introduction to Internet Technologies and Web Programming
CAS CS 103
Introduction to the basic architecture and protocols underlying the operation of the Internet with an emphasis on Web design, Web application programming, and algorithmic thinking. General familiarity with the Internet is assumed. A student may not receive credit for CS 103 toward the CS concentration. (MCS) 4 cr.
Introduction to Computer Science 1
CAS CS 111
The first course for computer science majors and anyone seeking a rigorous introduction. Develops computational problem-solving skills by programming in the Python language and exposes students to a variety of other topics from computer science and its applications. Carries MCS divisional credit in CAS. 4 cr.
Introduction to Computer Science 2
CAS CS 112
Prereq: (CAS CS 111) or equivalent. Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting. Carries MCS divisional credit in CAS. 4 cr.
CAS CS 131
Representation, analysis, techniques, and principles for manipulation of basic combinatoric structures used in computer science. Rigorous reasoning is emphasized. 4 cr.
CAS CS 132
Prereq: (CAS CS 111; CAS MA 123 recommended). Basic concepts, data structures, and algorithms for geometric objects. Examples of topics: Cartesian geometry, transformations and their representation, queries and sampling, triangulations. Emphasis on rigorous reasoning and analysis, advancing algorithmic maturity and expertise in its application. 4 cr.
Probability in Computing
CAS CS 237
Prereq: (CAS MA 123 or equivalent) and (CAS CS 131). Introduction to basic probabilistic concepts and methods used in computer science. Develops an understanding of the crucial role played by randomness in computing, both as a powerful tool and as a challenge to confront and analyze. Emphasis on rigorous reasoning, analysis, and algorithmic thinking. 4 cr.
Concepts of Programming Languages
CAS CS 320
Prereq: (CAS CS 112 and CAS CS 131). Concepts involved in the design of programming languages. Bindings, argument transmission, and control structures. Environments: compile-time, load-time, and run-time. Interpreters. 4 cr.
Introduction to Analysis of Algorithms
CAS CS 330
Prereq: (CAS CS 112, CAS CS 131, and CAS CS 132) or (CAS CS 235) or (CAS CS 237). Examines the basic principles of algorithm design and analysis; graph algorithms; greedy algorithms; dynamic programming; network flows; polynomial-time reductions; NP-hard and NP-complete problems; approximation algorithms; randomized algorithms. 4 cr.
CAS CS 455
Prereq: (CAS CS 112 & CAS CS 210), CAS CS 350 is recommended; or consent of instructor. Concepts underlying the design of high-performance computer networks and scalable protocols. Topics include Internet design principles and methodology, TCP/IP implementation, packet switching and routing algorithms, multicast, quality of service considerations, error detection and correction, and performance evaluation. 4 cr.
CAS CS 530
Prereq: (CAS CS 330) or consent of instructor. Studies the design and efficiency of algorithms in several areas of computer science. Topics are chosen from graph algorithms, sorting and searching, NP-complete problems, pattern matching, parallel algorithms, and dynamic programming. 4 cr.
CAS CS 542
Introduction to modern machine learning concepts, techniques, and algorithms. Topics include regression, kernels, support vector machines, feature selection, boosting, clustering, hidden Markov models, and Bayesian networks. Programming assignments emphasize taking theory into practice, through applications on real-world data sets. 4 cr.
Topics in Computer Science
CAS CS 591
Topics in Computer Science
CAS CS 591
Prereq: (CAS CS 112) or consent of instructor. Topic for Summer 2018: Graph Theory for the Internet Age. This course investigates new tools and mathematics that aid in understanding real-world graphs. The course begins with a quick review of basic graph theory (various definitions, some key concepts, theorems, and algorithms). It then introduces some more advanced concepts such as random graph theory and spectral graph theory. Using such tools, students investigate various models and concepts that attempt to describe real-world networks – scale-free networks, preferential attachment, sparse and inhomogenous models, etc. We also discuss some key recent results such as Szeremedi’s regularity lemma. The course also studies some past and future applications of these concepts that are relevant to students' current interests. At least the half of the grade will be based on term projects to be done in small groups. 4 cr.
Introduction to Software Engineering
ENG EC 327
Prereq: (ENG EK 127 or ENG EK 128). Introduction to software design, programming techniques, data structures, and software engineering principles. The course is structured bottom up, beginning with basic hardware followed by an understanding of machine language that controls the hardware and the assembly language that organizes that control. It proceeds through fundamental elements of functional programming languages, using C as the case example, and continues with the principles of object-oriented programming, as principally embodied in C++ but also its daughter languages Java, C#, and objective C. The course concludes with an introduction to elementary data structures and algorithmic analysis. Throughout, the course develops core competencies in software engineering, including programming style, optimization, debugging, compilation, and program management, utilizing a variety of Integrated Development Environments and operating systems. 4 cr.
Enterprise Client-Server Software Systems Design
ENG EC 512
Prereq: Programming experience in C++, Java, or C#, basic knowledge of internet protocols and HTML. A personal computer running Microsoft Windows 7 or later is required. Examination of past, current, and emerging technologies. Client side technologies including HTML and DHTML, CSS, scripting. Server side technologies including HTTP, CGI, ISAPL, and active server pages. Current and emerging server technologies including ASP.NET, XML/SOAP web services, REST, wireless and handheld access limitations, SQL databases, streaming media, cloud services and CMS. Design and implementation of solutions involving SQL database connectivity, session state, security requirements, SSL, and authentication of clients. Programming using C# and ASP.NET. Small-team projects involving design through implementation. 4 cr.
Computers and Their Applications
MET CS 101
For students with no previous experience with computers. Organization and function of computer systems; application of computers in today's society; social impact of computers. Introduction to algorithms, various types of application packages, and the Internet. Not for computer science majors. 4 cr.
Introduction to Programming
MET CS 201
Introduction to problem-solving methods and algorithm development. Includes procedural and data abstractions, program design, debugging, testing, and documentation. Covers data types, control structures, functions, parameter passing, library functions, and arrays. Laboratory exercises in Python. 4 cr.
Programming with C++
MET CS 231
Prereq: (MET CS 201) or instructor's consent. Covers the elements of object-oriented programming and the C++ language. Data types, control structures, functions, library functions, classes, inheritance, and multiple inheritance. Use of constructors, destructors, function and operator overloading, reference parameters and default values, friend functions, input and output streams, templates, and exceptions. 4 cr.
Programming with Java
MET CS 232
Prereq: (MET CS 201) or instructor's consent. Covers the elements of object-oriented programming and the Java Programming Language. Primitive data types, control structures, methods, classes, arrays and strings, inheritance and polymorphism, interfaces, creating user interfaces, applets, exceptions and streams. 4 cr.
MET CS 248
Fundamentals of logic (the laws of logic, rules of inferences, quantifiers, proofs of theorems). Fundamental principles of counting (permutations, combinations), set theory, relations and functions, graphs, trees and sorting, shortest path and minimal spanning trees algorithms. Monoids and Groups. 4 cr.
Data Structures with Java
MET CS 342
Prereq: (MET CS 232) or instructor's consent. Covers data structures using the Java programming language. Topics include data abstraction, encapsulation, information hiding, and the use of recursion, creation, and manipulation of various data structures: lists, queues, tables, trees, heaps, and graphs, and searching and sorting algorithms. 4 cr.
Introduction to Web Application Development
MET CS 401
Introduction to Business Data and Communication Networks
MET CS 425
Prereq: (MET CS 200) or instructor's consent. Basic concepts of data communications and computer networks; hardware, software, and reference models; TCP/IP protocol suit. Overview of voice communication, LAN, network development life cycle, security, and management. IT Economics: Total Cost Ownership, Return on Investment, and IT Project Portfolio Management. Restrictions: May not be taken in conjunction with MET CS 535 or MET CS 625. Only one of these courses can be counted toward degree requirements. 4 cr.
Introduction to IT Project Management
MET CS 432
Provides a comprehensive overview of IT Project Management and the key processes associated with planning, organizing, and controlling of software projects. The course focuses on various knowledge areas such as project scope management, risk management, quality management, communications management, and integration management. Students are required to submit a term paper. 4 cr.
Introduction to Database Design and Implementation for Business
MET CS 469
Studies the latest relational and object-relational tools and techniques for persistent data and object modeling and management. Provides extensive hands-on experience using Oracle or Microsoft SQL Server as students learn the Structured Query Language (SQL) and design and implement databases. Topics covered include the relational and entity-relational models, data modeling, normalization, object modeling, SQL, advanced SQL, stored procedures, triggers, database design, database lifecycle, and transactions. Introduction to advanced topics including performance tuning, distributed databases, replication, business intelligence, data warehouses, internet databases, database administration, security, backup and recovery. Students design and implement a database system as a term project. Laboratory Class. Restrictions: This course may not be taken in conjunction with MET CS 579 or MET CS 669. Only one of these courses can be counted toward degree requirements. 4 cr.
MET CS 472
Prereq: (MET CS 231 or MET CS 232) or instructor's consent. Computer organization with emphasis on processors, memory, and input/output. Includes pipelining, ALUs, caches, virtual memory, parallelism, measuring performance, and basic operating systems concepts. Discussion of assembly language instruction sets and programming as well as internal representation of instructions. 4 cr.
Introduction to Software Engineering
MET CS 473
Prereq: (MET CS 342) or instructor's consent. Techniques for the construction of reliable, efficient, and cost-effective software. Requirement analysis, software design, programming methodologies, testing procedures, software development tools, and management issues. Students plan, design, implement, and test a system in a group project. Laboratory course. 4 cr.
Information Structures with Python
MET CS 521
Prereq: (MET CS 300) or instructor's consent. Only recommended for students with a programming background. Covers the concepts of the object-oriented approach to software design and development using the Python programming language. Includes a detailed discussion of programming concepts starting with the fundamentals of data types, control structures methods, classes, arrays and strings, and proceeding to advanced topics such as inheritance and polymorphism, creating user interfaces, exceptions and streams. Upon completion of this course students will be capable of applying software engineering principles to design and implement Python applications that can be used in conjunction with analytics and big data. 4 cr.
MET CS 535
Prereq: (MET CS 575 and (MET CS 201 or MET CS 231 or MET CS 232)) or instructor's consent. This course provides a robust understanding of networking. It teaches the fundamentals of networking systems, their architecture, function, and operation and how those fundamentals are reflected in current network technologies. Students learn the principles that underlie all networks and the application of those principles (or not) to current network protocols and systems. The course explains how layers of different scope are combined to create a network. There will be a basic introduction to Physical Media, the functions that make up protocols, such as error detection, delimiting, lost and duplicate detection; and the synchronization required for the feedback mechanisms: flow and retransmission control, etc. Students will be introduced to how these functions are used in current protocols, such as Ethernet, WiFi, VLANs, TCP/IP, wireless communication, routing, congestion management, QoS, network management, security, and the common network applications as well as some past applications with unique design solutions. Restrictions: This course may not be taken in conjunction with MET CS 625 or MET CS 425 (undergraduate). Only one of these courses can be counted toward degree requirements. 4 cr.
Foundations of Analytics with R
MET CS 544
The goal of this course is to provide students with the mathematical and practical background required in the field of data analytics. Starting with an introduction to probability and statistics, the R tool is introduced for statistical computing and graphics. Different types of data are investigated along with data summarization techniques and plotting. Data populations using discrete, continuous, and multivariate distributions are explored. Errors during measurements and computations are analyzed in the course. Confidence intervals and hypothesis testing topics are also examined. The concepts covered in the course are demonstrated using R. Laboratory Course. Prereq: MET CS546 and (MET CS520 or MET CS521), or equivalent knowledge, or instructor's consent. 4 cr.
Quantitative Methods for Information Systems
MET CS 546
Prereq: academic background that includes the material covered in a standard course on college algebra or instructor's consent. Provides Computer Information Systems students with the mathematical fundamentals required for successful quantitative analysis of problems in the field of business computing. The first part of the course introduces the mathematical prerequisites for understanding probability and statistics. Topics include combinatorial mathematics, functions, and the fundamentals of differentiation and integration. The second part of the course concentrates on the study of elementary probability theory, and discrete and continuous distributions. 4 cr.
Data Analysis and Visualization
MET CS 555
Prereq: (MET CS 544), equivalent knowledge, or instructor's consent. Provides an overview of the statistical tools most commonly used to process, analyze, and visualize data. Topics include simple linear regression, multiple regression, logistic regression, analysis of variance, and survival analysis. These topics are explored using the statistical package R, with a focus on understanding how to use and interpret output from this software as well as how to visualize results. In each topic area, the methodology, including underlying assumptions and the mechanics of how it all works along with appropriate interpretation of the results, are discussed. Concepts are presented in context of real world examples. 4 cr.
Analysis of Algorithms
MET CS 566
Prereq: (MET CS 248 and (MET CS 341 or MET CS 342)) or instructor's consent. Discusses basic methods for designing and analyzing efficient algorithms emphasizing methods useful in practice. Topics include sorting, searching, dynamic programming, greedy algorithms, advanced data structures, graph algorithms (shortest path, spanning trees, tree traversals), matrix operations, string matching, and NP completeness. 4 cr.
MET CS 575
Prereq: (MET CS 472 and (MET CS 231 or MET CS 232)) or instructor's consent. Overview of operating system characteristics, design objectives, and structures. Topics include concurrent processes, coordination of asynchronous events, file systems, resource sharing, memory management, security, scheduling, and deadlock problems. 4 cr.
MET CS 579
Prereq: (MET CS 231 or MET CS 232) or instructor's consent. Provides a theoretical yet modern presentation of database topics ranging from Data and Object Modeling, relational algebra and normalization, to advanced topics such as using Java/C++ to develop web-based database applications. Other topics include relational data modeling, SQL and manipulating relational data; applications programming for relational databases; physical characteristics of databases; achieving performance and reliability with database systems; and object-oriented and distributed information systems. Restrictions: May not be taken in conjunction with MET CS 669 or MET CS 469 (undergraduate). Only one of these courses can be counted toward degree requirements. 4 cr.
Web Application Development
MET CS 601
Business Data Communication and Networks
MET CS 625
Prereq: (MET CS 200) or instructor's consent. Presents the foundations of data communications and takes a bottom-up approach to computer networks. Concludes with an overview of basic network security and management concepts. Restrictions: MS CIS only. May not be taken in conjunction with MET CS 425 (undergraduate) or MET CS 535. Only one of these courses can be counted toward degree requirements. 4 cr.
Information Technology Project Management
MET CS 632
A comprehensive overview of the principles, processes, and practices of software project management. Students learn techniques for planning, organizing, scheduling, and controlling software projects. Substantial focus on software cost estimation and software risk management. Students obtain practical project management skills and competencies related to the definition of a software project, establishment of project communications, managing project changes, and managing distributed software teams and projects. 4 cr.
Agile Software Development
MET CS 634
eLive offering. A comprehensive overview of the principles, processes, and practices of agile software development. Students learn techniques for initiating, planning, and executing software development projects using agile methodologies. Students obtain practical knowledge of agile development frameworks and distinguish between agile and traditional project management methodologies. Students learn how to apply agile tools and techniques in the software development lifecycle from project ideation to deployment, including establishing an agile team environment, roles and responsibilities, communication and reporting methods, and embracing change. Also leverages the guidelines outlined by the Project Management Institute for agile project development as a framework. 4 cr.
Database Design and Implementation for Business
MET CS 669
Studies the latest relational and object-relational tools and techniques for persistent data and object modeling and management. Provides extensive hands-on experience using Oracle or Microsoft SQL Server as students learn the Structured Query Language (SQL) and design and implement databases. Students design and implement a database system as a term project. Restrictions: Only for MS CIS. This course may not be taken in conjunction with MET CS 469 (undergraduate) or MET CS 579. Only one of these courses can be counted toward degree requirements. 4 cr.
MET CS 673
Prereq: (MET CS 342) and at least one 500-level computer programming-intensive science course, or instructor's consent. Techniques for the construction of reliable, efficient, and cost-effective software. Requirement analysis, software design, programming methodologies, testing procedures, software development tools, and management issues. Students plan, design, implement, and test a system in a group project. Laboratory course. 4 cr.
Information Systems Analysis and Design
MET CS 682
Prereq: basic programming knowledge or instructor's consent. Object-oriented methods of information systems analysis and design for organizations with data-processing needs. System feasibility; requirements analysis; database utilization; Unified Modeling Language; software system architecture, design, implementation, and management; project control; and systems-level testing. Laboratory course. 4 cr.
Web Analytics and Mining
MET CS 688
Prereq: (MET CS 544 or MET CS 555) or equivalent knowledge, or instructor's consent. Covers the areas of web analytics, text mining, web mining, and practical application domains. The web analytics part of the course studies the metrics of web sites, their content, user behavior, and reporting. Google Analytics tool is used for collection of web site data and doing the analysis. The text mining module covers the analysis of text including content extraction, string matching, clustering, classification, and recommendation systems. The web mining module studies how web crawlers process and index the content of web sites, how search works, and how results are ranked. Application areas mining the social web and game metrics will be extensively investigated. Laboratory Course. 4 cr.
Digital Forensics and Investigations
MET CS 693
Prereq: Working knowledge of windows computers, including installing and removing software. Must have access to a personal computer that meets the minimum system requirements defined in the course syllabus. Provides a comprehensive understanding of digital forensics and investigation tools and techniques. Learn what computer forensics and investigation is as a profession and gain an understanding of the overall investigative process. Operating system architectures and disk structures are discussed. Studies how to set up an investigator's office and laboratory, as well as what computer forensic hardware and software tools are available. Other topics covered include importance of digital evidence controls and how to process crime and incident scenes, details of data acquisition, computer forensic analysis, e-mail investigations, image file recovery, investigative report writing, and expert witness requirements. Provides a range of laboratory and hands-on assignments either in solo or in teams. With rapid growth of computer systems and digital data this area has grown in importance. 4 cr.
IT Strategy and Management
MET CS 782
Prereq: (MET CS 682) or instructor's consent. Describes and compares contemporary and emerging information technology and its management. Students learn how to identify information technologies of strategic value to their organizations and how to manage their implementation. The course highlights the application of IT to business needs. MET CS 782 is at the advanced Masters (700) level, and assumes that students understand IT systems at the level of MET CS 682 Systems Analysis and Design. Students who haven't completed MET CS 682 should contact their academic advisor or the professor to determine if they are adequately prepared. 4 cr.