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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
IST 5001 Special Topics: Introduction to PHP Programming
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.
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.
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.
MATH 208/MATH 3108 - Linear Algebra I
Systems of linear equations, matrices, vector spaces, inner products, linear transformations, determinants, and eigenvalues are studied.
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.