Computer Science

COMPUTER SCIENCE

CS 53/CS 1570  - Introduction to Programming

Programming design and development using C++. Emphasis placed on problem solving methods using good programming practices and algorithm design and development. Topics included are syntax/ semantics, logical, relational and arithmetic operators, decision branching, loops, functions, file I/O, arrays, output formatting, C-strings, and an introduction to Object-Oriented Programming including the development and use of classes. Prerequisite: GFP (IT & Maths)

CS 158/CS 1200 - Discrete Mathematics for Computer Science

A rigorous treatment of topics from discrete mathematics which are essential to computer science. Principal topics include: formal logic (propositional & predicate), proof techniques, mathematical induction, program correctness, sets, combinatorics, probability, relations, functions, matrices, graph theory and graph algorithms. Prerequisite: CS53/CS 1570.

CS 153/CS 1510 - Date Structures 1

A continuation of the development of structured programming concepts and their use in program development. Stacks, queues, linked list, arrays, trees, sorting and searching will be taught together with their use in implementations of a number of algorithms. Prerequisite: CS53/CS 1570.

CS 253/CS 2500 - Algorithms

Students will solve recurrence relations, analyze algorithms for correctness and time/space complexity, apply these analysis techniques to fundamental dynamic programming, greedy, shortest-path, minimal spanning trees, and maximum flow algorithms and validate these analyses through programming. Prerequisite: CS153/CS1510

CS 235/CS 3803 - Computer Organization

A detailed study of computer organization concepts and the components of a computer system including control unit, microprogrammming, pipelining, memory hierarchy, cache design, virtual memory, I/O devices, and a brief introduction to parallel processors. Prerequisites: CS153/CS1510

CS 304/CS 5300 - Database Management

This course introduces the advanced database concepts of normalization and functional dependencies, transaction models, concurrency and locking, timestamping, serializability, recovery techniques, and query planning and optimization. Students will participate in programming projects. Prerequisite: CS153/CS1510

CS 234/CS 2889 - Introduction to Computer Organization and Assembly

A detailed study designed to teach the building blocks of a computer system, assembly language programming and the basic computer organization concepts. Subjects include digital logic, performance issues, machine & assembly language, binary arithmetic, and the structure of an ALU. Prerequisites: CS153/CS1510 & CS158/CS1200

CS 263/CS 3600 - Introduction to Computer Security

This course encompasses threats and vulnerabilities, trust and security policies, and enforcement. Specific topics include access control, risk management, systems and applications life cycle, physical security, key management, transmission security, and cryptography.

Prerequisite: CS53/CS1570

CS 284/CS 3800 - Introduction to Operating Systems

This course teaches the concepts, structure, and mechanisms of Operating Systems. Topics include process management, concurrency, synchronization, deadlock, multithreading, memory management, scheduling, and internetworking. Special emphasis is given to Unix and its modern-day derivatives. Prerequisites: CS153/CS1510 & CS158/CS1200

CS 220/CS 2200 - Theory of Computer Science

This course will cover the theoretical underpinnings of computer science. In particular, this course will cover the following topics: basic computability and formal language concepts, regular languages, context free languages, recursively-enumerable languages, and classes P, NP, and NP-completeness. Prerequisite: None

CS 285/CS 5600 - Computer Networks

This course focuses on the Internet and the general principles of computer networking. It covers the TCP/IP model from the application layer to the link layer in a top-down approach. It also exposes students to multimedia networking, network security, wireless and mobile networks. It is a networking class targeted for entry-level graduate students.

Prerequisite: CS284/CS3800

PHIL 212/PHIL 2001 - Computer Ethics

The course familiarizes the students with the fundamental concepts and principles of Computer Ethics. Topic covered includes the Philosophical Ethics, Professional Ethics, Property Rights of Computer Software, Accountability and Computer and Information Technology, Social implication and Social Values. Prerequisite: None

CS 228/CS 3200 - Introduction to Numerical Methods

Finite difference interpolation, numerical differentiation and integration, linear systems of equations, solution of nonlinear equations, numerical solution of ordinary differential equations, computational techniques and the programming of a large number of problems on digital computers. Prerequisites: MATH21/MATH122

CS 238/CS 2300 - File Structures and Introduction to Database Systems

Course covers major topics in file structures and database systems including techniques for disk access and organization, record and file structures, index structures, sequential file, dense/sparse and secondary indexes, B-trees, range queries, insertion/deletion, hash tables, fundamentals of database systems, the ER model, relational model, algebra and SQL.

Prerequisite: CS 153/CS 1510

CS 272/CS 2501 - Java and Object Oriented Design

This course will cover Basic Java, Applets, Application, Classes, interfaces, Strings, Arrays, Generics, inheritance, Polymorphism, Algorithm and Object Oriented Design, Software Testing, Exception Handling, File I/O. The use of Graphical User Interfaces in program design and introduction to Software Life Cycle. Prerequisite: CS53/CS1570

CS 206/CS 3100 - Software Engineering – I

Development of methodologies useful in the software engineering classical life cycle. This includes: requirements, design, implementation, and testing phases. These methodologies are reinforced through utilization of a CASE tool and a group project. Prerequisite: CS253/CS2500

CS 236/CS 3500 - Programming Languages and Translators

Covers basic design of programming languages, compilers and interpreters. The concepts of syntax, variables, expressions, types, scope, functions, procedures, statements, I/O, exception handling and concurrency are introduced. The manner in which various programming languages handle these concepts is discussed. Prerequisite: CS253/CS2500

CS 397/CS 4096 - Capstone: Senior Design

Course will cover issues and problems relating to application and integration of business and management sytem skills, Group projects will require work as a member of a team, Creative Problem solving and application of business systems principles of real and simulated problems

Prerequisite: Senior Level

CS 308/CS 5102 - Object-Oriented Analysis and Design

This course will explore principles, mechanisms, and methodologies in object-oriented analysis and design. An object-oriented programming language will be used as the vehicle for the exploration. Prerequisite: CS253/CS2500

CS 1/CS 1010 - Introduction to Computer Science

This course is devoted to an introduction of various areas of Computer Science, the faculty members, and lab equipment. Computer ethics will be discussed in several lectures.

Prerequisite: None

CS 73/CS 1970 - Basic Scientific Programming

Introduction to the structure of programs and programming techniques in Fortran to solve science and engineering problems. Topics include data representation, basic solutions of numerical problems and the debugging and verification of programs. Prerequisite: None

CS 74/CS 1971 - Introduction to Programming Methodology

Basic structured programming and problem solving techniques using C+ +. Development, debugging, and testing of programs, data representation. Topics to include syntax/semantics, operators, loops, decision branching, arrays, file I/O. Prerequisite: None

CS 1972 - Introduction to MATLAB Programming

Programming design and development using MATLAB for non-CS majors. Strong emphasis placed on algorithmic problem solving methods using good programming practices. Introduction to built-in functions including plotting, as well as logical/relational/arithmetic operators, decision branching, loops, functions, file I/O, datastructures, and output formatting.

Prerequisite: MATH8/MATH1208

CS 3601 - Digital Forensics

Planning/managing incidents and response related to digital forensics; identifying, collecting, and preserving digital evidence; live/dead approaches covering systems as a whole emphasizing file system forensics; analysis and interpretation of artifacts culminating in a final project consisting of a collection, analysis, and report; legal and ethical issues.

Prerequisites: CS 3600 & CS 3800

CS 353/CS 4489 - Multimedia Systems

This course introduces the concepts and components of Multimedia information systems. Topics include: Introduction to Multimedia Data, Multimedia Date Compression, Techniques and Standards, Indexing and Retrieval, Data Storage Organization, Communication and Synchronization, Applications-Media-OnDemand Systems, Video Conferencing, Digital Libraries. Prerequisite: CS53/CS1570

CS 365/CS 4600 - Computer Communications and Networks

Network architecture model including physical protocols for data transmission and error detection/correction, data link concepts, LAN protocols, internetworking, reliable end to end service, security, and application services. Students will implement course concepts on an actual computer network.

Prerequisite: CS284/CS3800

CS 265/CS 4601 - Computer Network Concepts and Technology

This course will introduce computer network concepts and will survey the current and evolving technology for the construction, operation, and management of those networks. Both hardware and software issues will be addressed with a focus on local area networks.

Prerequisite: CS284/CS3800

CS 317/CS 4700 - Intellectual Property for Computer Scientists

A presentation of the relationship between the law of intellectual property and computer science. Topics include the application of copyright principles to computer programs, protection of computer programs through patents and trade secret law, and the effect of various agreements which are frequently encountered by the computer scientist. Prerequisite: Senior Level

CS 302 /CS 5100 - Agile Software Development

Understand principles of agile software development and contrast them with prescriptive processes. Specifically: Eliciting, organizing, and prioritizing requirements; Design processes; Understand how a particular process promotes quality; Estimate costs and measure project progress and productivity. Prerequisite: CS206/CS3100

CS 307/CS 5101 - Software Testing and Quality Assurance

It covers unit testing, subsystem testing, system testing, object-oriented testing, testing specification, test case management, software quality factors and criteria, software quality requirement analysis and specification, software process improvement, and software total quality management. Prerequisite: CS253/CS2500

CS 325/CS 5200 - Analysis of Algorithms

The purpose of this course is to teach the techniques needed to analyze algorithms. The focus of the presentation is on the practical application of these techniques to such as sorting, backtracking, and graph algorithms. Prerequisite: CS253/CS2500

CS 328/CS 5201 - Object-Oriented Numerical Modeling – I

A study of object-oriented modeling of the scientific domain. Techniques and methodologies will be developed enabling the student to build a class library of reusable software appropriate for scientific application. Applications will be drawn from mechanics, finance, and engineering.

Prerequisites: CS228 / CS3200 & CS153 / CS1510

CS 329/CS 5202 - Object-Oriented Numerical Modeling – II

A continued study of object-oriented modeling of the scientific domain. Advanced applications include models posed as balance laws, integral equations, and stochastic simulations.

Prerequisites: CS328/CS5201

CS 354/CS 5203 - Mathematical Logic – I

A mathematical introduction to logic with some applications. Functional and relational languages, satisfaction, soundness and completeness theorems, compactness theorems. Examples from Mathematics, Philosophy, Computer Science, and/or Computer Engineering. Prerequisite: CS253/CS2500

CS 366/CS 5204 - Regression Analysis

Simple linear regression, multiple regression, regression diagnostics, multicollinearity, measures of influence and leverage, model selection techniques, polynomial models, regression with autocorrelated errors, introduction to non-linear regression. Prerequisites: STAT211/STAT3111

CS 347/CS 5400 - Introduction to Artificial Intelligence

A modern introduction to AI, covering important topics of current interest such as search algorithms, heuristics, game trees, knowledge representation, reasoning, computational intelligence, and machine learning. Students will implement course concepts covering selected AI topics.

Prerequisite: CS253/CS2500

CS 348/CS 5401 - Evolutionary Computing

Introduces evolutionary algorithms, a class of stochastic, population-based algorithms inspired by natural evolution theory (e.g., genetic algorithms), capable of solving complex problems for which other techniques fail. Students will implement course concepts, tackling science, engineering and/or business problems. Prerequisite:  CS253/CS2500

CS 5402 - Data Mining & Machine Learning

Classical and modern data mining and machine learning algorithms; data preprocessing/warehousing, mining association rules, classification/ prediction methods, clustering techniques, Bayesian networks; unsupervised/supervised/reinforcement learning, learning decision trees, artificial neural networks, support vector machines, and ensemble learning. Prerequisites: CS238/CS2300

CS 5403 - Introduction to Robotics

This course provides an introduction to robotics, covering robot hardware, fundamental kinematics, trajectories, differential motion, robotic decision making, and an overview of current topics in robotics.

Prerequisite: CS53/CS1570

CS 5404 - Introduction to Computer Vision  

This course introduces foundational theories and analysis methods in computer vision. Topics will include camera model and geometry, description of visual features, shape analysis, stereo reconstruction, motion and video processing, and visual object recognition.

Prerequisite: MATH208/MATH3108 & CS253/CS2500

CS 342/CS 5405 - Java GUI & Visualization

Fundamentals of Java Swing Foundation Classes, Java System Language Specifics, Graphical User Interfaces, Images, Audio, Animation, Networking, and Threading. Visualization of Algorithms. GUI Elements include Event Driven Programming, Interaction with Mouse and KeyBoard, Window Managers, Frames, Panels, Dialog Boxes, Borders.

Prerequisite: IST200/CS1001

CS 358/CS 5406 - Interactive Computer Graphics

Applications and functional capabilities of current computer graphics systems. Interactive graphics programming including windowing, clipping, segmentation, mathematical modeling, two and three dimensional transformations, data structures, perspective views, antialiasing and software design. Prerequisite: CS253/CS2500

CS 356/CS 5500 - The Structure of a Compiler

Review of Backus normal form language descriptors and basic parsing concepts. Polish and matrix notation as intermediate forms, and target code representation. Introduction to the basic building blocks of a compiler: syntax scanning, expression translation, symbol table manipulation, code generation, local optimization, and storage allocation.

Prerequisite: CS236/CS3500 & CS253/CS2500

CS 362/CS 5601 - Security Operations & Program Management

An overview of information security operations, access control, risk management, systems and application life cycle management, physical security, business continuity planning, telecommunications security, disaster recovery, software piracy, investigations, ethics and more. There will be extensive reporting, planning and policy writing. Prerequisite: None

CS 5700     Bioinformatics

The course will familiarize students with the application of computational methods to biology, as viewed from both perspectives. It will introduce problems in molecular, structural, morphological, and biodiversity informatics, and will discuss principles, algorithms, and software to address them. Prerequisites: CS53/CS1570 & CS74/CS1971

CS 384/CS 5800 - Distributed Operating Systems

This is a study of modern operating systems, particularly distributed operating systems. Topics include a review of network systems and interprocess communication, causality, distributed state maintenance, failure detection, reconfiguration and recovery, load balancing, distributed file systems, distributed mutual exclusion, and stable property detection including deadlock detection. A group project in Distributed Systems programming will be required.

Prerequisite: CS284/CS 3800 & CS253/CS2500

CS 381/CS 5801 - The Structure of Operating System

The hardware and software requirements for operating systems for uniprogramming, multiprogramming, multiprocessing, time sharing, real time and virtual systems. The concepts of supervisors, interrupt handlers, input/output control systems, and memory mapping are discussed in detail. Prerequisite: CS284/CS3800

CS 387/CS 5802 - Introduction to Parallel Programming and Algorithms

Parallel and pipelined algorithms, architectures, network topologies, message passing, process scheduling and synchronization. Parallel programming on clusters. Cost, speedup and efficiency analysis.

Prerequisite: CS284/CS3800 & CS253/CS2500

CS 388/CS 5803 - Introduction to High Performance Computer Architecture

Overviews high performance architecture of computing systems and covers various architectural/hardware and software/algorithmic means that enhance performance. Uniprocessor and concurrent systems are investigated. Various computational models are studied and linked to commercial systems. Prerequisite: CS253/CS2500

IST 200 / IST 1001 - Special Topics: Java Programming

To give an explanation in theory and practical to build Object Oriented Programming using modern object oriented programming language   such as Java. Prerequisites: None

IST 2001 Special Topics: Introduction to Robotics

This course provides an introduction to robotics, covering robot hardware, fundamental kinematics, trajectories, differential motion, robotic decision making, and an overview of current topics in robotics.

Prerequisite: None

IST 3001 Special Topics: Introduction to Cloud Computing

This course provides a hands-on comprehensive study of Cloud concepts and capabilities across the various Cloud service models including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and Business Process as a Service (BPaaS). IaaS topics start with a detailed study the evolution of infrastructure migration approaches from VMWare/Xen/KVM virtualization, to adaptive virtualization, and Cloud Computing / on-demand resources provisioning.

Prerequisite: None

IST 5001 Special Topics: Introduction to PHP Programming

PHP is a widely used programming language which works on the principal of server side scripting to produce dynamic Web pages. It can be easily integrated with HTML and SQL to produce these dynamic web pages, and is often used to process the contents of a Web page form as it is more secure and reliable than JavaScript.

Prerequisite: None

CS 200/IST 2000 - Special Problems: CCNA Discovery – I

This course  introduce the fundamental networking concepts and technologies also provides a hands-on introduction to networking and the Internet using tools and hardware commonly found in the home and small business environment.

Prerequisite: CS53/CS1570

CS 300/IST 3000 - Special Problems: CCNA Discovery – II

The goal of this course is to assist you in developing the skills necessary to provide customer support to users of small-to-medium-sized networks and across a range of applications. The course provides an introduction to routing and remote access, addressing and network services.

Prerequisite: CS200/IST2000

MATHEMATICS

STAT 211/STAT 3111 – Statistics (Calculus-Based)

An introduction to statistical techniques commonly used in management decision making. Topics include statistical inference of population parameters, linear regression, basics of experimental design and analysis, analysis of categorical data, and the use of statistical software.

Prerequisite: MATH8/MATH1208

MATH 208/MATH 3108 - Linear Algebra I

Systems of linear equations, matrices, vector spaces, inner products, linear transformations, determinants, and eigenvalues are studied.

Prerequisite: MATH8/MATH1208

MATH 8/MATH 1208 - Calculus with Analytical Geometry - I

A study of limits, continuity, differentiation and integration of algebraic and trigonometric functions. Applications of these concepts in physical as well as mathematical settings are considered.

Prerequisites: MATH 3/MATH 1103

MATH 21/MATH 1221 - Calculus with Analytical Geometry - II

A continuation of Math 8; differentiation and integration of elementary transcendental functions, integration techniques, improper integrals, conic sections, polar coordinates, introduction to sequences and series.

Prerequisites: MATH 8 / MATH 1208

MATH 22/MATH 2222 - Calculus with Analytic Geometry –III

An introduction to multivariable calculus. Vector valued functions, curves and surfaces in two and three dimensions, partial differentiation, multiple integration, line and surface integrals, the major theorems of vector calculus, and applications of these ideas are studied.

Prerequisite: MATH21/MATH1221