facebook

Mathematics and Computer Science MCS Courses

MCS 0044 - Basic Algebra

Review of whole numbers, decimals, integers, rational and irrational numbers, real numbers. Conversion of units, basic geometry (perimeter, area, and volume of prisms and cylinders. Slope-intercept form of an equation, algebra of exponents, polynomials, factoring, and rational expressions. Solving and graphing linear equations and inequalities, systems of two linear equations, and quadratic equations.

MCS 0054 - Intermediate Algebra/Geometry

Fundamental operations, factoring, exponents, radical expression, rectangular coordinate system, and graphing. Linear equations and inequalities, absolute value equations, and inequalities, systems of linear equations. Introduction to quadratic equations, fundamental concepts, and formulae of geometry.

MCS 1003 - Intro to Comp Applications

Prerequisite: None. Introduction to applications involving use of a computer. E-Mail, word processors, spreadsheets, database applications, introduction to computer graphics. (This course or a programming course is required of those who do not successfully demonstrate knowledge of these topics upon entry to Lawrence Tech. No credit for mathematics/computer science majors. Lecture 3hrs.

MCS 1074 - Precalculus

Quadratic equations, functions and graphs, systems of equations, inequalities, logarithms, trigonometric functions, identities, equations. No credit after completion of MCS1224 or MCS1414. Prerequisites: MCS 0054

MCS 1111 - Coding Club

This one credit course will focus on programming languages such as Scratch, Python, Javascript, Ruby, R, PHP, C# or MATLAB. Students will be expected to work in groups on coding projects that will focus on syntax and semantics with application to a specific language.n

MCS 1142 - Introduction to C

An introduction to writing programs using C programming language. Brief introduction to computer hardware and software history. Binary, decimal, hex, and octal representations. Variable types, conditional statements, loops, arrays, functions including sending and returning values, formatted input, and output including file operations. Simple pointer types.

MCS 1203 - Logic

Introduction to deductive and inductive logic. Aristotelian logic, truth functions, and truth tables, formal deductions, analysis of fallacies, inductive reasoning. (No academic credit for Mathematics/Computer Science or Computer Science majors.)

MCS 1224 - Survey of Calculus

Must have placement. Limits and continuity, differentiation, curve sketching, applications of differentiation, integration, methods and applications of integration, multivariable calculus. No credit after completion of MCS1414. Prerequisites: MCS 1074

MCS 1243 - Foundations of Computer Science

An overview of computer science for CS and non-CS majors with the overarching objective of developing a computational mindset. For CS majors, to gain an appreciation of the relevance of the various computing topics and interrelationships for future courses. For non-CS majors, to provide the necessary technological background to appreciate and integrate into today's technical society. Prerequisites: MCS 0054

MCS 1254 - Geometry in Art

A rigorous look into symmetry, tiling, perspective and surfaces using tools from Euclidean Geometry and other mathematical principles to further the understanding of limits, areas under curves, slopes and tangent lines. Topics covered include Fibonacci numbers, the Golden Ratio, Platonic and Archimedean solids, rigid motions, rosette, frieze and wallpapers groups and their commonalities in Art, Engineering and Computer Science. Prerequisites: MCS 0044

MCS 1414 - Calculus 1

Topics include, limits and continuity, differentiation of algebraic and transcendental functions, mean value theorem, applications of differentiation, anti-derivatives, indefinite integrals, inverse trigonometric functions, substitutions, definite integrals, the Fundamental Theorem of Calculus, applications of integration. Applications will be emphasized. In addition to regular class meetings, all students are required to participate in calculus lab sessions. The schedule, frequency, and modality of these labs may vary by section. Refer to the class schedule and course syllabus for details. Prerequisites: MCS 1074

MCS 1424 - Calculus 2

Hyperbolic functions, L'Hospital's rule, techniques of integration, application to arc length and surface area, polar coordinates, infinite series, Taylor Series. In addition to regular class meetings, all students are required to participate in calculus lab sessions. The schedule, frequency, and modality of these labs may vary by section. Refer to the class schedule and course syllabus for details. Prerequisites: MCS 1414

MCS 1514 - Computer Science 1

Introduction to programming with C++. Binary, two's complement, decimal, hex, and octal representations. Variable types. Simple, iterative, and conditional statements. Procedure and functions with parameters by value and reference with or without a returning value. Arrays and vectors, multidimensional arrays, bubble and selection sorts, linear and binary search. Pointer and dynamic memory allocation, character and C-strings, file input/output (sequential). Classes, friends, array of objects, and operators' overloading. Inheritance, polymorphism, virtual function, and recursion. Prerequisites: MCS 0054

MCS 1643 - Introduction to Game Development

Hands-on introduction for programmers and artists into game development. Each of the major components of making computer games will be studied through hands-on exercises. Students will make their first games using industry-wide tools. No prior programming experience required.

MCS 1653 - Game Genre Development

Create video games of several different genres such as shoot-em-up, scrolling shooter, platform, puzzles, maze racing, sports, and RPG. Examining and implementing game requirements for different hardware platforms. Prerequisites: MCS 1643

MCS 2111 - MCS Seminar

Each Spring, the faculty in Mathematics and Computer Science will provide students with an overview of the research they are working on. This will provide students with the opportunity gain critical exposure to research ideas early on in their academic careers. Each week a different faculty member will host the meeting to allow students to ask questions and to learn what is current in the field of math and computer science. Meetings will be hosted virtually, via Zoom.

MCS 2124 - Statistics

This course covers descriptive statistics, probability, and probability distributions with an emphasis on statistical inference such as confidence intervals, hypothesis testing, correlation and regression, chi-square tests, t-and F-distributions, and selected nonparametric tests. Prerequisites: MCS 1074

MCS 2193 - Scripting for Interactive Technologies

In this course, students will learn object-oriented programming techniques and write scripts for a current game engine. Students will gain a basic understanding of computer science concepts, awareness of different scripting languages, explore a program-development environment, and become aware of code syntax. The course will also emphasize an understanding of control structures, data structures, and program logic.

MCS 2403 - Introduction to Data Science

The Data Science course delivers the fundamentals of data sets analysis arising in various disciplines, like banking, finance, health care, bioinformatics, security, education, and social services. The content of this course introduces theories and practices of data science concepts based on mathematical and statistical concepts. This course offers a multitude of topics relevant to the analysis of complex data sets accompanying programming and code algorithms in R that underpin data science. This course is ideal for students and practitioners without a strong background in data science. The students will also learn analyses of foundational theoretical subjects, including the history of data science, matrix algebra, random vectors, and multivariate analysis; a comprehensive examination of time series forecasting, including the different components of time series and transformations to achieve stationarity; introductions to the R programming languages, including basic data types and sample manipulations; an exploration of algorithms, including how to write one and how to perform an asymptotic analysis; and, a comprehensive discussion of several techniques for analyzing and predicting complex data sets. Toward the end of the class, students will develop a case study by gathering data to apply and practice the learned concepts in a large-scale project. Prerequisites: MCS 1414

MCS 2414 - Calculus 3

Three-dimensional analytic geometry. Vectors, vector-valued functions, motions in space, functions of several variables, partial differentiation, multiple integration, integration of vector fields, Green's Theorem and Divergence Theorem. Prerequisites: MCS 1424

MCS 2423 - Differential Equations

Topics include, but are not limited to, solving first and second-order differential equations and first-order linear systems of differential equations by various techniques such as separation of variables, integrating factors, substitution methods, variation of parameters, and Laplace Transforms. Emphasis will be placed on applications of differential equations arising from engineering applications and the natural sciences. Prerequisites: Undergraduate level MCS 2414 (Minimum Grade of D-).

MCS 2513 - Software Engineering I

This course is a brief overview of software engineering topics including software development models, requirements, software design & implementation, software debugging & testing, software maintenance, software quality & metrics, and software project management. Focused in-depth learning goals include system modeling & analysis tools, model-based design, coding standards, IDE tools, version control systems, and the introduction of agile software development methodologies. In addition to theories, students will practice the development of a long-running software project by applying & utilizing software engineering techniques & tools covered in class. Prerequisites: MCS 1514

MCS 2514 - Computer Science 2

Records, advanced file input/output (random access), dynamic memory allocation. Static and dynamic implementation of stacks, linked lists (ordered and unordered), queues (regular and priority), and circular queues. Selection and insertion sort, binary search. Prerequisites: MCS 1514

MCS 2523 - Discrete Mathematics

Number Theory, review of induction and recursion, advanced counting, equivalence, partial ordering, graphs, trees. Prerequisites: MCS 1414

MCS 2534 - Data Structures

Analysis of algorithms, Big Oh notation, and asymptotic behavior. Advanced sorting (heapsort, quicksort), external sorting. Binary, multiway, and AVL trees. Prerequisites: MCS 2514 and MCS 2523

MCS 2613 - Software Engineering II

This course continues from Software Engineering I and covers overall software engineering topics especially for developing large software using modelling languages and object-oriented design methodologies. In-depth learning topics include UML (Unified Modelling Language) & tools, Object Oriented Design (OOD) methodologies, model-based design, software reuse, and comparison of various version control systems. Students will gain practical experience in the development of a larger long-running software project with a focus on object-oriented programming language utilizing UML diagrams such as Use-Case, State, Sequence, Class, and Component diagrams as well as OOD methodologies. Prerequisites: MCS 2514 and 2513

MCS 2993 - Topics in Computer Science

Current trends and technology in computer science will be presented to Freshman and Sophomores to provide opportunities to begin to study and research a specialized topic. Topics will be decided by the faculty who are teaching. Prerequisites: MCS 1514

MCS 3111 - FM Prep

This seminar course covers material to prepare students to take the FM examination on financial mathematics. Prerequisites: MCS 1414 and MCS 1424

MCS 3123 - Applied Statistical Methods

Students will review the fundamentals of probability theory and then move to distribution theory and parameter estimation techniques to create a basis for understanding the application of statistical tests. Topics covered will include hypothesis testing and model-building strategies, assumption checking such as checking for normality and outliers, visualization methods such as scatterplots and box plots, and model diagnostics such as serial correlation and normality. We will use the free statistical package R to do most problems in class and in homework. Students do not need to know R prior to this class. Basic R programming will be taught in class and more complex codes for simulations and other applications. Prerequisites: MCS 2124 or MCS 2414

MCS 3324 - Applied Calc & Diff Eq

Methods of integration, functions of two variables, partial derivatives, double integrals, power series, operations with series, introduction to differential equations, first order linear differential equations, higher order diff. eq., initial value problems, Laplace transform. No credit after completion of MCS2423. Prerequisites: MCS 1414

MCS 3403 - Probability & Statistics

Representation of data, probability, random variables, discrete and continuous distributions, sampling theory, central limit theorem, confidence intervals, tests of statistical hypotheses, regression analysis. Prerequisites: MCS 2414

MCS 3413 - Advanced Engineering Mathematics

Laplace transforms of continuous and piecewise continuous functions, inverse Laplace transforms, applications to ordinary differential equations. Complex variables, analytic functions, Laurent expansions, residue theory with applications, complex inversion integral and convolution integral. Prerequisites: MCS 2423

MCS 3503 - Computer Graphics Programming

Application programming interfaces (APIs); interactive computer graphics; two- and three-dimensional representation and transformation; viewing with parallel and perspective projections; shading with illumination and material. Prerequisites: MCS 2534

MCS 3513 - Software Architecture

Software Architecture course teaches the principles and concepts involved in the design and development of large-scale software systems. Various architectural styles such as layered, event-driven, service-oriented, cloud, etc are covered. How to design, select, and use appropriate reusable design patterns/core assets is also introduced. Object-oriented design & programming skills are reviewed in depth. Model-Based Design approaches are also covered in depth. Students will gain practical experience in the development of a software project by selecting/reusing appropriate architectural style and software design patterns. Students will also gain real-world model-based design and code generation experiences using tools such as SIMULINK. Prerequisites: MCS 2513 and MCS 2514

MCS 3523 - Mathematical Modelling

This course is designed to provide students with an understanding of mathematical modeling and the link between Mathematics and Engineering, Science and Nature. This course will introduce modeling techniques and dynamical systems analysis using examples from Engineering, Physics, and Biology. Coverage includes both the analysis, including bifurcation theory, and computation. MATLAB will be used extensively in this class. Prerequisites: MCS 2423, MCS 3403 and MCS 1142

MCS 3543 - Intro to Database Systems

Organization of database systems. Data definition, retrieval, manipulation. Relational databases, SQL. Practice using standard databases. Prerequisites: MCS 1514

MCS 3563 - Game Design

Each aspect of game design is examined and implemented. At the end of the course students will have designed a complete game. Prerequisites: MCS 1643

MCS 3603 - Java

Introduction to JAVA; comparing Java and C++, Java building elements; control structures, methods, object-oriented programming, arrays and strings, inheritance, graphics programming, applets, multithreading and multimedia. Prerequisites: MCS 1514

MCS 3633 - Intro to Functional Prog

An introduction to functional programming. Induction and recursion, symbolic computation, higher-order functions, polymorphism, data abstraction and modularity, invariants, demand-driven programming, exception handling, and computability. Prerequisites: MCS 1514

MCS 3663 - Computer Architecture and Assembly Prog.

Basic Structure of computer hardware and assembly programming. Internal representation, processing unit arithmetic, memory addressing modes, stack processing, CISC, RISC. Prerequisites: MCS 1514

MCS 3683 - Principles of Computer Animation

Implementation details of fundamental topics in 2D and 3D animation will be covered. Key framing; Interpolation; Rigging; Inverse kinematics; Particle systems. Prerequisites: MCS 3503

MCS 3723 - Advanced Calculus

Line and surface integrals, Green's theorem, Stokes' theorem, Divergence Theorem. Topics from differential and integral calculus theory. Power series solution of differential equations. Bessel functions, Legendre's equation. Prerequisites: MCS 2423

MCS 3733 - Partial Diff Equations

Orthogonality, orthonormal bases, Fourier series, Fourier integral. Solution techniques for first and second order equations. Solutions of homogeneous and non-homogeneous boundary value problems. Sturm-Liouville theory. Prerequisites: MCS 2423

MCS 3743 - Complex Analysis

Complex numbers. DeMoivre's Theorem. Complex variables, analytic functions, Cauchy-Riemann equations, Laurent expansions, contour integration, residue theory. Prerequisites: MCS 2423

MCS 3863 - Linear Algebra

Systems of linear equations, matrices, determinants, eigenvalues, eigenvectors, Finite-dimensional vector spaces, linear transformations and their matrices, Gram-Schmidt orthogonalization, inner product spaces Prerequisites: MCS 2414

MCS 4111 - Mathematics Journal Club

Students in this journal club will be responsible for leading the discussion on a research paper to a group of students. Students may also be asked to review a research paper that has been submitted for publication and provide a detailed description of why the paper should be accepted, declined, or revised. Prerequisites: MCS 2111

MCS 4223 - Machine Learning and Text

A dive deep into the evolving world of textual data analysis. This course is meticulously crafted to provide students with a comprehensive understanding of how machine learning algorithms work for text. We will also get an introduction to large language models and gain practical experience. Beyond technical skills, students will also engage in thoughtful discussions about the ethical implications and potential biases of text-based machine learning. In addition, this course has been designated as a CRE-based course which includes a significant research component. We will review and discuss papers on a specific topic and problem, which will cultivate in the development of a research project and paper. Prerequisites: MCS 1514 and MCS 2514

MCS 4513 - Software Quality and Project Management

This course presents theory and practice for testing software and assuring its quality. Topics include introduction to software quality, software standards, software reviews and inspections, software verification & validation, software quality management, software quality assurance, software measurements & metrics, software security, and formal/informal proofs of program correctness. Topics related to testing include stages of testing, types of testing, testing techniques, designing test-cases, test coverage analysis, automated testing tools, and performance testing tools. This course will provide students with practical experience using a different testing technique such as Unit Testing, User Interface Testing, Continuous Integration, and Test-Driven Development (TDD) for software projects. Students gain hands-on experience in planning and managing software development through real-world projects. By implementing a term project, students will learn how software projects are planned, developed, monitored, and controlled. This course will cover in-depth software project management topics such as project planning, estimation, scheduling, tracking, risk management, configuration and change management, and version management. This course will strongly emphasize collaboration, continuous integration, and continuous delivery using agile software development methodologies. Agile framework and tools such as SCRUM, XP, Kanban, and/or JIRA are covered and applied to the term project. Prerequisites: MCS 2613 and MCS 2534

MCS 4613 - Computer Networks

Transmission media, local asynchronous communication (RS232) long distance communication, LAN Technologies, network topologies, hardware addressing, LAN wiring, physical topologies, interface hardware, extending LANs, fiber modems repeaters, bridges, and switches, WAN topologies and routing. Prerequisites: MCS 3663 or EEE 3233

MCS 4633 - Artificial Intelligence

This course introduces the fundamental concepts & methods of knowledge representation, perception, reasoning, problem solving, data-mining, and machine learning in Artificial Intelligence (AI). Topics covered include Knowledge-Based Systems, Rule-Based Expert Systems, Uncertainty Management, Fuzzy Systems, Artificial Neural Networks, Evolutionary Computation, Semantic Web, and Autonomous Robotics. Prerequisites: MCS 2534

MCS 4643 - Comparative Programming Languages

This course will cover a survey of the four various programming languages in the imperative, multiprogramming, functional and logical domains. An understanding of the fundamental design and language concepts provides the foundation for the critical examination and implementation of programming language paradigms from lexical and syntactical perspectives. Prerequisites: MCS 2534

MCS 4653 - Theory of Computation

Beginning course on theory of computation. Regular languages, finite automata, context-free language, Turing Machine, Chomsky hierarchy, applications to parsing. Prerequisites: MCS 2523

MCS 4663 - Operating Systems

This course focuses on the core concepts that underlie contemporary operating systems. It introduces the structure and responsibilities of operating systems, discusses the cutting-edge advances in computing that are redefining operating systems, and addresses design considerations, such as performance, fault tolerance, security, modularity, and cost. Topics include Operating System Architecture, Process Concepts and Management, Thread Concepts, Asynchronous Concurrent Execution, Concurrent Programming, Deadlock and Indefinite Postponement, Processor Scheduling Algorithms, Real Memory Organization and Management, Virtual Memory Organization and Management, Disk Performance Optimization, RAID, File Systems, and Case Studies. Prerequisites: MCS 3663 or EEE 3233

MCS 4813 - Numerical Analysis 1

Approximation and error. Roots of equations approximation of algebraic and transcendental functions, differentiation, indefinite and definite integration. Quadrature, interpolation. Prerequisites: MCS 2423 and (MCS 1132 or MCS 1514)

MCS 4833 - Senior Project

The senior project is an intensive study of problems in either Computer Science or Applied Mathematics. Problems in CS can include software system development where students participate in specifying, designing, developing, coding, and testing complex software systems. Problems in AM can include the development and implementation of mathematical and computational models to address problems of interest. Prerequisites: COM 2103

MCS 4843 - Senior Project 2

Continuation of Senior Project for projects that cannot be completed in one semester. Prerequisites: MCS 4833

MCS 4863 - Modern Algebra

Introduction to algebraic systems. Groups, homomorphisms, isomorphisms, subgroups, normal subgroups, factor groups, Rings and ideals, integral domains, fields. The real number system. Prerequisites: MCS 3863

MCS 4981 - Directed Study MA/CS

Must have permission of department chairman. By arrangement.

MCS 4982 - Directed Study MA/CS

Must have permission of department chairman By arrangement.

MCS 4983 - Directed Study MA/CS

Must have permission of department chairman. By arrangement.

MCS 4990 - Grant Research

Grant research for undergraduate students.

MCS 4993 - Topics in MA/CS

Topics of current interest in mathematics and computer science. (May be taken more than once if the topic is different.) Prerequisites: MCS 2534

MCS 4994 - Topics in Computer Science

Topics course in computer science. Various current topics will be discussed. Prerequisites: MCS 2534

MCS 5003 - Programming Concepts for Computer Science

The central theme of this course is to learn how to solve problems by writing a program. The course introduces the ANSI C language, emphasizing portability and structured design. The course presents all major language elements including fundamental data types, data structures, flow control, and standard function libraries. Topics presented in the course include basic computer concepts, C++ program development environment; the concept of structured programming; basic problem-solving techniques; the development of algorithms through the process of top-down, stepwise refinement using C++-program control structures including selection statements, controlled- and sentinel-iteration constructs, assignment and condition statements; and the concepts of files and streams as well as the fundamental data types; abstract data types and complex data structures ; including arrays, stacks, sets, trees, heaps, and graphs. This course will provide the core programming skills necessary to be successful in our graduate program.

MCS 5013 - Web Server Programming

Prerequisite: Permission of department chair Introduction to the Web-server basis; Web authoring using HTML; advanced Web authoring with dynamic HTML, XML; JavaScript programming; CGI programming in C, C++ and PERL. Introduction to ASP to the middle tier. Prerequisites: MCS 2534

MCS 5113 - Data Structures and Algorithms

The course provides the basic background for a computer scientist in the area of data structures and algorithms. The course learning outcomes are aligned with the weekly course teaching and learning goals and assignments. The outcomes will be evaluated through assignments, assessments, and other methods throughout the course. Prerequisites: Graduate level MCS 5003 or MCS 1514

MCS 5223 - Machine Learning and Text

A dive deep into the evolving world of textual data analysis. This course is meticulously crafted to provide students with a comprehensive understanding of how machine learning algorithms work for text. We will also get an introduction to large language models and gain practical experience. Beyond technical skills, students will also engage in thoughtful discussions about the ethical implications and potential biases of text-based machine learning. In addition, this course has been designated as a CRE-based course which includes a significant research component. We will review and discuss papers on a specific topic and problem, which will cultivate in the development of a research project and paper. Prerequisites: MCS 1514 and MCS 2514

MCS 5243 - Theory of Computation

The Theory of Computation course includes topics in mathematical concepts of theorem and proof. In particular, the course will cover complexity theory, automata and language theory, computability theory, complexity theory, finite automata, regular expressions, push-down automata, Turing machines, Church-Turing thesis, decidability, time and space measures, hierarchy theorems, complexity classes P, and NP. Prerequisites: MCS 2523

MCS 5303 - Intro to Database Systems

Prerequisite: Permission of department chair. Design and implementation of relational, hierarchical and network database system. Query/update data language, conceptual data model, physical storage methods, database system architecture and normal forms. Database security and integrity. Relational database systems are emphasized. A project involving an on-line database system is normally assigned. No credit given after MIS6113.

MCS 5323 - Artificial Intelligence

This course introduces the fundamental concepts & methods of knowledge representation, perception, reasoning, problem solving, data-mining, and machine learning in Artificial Intelligence (AI). Topics covered include Knowledge-Based Systems, Rule-Based Expert Systems, Uncertainty Management, Fuzzy Systems, Artificial Neural Networks, Evolutionary Computation, Semantic Web, and Autonomous Robotics. Graduate students are required to do an additional project such as robotics applying AI techniques. Prerequisites: MCS 2534

MCS 5403 - Intelligent Robotics with ROS

This course introduces theories, algorithms, techniques, practical issues, and tools to develop & engineer software for intelligent autonomous robotics systems with ROS (Robot Operating System) software development environment. ROS has a large open source community and is becoming widely adopted in research, industrial, and autonomous vehicle applications. Covered topics include sensor data processing, machine vision, mobile robot control, localization, navigation, mapping, state machines, human-robot interaction/interfaces, robot communication, and 3D modeling and simulation with Gazebo. The course will also give students experience using Git, Linux, and various C++/Python tools and frameworks. Machine learning and deep learning technologies for autonomous vehicles will also be introduced. Prerequisites: MCS 2534

MCS 5603 - Introduction to Bioinformatics

An introduction to the theory and practice of data management and analysis in molecular biology. Topics include DNA and protein sequence analysis; genomic mapping; biological databases; and modeling and simulation protocols for bio-molecular systems.

MCS 5623 - Machine Learning and Pattern Recognition

The objective of the course is to study, understand, and practice the concepts of machine learning and pattern recognition. The course will cover the basic aspects of pattern recognition and machine learning such as different approaches to feature selection, classification methods, interpolation methods, and techniques of machine learning performance evaluation. In the end of the course the students will be able to implement all aspects of pattern recognition to create a working machine learning system that will solve a real-life pattern recognition problem. Prerequisites: MCS 2534

MCS 5703 - Intro to Distributed Computing

Prerequisite: Permission of department chair. Introduction to communications, network models, topologies and structures. Includes the OSI model, transport mediums (routers, bridges, gateways), and an overview of communication protocols, particularly TCP/IP. Lecture 3 hrs.

MCS 5713 - Deep Learning and Neural Networks

Brain-inspired Deep Learning (DL) is a subfield of machine learning that trains neural network-based models to perform human-like tasks, such as identifying images, recognizing speech, or making predictions. A DL system is trained rather than explicitly programmed. To train a DL system, a set of example data as well as the answers expected from the data are used. This course will cover a range of topics from dense networks, Convolutional Neural Networks (CNN), recurrent neural networks and long short-term memory (LSTM), and Generative Adversarial Networks (GAN). Students will apply deep learning to real-world problems as class projects. Prerequisites: MCS 2534

MCS 5723 - Social Network Mining

With an objective to study, understand, and practice the concepts of data mining using social network data. The course will cover the basic aspects of data mining such as different approaches to classification, regression, segmentation, text analysis, recommendation systems, etc. The aim is to develop skills in obtaining data from social network, analyzing it and visualizing it. Prerequisites: MCS 2534

MCS 5803 - Algorithmic Design & Analysis

DBuilding on a first undergraduate course in data structures, this course contains a deeper analysis of the design of efficient algorithms on data structures for problems in sorting, searching, graph theory, combinatorial optimization, computational geometry, and algebraic computation. Topics covered in the course include divide-and-conquer, dynamic programming, greedy method, and approximation algorithms. Prerequisites: MCS 2534 or MCS 5003

MCS 5813 - Introduction to Computer Security

Security measures are associated with various types of computing systems. An introduction to network security fundamentals, including compliance and operational security; threats and vulnerabilities; application, data, and host security; access control and identity management; and cryptography. New topics in network security, including psychological approaches to social engineering attacks, web application attacks, penetration testing, data loss prevention, cloud computing security, and application programming security. It is recommended, but not required, that MCS3663, MCS4613, and MCS4653 is taken prior to taking MCS5813. Prerequisites: MCS 1514

MCS 5993 - Topics in Computer Science

Topics of current interest in computer science. (May be taken more than once if the topic is different) Prerequisites: MCS 2534

MCS 5994 - Topics in Computer Science

Topics of current interest in computer science. (May be taken more than once if the topic is different) Prerequisites: MCS 1142

MCS 6123 - Advanced Topics in Software Engineering

Architecture of software environments. Syntax directed editors. Tools for programming-in-the-large. Tools to support the assessment of partial design. Expert systems for software development. Prerequisites: MCS 5103

MCS 6143 - Reverse Engineering and Software Security

The objective of this course is to familiarize students with the practice of performing reverse engineering on suspicious files and firmware by utilizing static and dynamic techniques and procedures. The student will gain an understanding of how malware behavior can be used to train machine learning classifiers to detect malicious software. Analytical information such as environment changes (file, system, network, and process), communication with the rest of the network and the malware’s impact on system will be closely observed and analyzed for actionable information. Prerequisites: MCS 2534 and MCS 4613

MCS 6503 - Advanced Network & Internet Security

This course aims to provide a practical survey of the standards and best practices for cybersecurity. The emphasis is focused on technologies that are commonly used on the Internet for network systems and widely implemented protocols. It also offers students information and skills to start implementing management solutions and best practices to enforce security. The course contains multiple modules covering network programming and hands-on security labs. Students will be tested using a number of methods: laboratory tasks, forum posts and answers, quizzes, one community project, and one final test. Prerequisites: MCS 2534 and MCS 4613

MCS 6823 - Concentration Project 1

The objective of the course is to complete a graduate-level research project in the concentration field of the graduate student. The project will be done with full supervision of the faculty, in the faculty field of specialty to develop a research project leading to new knowledge that is of interest to the broad relevant scientific community. The project will be done at the highest possible level within the sub-discipline, and will expand on the state-of-the-art in the field. The goal is exposure to state-of-the-art activity in the field of concentration, and to be introduced to high level academic research. Prerequisites: MCS 2534

MCS 6833 - Concentration Project 2

The objective of the course is to complete a graduate-level research project in the concentration field of the graduate student. The project will be done with full supervision of the faculty, in the faculty field of specialty to develop a research project leading to new knowledge that is of interest to the broad relevant scientific community. The project will be done at the highest possible level within the sub-discipline, and will expand on the state-of-the-art in the field. The goal is exposure to state-of-the-art activity in the field of concentration, and to be introduced to high level academic research. The project selected in MCS6833 may or may not be a continuation of a project started in MCS6823.

MCS 7013 - Collaborative Research Project 1

Must have permission of program director. Initiation of work on a large-scale computer science team or project at the student's workplace. Students work closely with a faculty member and an industry representative.

MCS 7033 - Collaborative Research Project 2

Completion of the computer science project began in MCS7013. Prerequisites: MCS 7013

MCS 7113 - Master's Thesis 1

Three credit hours of a course to form research for the Master’s Thesis, which partially fulfill the thesis option in the MSCS program. The student works in collaboration with a faculty advisor (or advisors) and, optionally and industrial advisor, and is expected to meet regularly with his or her advisors. The student expected to make an oral defense of their thesis’s prospectus.

MCS 7133 - Master's Thesis 2

Three credit hours of a course to fulfill the thesis option in the MSCS program. The student works in collaboration with a faculty advisor (or advisors) and, optionally and industrial advisor, and is expected to meet regularly with his or her advisors. Upon completion of the six credit hours of thesis research, the student makes an oral defense of the thesis, and submits the thesis to the University for publication.

MCS 7993 - Adv Topics Computer Science

Must have permission of program director. Topics of current interest in computer science. Course may be taken more than one if the topic is different. Lecture 3 hrs.