Computer Science

  • MET CS 693: Digital Forensics and Investigations
    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. Prereq: Working knowledge of windows computers, including installing and removing software. Access to a PC meeting the minimum system requirements defined in the course syllabus.
  • MET CS 694: Mobile Forensics and Security
    Overview of mobile forensics investigation techniques and tools. Topics include mobile forensics procedures and principles, related legal issues, mobile platform internals, bypassing passcode, rooting or jailbreaking process, logical and physical acquisition, data recovery and analysis, and reporting. Provides in-depth coverage of both iOS and Android platforms. Laboratory and hands-on exercises using current tools are provided and required.
  • MET CS 695: Enterprise Cyber Security
    The course provides an in-depth presentation of security issues in computer systems, networks, and applications. Formal security models are presented and illustrated on operating system security aspects, more specifically memory protection, access control and authentication, file system security, backup and recovery management, intrusion and virus protection mechanisms. Application level security focuses on language level security and various security policies; conventional and public keys encryption, authentication, message digest and digital signatures. Internet and intranet topics include security in IP, routers, proxy servers, and firewalls, application- level gateways, Web servers, file and mail servers. Discussion of remote access issues, such as dial-up servers, modems, VPN gateways and clients. Prereq: MET CS 535 or MET CS 625. Or instructor's consent.
  • MET CS 697: Special Topics in Computer Science
    The course MET CS 697 Special Topics in Computer Science changes from semester to semester. More than one CS697 can be offered in a given semester. Course descriptions for all sections are listed below. For more information, please contact MET Department of Computer Science.

    Fall 2020: Topic: IoT Security
    This course overviews the security issues in IoT. We will learn the IoT architecture, the interaction among the three major components of IoT, mobile, IoT device and cloud, and general threats in IoT. For each component, we will study the platform architecture, existing threats and countermeasures. Regarding mobile, we will discuss its platform architecture, followed by the security model and the common threats. Regarding IoT devices, we will focus on protocol (OAuth and MQTT) analysis and firmware analysis. Regarding cloud, we will first overview its cornerstone, virtualization and its security issues, and then discuss existing challenges in building trusted cloud platform. Finally, case studies of connect vehicle and smart home will be discussed. The course aims to provide foundations for students to understand the threats, vulnerabilities and defense mechanisms in IoT. Hands on lab exercises are included. Prereq: MET CS 695. Or, instructor's consent. The students are expected to have background on operating system internals and security fundamentals. This course is not a programming-intensive course. However, hands-on labs will be assigned. Students can also choose programming-intensive project.
  • MET CS 699: Data Mining
    The goal of this course is to study basic concepts and techniques of data mining. The topics include data preparation, classification, performance evaluation, association rule mining, and clustering. We will discuss basic data mining algorithms in the class and students will practice data mining techniques using data mining software. Students will use Weka and SQL Server or Oracle. Prereq: CS 546 and either CS 579 or CS 669. Or instructor's consent.
  • MET CS 701: Rich Internet Application Development
    The Rich Internet Application (RIA) Development course concentrates primarily on building rich client web applications in the browser for desktop and mobile devices. The course is divided into various modules covering in depth the following technologies: HTML5, AngularJS, and Ionic framework. Along with the fundamentals underlying these technologies, several applications will be showcased as case studies. Students work with these technologies starting with simple applications and then examining real world complex applications. At the end of this course, students would have mastered the latest and widely used RIA methodologies. Course Prerequisites: METCS520 (Information Structures) and METCS601 (Web Application Development), or instructor's consent.
  • MET CS 703: Network Forensics
    This course provides a comprehensive understanding of network forensic analysis principles. Within the context of forensics security, network infrastructures, topologies, and protocols are introduced. Students understand the relationship between network forensic analysis and network security technologies. Students will learn to identify network security incidents and potential sources of digital evidence and demonstrate the ability to perform basic network data acquisition and analysis using computer based applications and utilities. Students will also identify potential applications for the integration of network forensic technologies and demonstrate the ability to accurately document network forensic processes and analysis. Prereq: MET CS 625 and MET CS 695; or instructor's consent.
  • MET CS 755: Cloud Computing
    Cloud computing leverages the World Wide Web to fulfill computing needs. It packages applications, computing power, and storage as a metered service similar to a utility. This model is designed to supplant the traditional mechanism of desktop computing in many cases. This course will cover the origin, theory, enabling technology, and hands-on labs for key concepts in cloud computing. Students will: (1) Learn the unique set of problems and challenges in developing cloud computing applications; (2) Learn the platform, tools, technology and processes for developing cloud computing applications using Hadoop as the main example; and (3) Propose, develop, and run applications for the platforms covered. Prereq: MET CS 231 or MET CS 232; or instructor's consent.
  • MET CS 763: Secure Software Development
    Overview of techniques and tools to develop secure software. Focus on the application security. Topics include secure software development processes, threat modeling, secure requirements and architectures, vulnerability and malware analysis using static code analysis and dynamic analysis tools, vulnerabilities in C/C++ and Java programs, Crypto and secure APIs, vulnerabilities in web applications and mobile applications, and security testing. Hands-on lab and programming exercises using current tools are provided and required. Prerequisite: At least two 500- level (or above) programming-intensive computer science courses; or instructor's consent.
  • MET CS 767: Machine Learning
    Theories and methods for automating and representing knowledge with an emphasis on learning from input/output data. The course covers a wide variety of approaches, including Supervised Learning, Neural Nets and Deep Learning, Reinforcement Learning, Expert Systems, Bayesian Learning, Fuzzy Rules, Genetic Algorithms, and Swarm Intelligence. Each student focuses on two of these approaches and creates a term project. Laboratory course. Prerequisite: MET CS 521 and either MET CS 622, MET CS 673 or MET CS 682. MET CS 677 is strongly recommended. Or, instructor's consent.
  • MET CS 775: Advanced Networking
    The purpose of this course is to provide a solid foundation for the networking practitioner. While CS 535 introduces the basic networking concepts, this course provides the deep understanding that the practitioner who may be developing or evaluating network products needs to know. Consequently, this course does a much 'deeper dive' into the topics that tend to be the most counter-intuitive such as naming and addressing, synchronization, congestion management and routing. Naming and addressing is the least understood topic in networking and the most important. This topic is not covered in any current textbooks. The student will explore why the necessary and sufficient condition for synchronization for reliable data transfer is to bound 3 timers and independent of message exchanges. This is not at all obvious and has deep implications for protocols. To engineer networks, it is important to understand the degree to which the behavior of error and flow control protocols can be modified and to what purposes. Congestion management is the second least understood topic in networking. The course emphasizes congestion avoidance as opposed to congestion control and explores the impact in different environments. Routing is the third least understood topic in networking. This course is most concerned with its role in resource allocation but also that "routing protocols" are really distributed database protocols. In addition, the course will consider the interactions among these topics and the necessity of keeping the system effects in perspective. Prereq: MET CS 535; or instructor's consent.
  • MET CS 779: Advanced Database Management
    This course covers advanced aspects of database management including normalization and denormalization, query optimization, distributed databases, data warehousing, and big data. There is extensive coverage and hands on work with SQL, and database instance tuning. Course covers various modern database architectures including relational, key value, object relational and document store models as well as various approaches to scale out, integrate and implement database systems through replication and cloud based instances. Students learn about unstructured "big data" architectures and databases, and gain hands-on experience with Spark and MongoDB. Students complete a term project exploring an advanced database technology of their choice. Prereq: MET CS 579 or MET CS 669; or instructor's consent.
  • MET CS 781: Advanced Health Informatics
    This course presents the details of information processing in hospitals, hospital information systems (HIS), and more broadly health information systems. It presents the architecture, design, and user requirements of information systems in health care environment. It focuses on Information Technology aspects of Health Informatics specifically addressing the design, development, operation, and management of HIS. The first part of this course covers the introductory concepts including information processing needs, and information management in health care environment. The second part covers detailed description of HIS including hospital process modeling, architecture, quality assessment, and applicable tools. The final part of the course covers management of HIS and related issues and extension of this topic to other health care organizations. The course will have a term project providing students a hands-on experience in design and research of HIS. Prereq: MET CS 580; or instructor's consent.
  • MET CS 782: IT Strategy and Management
    This course 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 I.T. to business needs. CS 782 is at the advanced Masters (700) level, and it assumes that students understand IT systems at the level of CS 682 Systems Analysis and Design. Students who haven't completed CS 682 should contact their instructor to determine if they are adequately prepared. Prereq: MET CS 682, or instructor's consent.
  • MET CS 783: Enterprise Architecture
    This course builds upon the strong technical foundation of our MSCIS and MSCS curricula, by providing students with the CIO-level management perspective and skills of an enterprise architect, in the context of the technologies that implement those architectures. Current technologies and processes explored in the enterprise architecture context include blockchain, microservices, multimodal/analytic databases, DevOps, SAFe (Scaled Agile Framework), containers/Docker, and some leverage of AI techniques. We cover both the migration of legacy enterprise systems and de novo enterprise architecture development, vendor selection and management, cybersecurity in the enterprise, and complex system integration. Enterprise architecture decisions are presented in the context of the business goals and alignment that are critical for success, given globalization and the reality that "all companies are now technology companies." The course content is rich with case studies that illustrate practical application of enterprise architecture approaches and lessons learned. The course also includes a number of realistic enterprise architecture assignments and an incremental term project with components spanning the course, to provide students with hands on enterprise architecture experience. Students develop the understanding and skills needed to define and implement successful enterprise architectures that provide real strategic and concrete value to organizations, such as substantially reducing IT costs while improving performance, agility and alignment of information technology to business goals. On-campus classrooms follow a "flipped classroom" format, where significant class time is devoted to in-class group workshops. Prereq: MET CS 682. Or strategic IT experience. Or instructor's consent.
  • MET CS 789: Cryptography
    Undergraduate Prerequisites: MET CS 248 and MET CS 566.
    The course covers the main concepts and principles of cryptography with the main emphasis put on public key cryptography. It begins with the review of integers and a thorough coverage of the fundamentals of finite group theory followed by the RSA and ElGamal ciphers. Primitive roots in cyclic groups and the discrete log problem are discussed. Baby-step Giant-step and the Index Calculus probabilistic algorithms to compute discrete logs in cyclic groups are presented. Naor -- Reingold and Blum -- Blum -- Shub Random Number Generators as well as Fermat, Euler and Miller-Rabin primality tests are thoroughly covered. Pollard's Rho, Pollard's and Quadratic Sieve factorization algorithms are presented. The course ends with the coverage of some oblivious transfer protocols and zero-knowledge proofs. There are numerous programming assignments in the course. Prereq: MET CS 248, or instructor's consent.
  • MET CS 795: Directed Study
    Prereq: Consent of advisor. Requires prior approval of student-initiated proposal. Independent study on special projects under faculty guidance.
  • MET CS 796: Directed Study
    Prereq: consent of the instructor. Requires prior approval of student-initiated proposal. Independent study on special projects under faculty guidance. variable cr
  • MET CS 799: Advanced Cryptography
    This course builds on the material covered in CS 789 Cryptography. It begins with the coverage of commutative rings, finite fields, rings of polynomials, and finding of the greatest common divisor in the ring of polynomials. Irreducible polynomials are discussed. Field extensions and fields Fᴩ [x]/P are thoroughly covered. The main emphasis is put on elliptic curves over Fᴩ and F₂ and the ElGamal cipher on elliptic curves is presented. Block ciphers DES and double and triple DES are introduced. AES and WHIRLPOOL block ciphers and modes of operation are covered. The course continues with the introduction of message integrity and message authentication. In the last part of the course cryptographic hash functions SHA-512 and WHIRLPOOL as well as various digital signatures are introduced. Finally, entity authentication and key management issues are discussed. Prereq: MET CS 789; or instructor's consent.
  • MET CS 810: Master's Thesis in Computer Science
    This thesis must be completed within 12 months. Students majoring in Computer Science may elect a thesis option. This option is available to Master of Science in Computer Science candidates who have completed at least seven courses toward their degree and have a GPA of 3.7 or higher. Students are responsible for finding a thesis advisor and a principal reader within the department. The advisor must be a full-time faculty member; the principal reader may be part-time faculty member with a doctorate. Permission must be obtained by the department. 4cr.