Computer Science Undergraduate Courses

Click on any course title below to read its description. Courses offered in the upcoming semester include a schedule, and are indicated by a label to the right of the title.

For students with no prior 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. Laboratory course.   [ 4 cr. ]

Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Abreu MCS B25 TR 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
B1 IND Robertie PRB 148 T 6:00 pm – 8:45 pm

This course is a technically-oriented introductory survey of information technology. Students learn about basic computer information, different types of business systems and basic systems analysis, design and development. Students also study basic mathematics, software development and create simple Java programs.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SO1 IND Bragg ARR
Fall 2018
Section Type Instructor Location Days Times
B1 IND Keklak SHA 210 T 6:00 pm – 8:45 pm
O1 IND Bragg ARR

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. Laboratory course.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SA1 IND Faktorovich STH 113 TR 6:00 pm – 9:30 pm
Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Keklak MCS B19 MW 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
C1 IND Keklak SHA 201 W 6:00 pm – 8:45 pm

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. Laboratory course.   [ 4 cr. ]

Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Maslanka CAS 216 TR 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Hadavi CGS 515 M 6:00 pm – 8:45 pm

This course 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. Laboratory course.   [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SA1 IND Tizio HAR 316 TR 6:00 pm – 9:30 pm
Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Tizio MCS B25 MW 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
B1 IND Tizio CAS 116 T 6:00 pm – 8:45 pm

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.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SA1 IND Naidjate MCS B19 MW 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
D1 IND Naidjate CGS 515 R 6:00 pm – 8:45 pm

This course introduces basic concepts in discrete mathematics, computer systems and programming that are necessary for modern computing systems. It also develops analytic and logical thinking and prepares students to take graduate-level courses in software development degree. This course first reviews the basic concepts in discrete mathematics including logic, sets, functions, relations and combinatorics. Then it discusses the fundamental concepts in computer systems such as computer organization, basic OS concepts, CPU scheduling, memory management, process management and synchronization. Concurrently with the above mathematics and systems studies, programming concepts are introduced and practiced throughout the whole course using Python.   [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SO1 IND Huang ARR
Fall 2018
Section Type Instructor Location Days Times
O1 IND Huang ARR
O2 IND Tis ARR

Covers data structures, using the C++ language. Topics include data abstraction, encapsulation, the use of recursion, creation and manipulation of various data structures; bags, lists, queues, tables, trees, heaps and graphs, and searching and sorting algorithms. Laboratory course.   [ 4 cr. ]

Section Type Instructor Location Days Times
C1 IND Maslanka MCS B19 W 6:00 pm – 8:45 pm

This course 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. Laboratory course.   [ 4 cr. ]

Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Berry CAS 204A MW 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Berry SHA 206 M 6:00 pm – 8:45 pm

Computer-based management information systems. Management's role in development and use of computer systems. Planning for a comprehensive information system; role in decision making, case studies.   [ 4 cr. ]

Section Type Instructor Location Days Times
D1 IND Arakelian FLR 121 R 6:00 pm – 8:45 pm

This course focuses on building core competencies in web design and development. It begins with a complete immersion into HTML essentially XHTML and Dynamic HTML (DHTML). Students are exposed to Cascading Style Sheets (CSS), as well as Dynamic CSS. The fundamentals of JavaScript language including object-oriented JavaScript is covered comprehensively. AJAX with XML and JSON are covered, as they are the primary means to transfer data from client and server. Prereq: METCS231 OR METCS232 or instructor's consent.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Robertie HAR 240 R 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Robertie SHA 202 M 6:00 pm – 8:45 pm

Comprehensive coverage of object-oriented programming with cooperating classes. Implementation of polymorphism with inheritance and interfaces and in Java library containers. Programming with exceptions, stream input/output and graphical AWT and Swing components. Threads, sockets, datagrams and database connectivity are also covered in this course. Laboratory course. Prerequisite: MET CS 342 or equivalent knowledge of Java. Or instructor's consent. For undergraduates only.   [ 4 cr. ]

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, management IT Economic: Total Cost Ownership, Return on investment and IT Project Portfolio Management.   [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Arena HAR 322 T 6:00 pm – 9:30 pm
SEL IND Arena HAR 322 T 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
B1 IND Arena KCB 102 T 6:00 pm – 8:45 pm

This course provides comprehensive overview of IT Project Management and the key processes associated with planning, organizing and controlling of software Projects. The course will focus on various knowledge areas such as: project scope management, risk management, quality management, communications management and integration management. Students will be required to submit a term paper.   [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SA1 IND Campbell HAR 240 MW 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
D1 IND Heda EPC 203 R 6:00 pm – 8:45 pm

Students learn the latest relational and object-relational tools and techniques for persistent data and object modeling and management. Students gain extensive hands- on experience using Oracle or Microsoft SQL Server as they 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. Students are introduced 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 669 or MET CS 579. Only one of these courses can be counted towards degree requirements.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Matthews FLR 109 W 6:00 pm – 9:30 pm
SEL IND Matthews FLR 109 W 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
C1 IND Maiewski CGS 515 W 6:00 pm – 8:45 pm

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. Prereq: MET CS 231 or MET CS 232; or instructor's consent  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Hendrickson HAR 240 T 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
B1 IND Hendrickson CGS 527 T 6:00 pm – 8:45 pm

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. Prereq: MET CS 342; or instructor's consent.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Czik CGS 323 R 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Elentukh EPC 203 M 6:00 pm – 8:45 pm

  [ Var cr. ]

Independent study on special projects under faculty guidance.   [ 4 cr. ]

Independent study on special projects under faculty guidance.  [ Var cr. ]

This course presents a complete immersion into Web technology. Topics covered include introductory concepts such as Internet and Web architectures, static vs. dynamic, and search engines. Course introduces Web page creation using the standard HTML language, DHTML, JavaScript, and XML. The focus of the course is on client-side programming, however, topics such as ASP and CGI are also briefly introduced.  [ 4 cr. ]

This course provides graduate students with the opportunity to receive academic credit for a part‐time or full‐time internship. The chosen internship must be related to the student's specialization of study and located at an off‐campus facility. Students enrolled in the course will be individually supervised by a faculty member from the Department of Computer Science. This course may not be taken until the student has completed at least six courses towards their master's program. International students choosing to take this course to receive a CPT benefit must have completed one academic year of study in order to comply with International Students and Scholars Office requirements. Graduate standing in Computer Science, Computer Information Systems or Telecommunication is required   [ Var cr. ]

This course covers the concepts of object-oriented approach to software design and development using the Java programming language. It includes a detailed discussion of programming concepts starting with the fundamentals of data types, control structures methods, classes, applets, arrays and strings, and proceeding to advanced topics such as inheritance and polymorphism, interfaces, creating user interfaces, exceptions, and streams. Upon completion of this course the students will be able to apply software engineering criteria to design and implement Java applications that are secure, robust, and scalable. Prereq: MET CS 200 or MET CS 300 or Instructor's Consent. Not recommended for students without a programming background.   [ 4 cr. ]

Sum2 2018
Section Type Instructor Location Days Times
SO1 IND Guardino ARR
Fall 2018
Section Type Instructor Location Days Times
E1 IND Donald KCB 104 M 6:00 pm – 8:45 pm
O2 IND Guardino ARR
BHA IND Staff ROOM M 6:00 pm – 8:45 pm

This course covers the concepts of the object-oriented approach to software design and development using the Python programming language. It 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. Prerequisite: MET CS 300 Foundations of Modern Computing, or instructor's consent.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Aleksandrov HAR 228 T 6:00 pm – 9:30 pm
SC2 IND Pinsky HAR 212 W 6:00 pm – 9:30 pm
SO1 IND Pinsky ARR
Sum2 2018
Section Type Instructor Location Days Times
SO2 IND Pinsky ARR
Fall 2018
Section Type Instructor Location Days Times
A1 IND Lu CAS 213 M 6:00 pm – 8:45 pm
C1 IND Aleksandrov CAS 226 W 6:00 pm – 8:45 pm
O1 IND Pinsky ARR
O2 IND Pinsky ARR

This course covers and relates fundamental components of programs. Students use various data structures to solve computational problems, and implement data structures using a high-level programming language. Algorithms are created, decomposed, and expressed as pseudocode. The running time of various algorithms and their computational complexity are analyzed.  [ 4 cr. ]

Section Type Instructor Location Days Times
A1 IND Lee MCS B23 M 6:00 pm – 8:45 pm

This course is primarily the study of design of graphic algorithms. At the end of the course you can expect to be able to write programs to model, transform and display 3- dimensional objects on a 2-dimensional display. The course starts with a brief survey of graphics devices and graphics software. 2-d primitives such as lines and curves in 2- d space are studied and a number of algorithms to draw them on a rectangular surface are introduced, followed by a study of polygons, scan conversion and other fill methods. Attributes of the primitives are studied as well as filtering and aliasing. Geometric transformations in 2 dimensions are introduced in homogeneous coordinates, followed by the viewing pipeline, which includes clipping of lines, polygons and text. Hierarchical graphics modeling is briefly studied. The graphics user interface is introduced and various input functions and interaction modes are examined. 3-d graphics is introduced through object representations through polygonal methods, spline techniques, and octrees. This is followed by 3-d transformations and the 3-d viewing pipeline. The course ends with a study of algorithms to detect the visible surfaces of a 3-d object in both the object space and the image space. Laboratory Course. Prereq: MET CS 248 and MET CS 341 or MET CS 342. Or instructor's consent.   [ 4 cr. ]

Section Type Instructor Location Days Times
B1 IND Staff CAS B36 T 6:00 pm – 8:45 pm

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 will 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. Prereq: MET CS 575 and MET CS 201 or MET CS 231 or MET CS 232. Or instructor's consent. 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 towards degree requirements.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Day MCS B31 M 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Day MCS B33 M 6:00 pm – 8:45 pm

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. ]

Sum1 2018
Section Type Instructor Location Days Times
SA1 IND Zhang FLR 267 MW 6:00 pm – 9:30 pm
SO1 IND Kalathur ARR
Fall 2018
Section Type Instructor Location Days Times
A1 IND Staff STH 113 M 6:00 pm – 8:45 pm
C1 IND Staff CAS B06A W 6:00 pm – 8:45 pm
O2 IND Kalathur ARR

The goal of this course is to provide 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, discrete and continuous distributions. Prereq: Academic background that includes the material covered in a standard course on college algebra or instructor's consent.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
BHA IND Enxing ROOM T 6:00 pm – 9:30 pm
SC1 IND Gorlin FLR 109 M 6:00 pm – 9:30 pm
SEL IND Gorlin FLR 109 M 6:00 pm – 9:30 pm
SO1 IND Temkin ARR
Sum2 2018
Section Type Instructor Location Days Times
SO2 IND Temkin ARR
Fall 2018
Section Type Instructor Location Days Times
A1 IND Gorlin CAS 324 M 6:00 pm – 8:45 pm
B1 IND Gorlin EPC 206 T 6:00 pm – 8:45 pm
E1 IND Gorlin EPC 206 T 6:00 pm – 8:45 pm
O1 IND Temkin ARR
O2 IND Temkin ARR

This course 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. Recommended Prerequisite: MET CS 544 or equivalent knowledge, or instructor's consent.  [ 4 cr. ]

Sum2 2018
Section Type Instructor Location Days Times
SB1 IND Teymourian FLR 267 MW 6:00 pm – 9:30 pm
SO2 IND Shappell ARR
Fall 2018
Section Type Instructor Location Days Times
B1 IND Teymourian CAS 315 T 6:00 pm – 8:45 pm
D1 IND Teymourian MCS B23 R 6:00 pm – 8:45 pm

This course presents financial algorithms used in applications of computer science in financial decision analysis, risk management, data mining and market analysis, and other modern business processes. The course covers theoretical background on probabilistic methods used for financial decision making and their application in number of fields such as financial modeling, venture capital decision making, operational risk measurement and investment science. Number of financial applications and algorithms are being presented for portfolio risk analysis, modeling real options, venture capital decision making, etc. The course concludes with algorithms for financial risk assessment and presents the security concepts and challenges of financial information systems.   [ 4 cr. ]

Comprehensive coverage of object-oriented programming with cooperating classes. Implementation of polymorphism with inheritance and interfaces and in Java library containers. Programming with exceptions, stream input/output and graphical AWT and Swing components. Threads, sockets, datagrams and database connectivity are also covered in this course. Laboratory course.  [ 4 cr. ]

Discusses basic methods for designing and analyzing efficient algorithms emphasizing methods used 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, NP completeness.   [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Braude MCS B33 W 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
A1 IND Belyaev CAS 326 M 6:00 pm – 8:45 pm

The course introduces the technical and business fundamentals of enterprise systems, enterprise system architecture, the design of enterprise systems, and the complex process of implementing enterprise systems. This course offers methodologies and hands-on techniques for a successful implementation of enterprise systems in organizations. In the first part of this course, participants will configure an SAP ERP system to support the main business processes for a fictitious company. In the second part of the course, students will review and discuss literature pertinent to the implementation and management of enterprise systems. This course enables students identify both high-level technical implementation requirements, and organizational/employee resistors to information systems implementation. Through a variety of technological and Human Resources/Organizational Development technologies, we provide a comprehensive understanding of the technical and behavioral do's and don'ts of Managing Enterprise System implementation.  [ 4 cr. ]

This course is designed for IT professionals, and those training to be IT professionals, who are preparing for careers in healthcare-related IT (Health Informatics). This course provides a high-level introduction into basic concepts of biomedicine and familiarizes students with the structure and organization of American healthcare system and the roles played by IT in that system. The course introduces medical terminology, human anatomy and physiology, disease processes, diagnostic modalities, and treatments associated with common disease processes. IT case studies demonstrate the key roles of health informatics and how IT tools and resources help medical professionals integrate multiple sources of information to make diagnostic and therapeutic decisions.  [ 4 cr. ]

Section Type Instructor Location Days Times
O1 IND Keskin ARR

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. ]

Sum1 2018
Section Type Instructor Location Days Times
BHA IND Nourai ROOM M 6:00 pm – 9:30 pm
SC1 IND Nourai SHA 210 T 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
D1 IND Nourai EPC 205 R 6:00 pm – 8:45 pm

This course provides a theoretical yet modern presentation of database topics ranging from Data and Object Modeling, relational algebra and normalization to advanced topics such as how to develop Web-based database applications. Other topics covered - relational data model, SQL and manipulating relational data; applications programming for relational databases; physical characteristics of databases; achieving performance and reliability with database systems; object-oriented database systems. Prereq: MET CS 231 or MET CS 232; or instructor's consent.  [ 4 cr. ]

Sum1 2018
Section Type Instructor Location Days Times
SC1 IND Lee PSY B39 M 6:00 pm – 9:30 pm
Fall 2018
Section Type Instructor Location Days Times
B1 IND Lee CAS 213 T 6:00 pm – 8:45 pm

This course presents the technological fundamentals and integrated clinical applications of modern Biomedical IT. The first part of the course covers the technological fundamentals and the scientific concepts behind modern medical technologies, such as digital radiography, CT, nuclear medicine, ultrasound imaging, etc. It also presents various medical data and patient records, and focuses on various techniques for processing medical images. This part also covers medical computer networks and systems and data security and protection. The second part of the course focuses on actual medical applications that are used in health care and biomedical research.   [ 4 cr. ]

Section Type Instructor Location Days Times
O2 IND Zhang ARR

Electronic Health Records (EHRs) are application systems that automate the activities of healthcare clinicians including physicians, nurses, physician assistants, and healthcare administrative staff. Use of EHRs is increasing rapidly due to the systems' benefits and federal government programs to deploy EHRs. This increased use of EHRs has many challenges including complex data, high security requirements, integration to multiple application systems, a distributed user base, and broad impact on how these users work.   [ 4 cr. ]

Section Type Instructor Location Days Times
A1 IND Levinger CGS 113 M 6:00 pm – 8:45 pm
E1 IND Levinger CGS 113 M 6:00 pm – 8:45 pm

  [ 4 cr. ]

Prereq: consent of the instructor.  [ 4 cr. ]

-  [ 4 cr. ]

In this course we will study the fundamental and design applications of various biometric systems based on fingerprints, voice, face, hand geometry, palm print, iris, retina, and other modalities. Multimodal biometric systems that use two or more of the above characteristics will be discussed. Biometric system performance and issues related to the security and privacy aspects of these systems will also be addressed.   [ 4 cr. ]