Courses

    • CS 1301 - Programming Principles I

      This course provides an introduction to computer science with a focus on object-oriented programming. Instruction centers on an overview of programming, problem-solving, and algorithm development. Specific topics include primitive data types, arithmetic and logical operators, selection and repetition structures, interactive user input, using and designing basic classes, single dimension arrays with searching and sorting, and Array lists.

      Credits: 4

    • CS 1302 - Programming Principles II

      The second course in computer science provides coverage of more advanced topics of object-oriented programming. This includes the use of static variables and classes, multi-dimensional arrays, inheritance and polymorphism, text files and exception handling, recursion, and parameterized types. Elementary data structures (linked lists, stacks, and queues) are introduced to solve application problems. Graphical user interfaces and event driven programming are also introduced. Students must continue to use good programming style including proper documentation.

      Prerequisites:  CS 1301 or CSE 1301    

      Credits: 4

    • CS 1305H - Honors Programming Principles

      This course is an introduction to problem-solving methods that lead to the development of correct and well-structured programs. The course emphasizes object-oriented methods. Topics will include a variety of concepts and applications, such as inheritance, collections, exceptions, graphics, computational methods, and graphical user interfaces. The course also includes coverage of the fundamentals of computer systems.

      Prerequisites: Admission to the Honors Program and MATH 1113 (may be taken concurrently)

      Credits: 6

    • CS 2290 - Special Topics

      The course covers special topics at the intermediate level that are not in the regular course offerings.

      Prerequisites: Approval of the instructor, major area committee, and department chair.

      Credits: 3

    • CS 3223 - Computer Architecture

      A study of instruction set architectures; basic processor components such as control units, ALU's, and registers; memory; input/output; and performance enhancement using caches and pipelines. Design of the major processor components is discussed in terms of the concepts presented in . Some coverage of assembly language programming is included.

      Prerequisites: and CSE 1301

      Credits: 3-0-3

    • CS 3304 - Data Structures

      This course introduces data structures, specification, application, and implementation. The case studies will illustrate how data structures are used in computing applications. The emphasis of the course is on linear and some nonlinear data structures and object oriented principles. Topics include: abstract data types, stacks, queues, lists, binary search trees, priority queues, recursion, algorithm efficiency, trees, heaps, hash tables, and analysis of search and sort algorithms and their performance for implementation and manipulation. The programming language to be used in this course is any standard high-level object-oriented programming language such as C++, Java, and Ada.

      Prerequisites: MATH 2345, and CS 1302 

      Credits: 4

    • CS 3410 - Introduction to Database Systems

      Introduction to the database management systems, database processing, data modeling, database design, development, and implementation. Contrasts alternative modeling approaches. Includes implementation of current DBMS tools and SQL.

      Prerequisites: A grade of C or better in CS 1302 

      Credits: 3

    • CS 3501 - Computer Organization, Architecture, and Communications

      An introduction to the theory and fundamentals of computer architecture and data communications. Computer organization topics include: data representation, binary arithmetic, and numbering systems. Computer architecture topics include Boolean algebra, logic gates, digital components, combinational and sequential circuits, circuit design, CPU basics, internal architecture, microcode, RISC, pipelines, cache, assembly language, instruction sets, memory organization and addressing, interrupts, multi-core architectures. Data communications topics include: data encoding, signaling, transmission, communication media, encoding, multiplexing, bus control, and arbitration.

      Prerequisites: CS 1302 

      Credits: 4

    • CS 3502 - Operating Systems

      This course introduces the fundamental concepts and principles of operating systems. Topics covered include system performance, processes and threads, multiprogramming, scheduling, memory management, synchronization, deadlocks, file systems, Input/output systems. Additional topics: security and protection, network and distributed OS.

      Prerequisites: CS 3501 , and CS 3304 

      Credits: 3

    • CS 3530 - Operating Systems

      An introduction to fundamental operating systems concepts. Topics include basic concepts of operating systems, modeling for performance analysis,   scheduling, synchronization, deadlocks, I/O system,  memory management, system security, network and distributed systems, and virtual machines .

      Prerequisites: A grade of C or better in CS 1302 

      Credits: 3

    • CS 3550 - Theory of Networking and Security

      This course builds foundational knowledge in the theory and fundamentals of data communications, networking, security, and network programming. Topics include digital signaling and encoding, the OSI networking model, and TCP and IP networking protocols. The course also includes an introduction to networking security, attacks and defenses. Encryption and compression algorithms will be examined and implemented using a programming language. Students will learn how communication occurs between processes on machines located across a network by constructing and programming concurrent processes monitoring sockets and ports on different machines, to pass messages and data.

      Prerequisites: A grade of C or better in CS 3501 

      Credits: 3

    • CS 3610 - Software Engineering

      The course covers the life cycle of software engineering with emphasis on UML modeling. Topics include software process models, requirements analysis and modeling; design concepts, modeling, and design patterns; architectural design; implementation; and testing strategies and techniques.

      Prerequisites: A grade of C or better in CS 3410 

      Credits: 3

    • CS 4242 - Artificial Intelligence

      The primary objective of this course is to provide a introduction to the basic principles and applications of Artificial Intelligence. It covers the basic areas of artificial intelligence including problem solving, knowledge representation, reasoning, decision making, planning, perception and action, and learning -- and their applications. Students will design and implement key components of intelligent agents of modern complexity and evaluate their performance. Students are expected to develop familiarity with current research problems, research methods, and the research literature in AI.

      Prerequisites: CS 3304 

      Credits: 3

    • CS 4300 - Cloud Computing

      Cloud Computing uses the Internet as the platform for the development and delivery of computing technologies. Topics discussed in this course include: cloud computing concepts, cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), and Software as a Service (SaaS). Focus will be put on developing data-intensive applications using MapReduce framework on Cloud.

      Prerequisites: A grade of C or better in CS 3410 and CS 3530 

      Credits: 3

    • CS 4305 - Software Engineering

      This course provides an overview of the software engineering discipline with emphasis on the development life cycle and UML modeling. It introduces students to the fundamental principles and processes of software engineering, including Unified, Personal, and Team process models. This course highlights the need for an engineering approach to software with understanding of the activities performed at each stage in the development cycle. Topics include software process models, requirements analysis and modeling; design concepts and design modeling; architectural design and styles; implementation; and testing strategies and techniques. The course presents software development processes at the various degrees of granularity.

      Prerequisites: CS 3410,CSE 3801, COM 1100 

      Credits: 3

    • CS 4306 - Algorithm Analysis

      Advanced algorithm analysis including the introduction of formal techniques and the underlying mathematical theory. Topics include asymptotic analyses of complexity bounds using big-O, little-o, omega, and theta notations. Fundamental algorithmic strategies (brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, pattern matching, parallel algorithms, and numerical approximations) are covered. Also included are standard graph and tree algorithms. Additional topics include standard complexity classes, time and space tradeoffs in algorithms, using recurrence relations to analyze recursive algorithms, NP-completeness, the halting problem, and the implications of non-computability.

      Prerequisites: CS 3304 

      Credits: 3

    • CS 4308 - Concepts of Programming Languages

      This course covers the fundamental concepts on which programming languages are based and the execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Languages representing different paradigms are introduced.

      Prerequisites: CS 3501, CS 3304 

      Credits: 3

    • CS 4310 - Advanced Database & Data Mining

      Advanced database concepts including the mathematical foundation for databases, database security, and the design and implementation of the algorithms used in database systems are covered. Data mining concepts including data mining techniques and the design and implementation of some algorithms used in data mining are covered.

      Prerequisites: A grade of C or better in CS 3410

      Credits: 3

    • CS 4320 - Internet Programming

      This course introduces current technologies for modeling, designing, implementing, and developing Web applications. Topics include developing for the server and the client, programming frameworks, server administration and integration with databases. Practice will involve platforms and languages such as Linux, Python, PHP, Ruby and JavaScript.

      Prerequisites: A grade of C or better in CS 4512 andCS 3610 

      Credits: 3

    • CS 4322 - Mobile Software Development

      The course covers the concepts and practice of developing software on mobile platforms such as Android. Topics include UI Design for Mobile Apps, Resource Management for Mobile Apps, and Deployment of Mobile Apps.

      Prerequisites: CS 1302, CS 4305 

      Credits: 3

    • CS 4350 - Mobile Clients

      This course will cover software development for the Android Mobile Application Platform. Topics include UI design for mobile apps, resource management for mobile apps, and deployment of mobile apps

      Prerequisites: A grade of C or better in CS 3610 

      Credits: 3

    • CS 4400 - Directed Studies

      This course covers special topics of an advanced nature that are not in the regular course offerings. Up to three hours may be applied to the major area.

      Prerequisites: Approval of the instructor, major area committee, and department chair.

      Credits: 1-3

    • CS 4401 - Algorithm Analysis and Design

      This course covers the analysis, design, and implementation of algorithms in the classical algorithm categories as well as parallel algorithms.

      Prerequisites: A grade of C or better in CS 3401 and MATH 3322 and MATH 3332 

      Credits: 3

    • CS 4412 - Data Mining

      This course covers fundamental data mining concepts and techniques for discovering interesting patterns from data in various applications. Topics include data preprocessing, data warehousing and OLAP, mining frequent patterns, classification, clustering, and tend analysis.

      Prerequisites: CS 3304 and CS 3310 

      Credits: 3

    • CS 4472 - Distributed Computing

      A course that introduces students to the fundamental principles common to the design and implementation of programs that run on two or more interconnected computer systems. The subtopics, which are based on these principles, include: distributed operating system and network protocols for process communication, synchronization, scheduling, and exception and deadlock resolution; understanding of client-server, web-based collaborative systems; parallel computing; concurrency issues; and API's for distributed application development. Several distributed computing environments, like MPI, PVM, and Java RMI are discussed and used in developing experimental projects in a cluster of networked computers.

      Prerequisites: CS 3502 

      Credits: 3

    • CS 4491 - Advanced Topics in Computer Science

      This course provides the current and relevant topics in an advanced Computer Science area of interest to faculty.

      Prerequisites: A grade of C or better in any prerequisite course. Prerequisite course(s) vary depending upon the topic.

      Credits: 3

    • CS 4504 - Distributed Computing

      A course that introduces students to the fundamental principles common to the design and implementation of programs that run on two or more interconnected computer systems. The subtopics, which are based on these principles, include: distributed operating system and network protocols for process communication, synchronization, scheduling, and exception and deadlock resolution; understanding of client-server, web-based collaborative systems; parallel computing; concurrency issues; and API's for distributed application development. Several distributed computing environments, like MPI, PVM, and Java RMI are discussed and used in developing experimental projects in a cluster of networked computers.

      Prerequisites: CS 3502 

      Credits: 3

    • CS 4512 - Systems Programming

      This course presents an introduction to systems programming in Linux/Unix. Topics include file I/O, process control and communication, threading, and network-aware systems programs.

      Prerequisites: CS 3304, CS 3502 

      Credits: 3

    • CS 4514 - Real-Time Systems

      This course covers the software-development life cycle as it applies to real-time systems. Alternatives: • Including labs that involve the use of a real-time operating system and an associated development environment, or • Modeling with UML, and object oriented simulation. Introduction to formal specification of real-time systems. A course project is required to be completed by the end of the semester.

      Prerequisites: CS 3502 

      Credits: 3

    • CS 4522 - HPC & Parallel Programming

      This course will introduce parallel programming techniques for shared memory and distributed memory systems. Topics include threading, OpenMP, and MPI.

      Prerequisites: CS 3304, CS 3502 

      Credits: 3

    • CS 4523 - Programming Massively Parallel Processors

      A study of practical parallel algorithms with an emphasis on implementation and performance issues on massively parallel processors. Design and implement high performance computing applications using CUDA running on Graphics Processing Unit (GPU). Topics include heterogeneous parallel programming, hardware threading models, synchronization, parallel blocking algorithms, register allocations, memory performance, and inter-thread communication.

      Prerequisites: CS 3304, CS 3502 

      Credits: 3

    • CS 4524 - Cloud Computing

      This course discusses the fundamental concepts and techniques of cloud computing. Students will develop an understanding of cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), Software as a Service (SaaS), Virtualization, and Application Development on Cloud.

      Prerequisites: CS 3304, CS 3502 

      Credits: 3

    • CS 4612 - Secure Software Development

      This course covers the design and implementation of secure software. Some of the topics covered are the characteristics of secure software, the role of security in the development lifecycle, designing secure software, and best security programming practices. Security for web and mobile applications will be covered.

      Prerequisites: CS 3501 

      Credits: 3

    • CS 4622 - Computer Networks

      This course covers computer networking and includes software application-related, protocol-related and security-related issues involved in the Internet. Topics include basic network structures, mechanisms for application-to-application communications, protocol layering, Internet addressing, unicast and multicast routing, connection establishment and termination, data flow and congestion control, and error handling. A specific protocol suite will be examined in detail. More advanced topics that build on the student's understanding of network protocols are also introduced, such as network security, mobile networks and the future Internet.

      Prerequisites: CS 3501 

      Credits: 3

    • CS 4632 - Modeling and Simulation

      This course covers the modeling and simulation of the structure and behavior of real-world systems using object-oriented discrete-event simulation techniques. The course emphasizes the modeling and computer programming perspective of simulation; design and implementation of simulation models. The fundamental concepts of object-oriented simulation are introduced. Model implementation will require programming in an object-oriented simulation language such as OOSimL, or in a general purpose programming language (Java or C++). Students will also be exposed to a commercial integrated simulation software tool: Arena.

      Prerequisites: CS 3304 

      Credits: 3

    • CS 4712 - User Interface Engineering

      A comprehensive study of techniques in design and implementation of user interfaces engineering. Topics include the foundation of human-computer interaction and interface related to software lifecycle, building a graphic user interface engineering, interaction devices and technologies, human-computer dialogue, cognitive models, usability, the design and development process, user interface management systems (UIMS), interface style and techniques, user learning, and diversity in interaction styles. Major research and the building of a working graphic user interface are included.

      Prerequisites: CS 1302 

      Credits: 3

    • CS 4720 - Internet Programming

      This course introduces current technologies for modeling, designing, implementing, and developing Web applications. Topics include developing for the server and the client, programming frameworks, server administration and integration with databases. Practice will involve platforms and language such as Linux, Python, PHP, Ruby and JavaScript.

      Prerequisites: CS 3304, (CSE 3153 or CS 3410)

      Credits: 3

    • CS 4722 - Computer Graphics and Multimedia

      The basic principles and practices of interactive computer graphics and multimedia systems are covered in this introductory course. The design and implementation of state-of-the-art computer graphic rendering and visual multimedia systems are the main part of the course. The sub-topics of the course deal with specific input/output hardware devices and their technology, software and hardware standards, programming methods for implementing 3-dimensional graphical applications and interactive multimedia applications, and a study and evaluation of the effectiveness of graphic/multimedia communications. A large component of the class is the building of a large-scale application.

      Prerequisites: CS 3304 

      Credits: 3

    • CS 4732 - Digital Image Processing

      This course discusses the following topics: Introductory concepts, Image formation and representation, Image Enhancement, Edge Detection, Image Transformation, Image Segmentation, Image Restoration, Image Morphology, Texture, Image Pattern Recognition, Skeletonization, Image Compression, Unsupervised Clustering and Image Analysis. At the end of this semester, students should be able to analyze digital images by implementing the algorithms taught in this course using Java, or C/C++ computer languages.

      Prerequisites: CS 3304 

      Credits: 3

    • CS 4850 - Computer Science Senior Project

      The course provides a capstone experience for CS majors to promote a successful transition to the work place or further academic study. Students will have the opportunity to practice essential project management skills and work with current software tools and technologies. Student teams will develop a project scope, project plan, document functional specifications, develop a design document, implement specified functions, provide weekly progress reports, give project presentations to the class, conduct final project presentation to the instructor and/or project sponsor, and provide a complete final report that includes documentation of all class activities. Each team will designate a team leader who is responsible for coordinating work tasks, team meetings, communications with the instructor and/or project sponsor, and team effort.

      Prerequisites: CS 3502 and CS 4305 

      Credits: 3

    • 40

  •  

    • CS 5000 - Foundations of Programming

      An accelerated approach to programming is presented with an emphasis on program design and computer science concepts. A modern, Object-Oriented language is used. Topics include core programming concepts including common data structures, function and class definition, inheritance, polymorphism, file I/O and exceptions, and recursion. Programming projects are included.

      Credits: 3

    • CS 5020 - Foundations of Computer Architecture and Operating Systems

      This accelerated course contains selected concepts from architecture including number systems, digital logic, basic logic design in combinational and sequential circuits, and assembly and machine language. Operating Systems concepts include management of resources including processes, real and virtual memory, jobs, processes, peripherals, network, and files.

      Credits: 3

    • CS 5040 - Data Structures & Algorithms

      An intense coverage of data structures and algorithmic techniques is provided including runtime analysis and big-oh notation. A modern language will be used. Topics include dynamically allocating memory, pointer declaration and use, and the implementation of data structures such as lists, stacks, queues, binary search trees, and graphs. Analysis techniques are provided, such as the growth of functions, recurrence equations, advanced sorting techniques, elementary graph algorithms, minimum spanning trees, greedy algorithms. Programming projects are included.

      Credits: 3

    • CS 5060 - Database Design

      This course will provide a practical foundation of database systems with emphasis on relational database design, implementation, and management. Topics include normalization, ERD, logical and physical design, SQL query, database applications, usage of XML in database, and data warehouse.

      Credits: 3

    • CS 5070 - Mathematical Structures for Computer Science

      Topics from discrete mathematics include set theory, relations and functions, principles of counting, graph theory, formal logic, recursion, and finite state machines. Emphasis is given to how mathematics relates to computer science.

      Prerequisites: Undergraduate Calculus course.

      Credits: 3

    • CS 6020 - Advanced Computer Architecture

      Topics include computer performance issues, instruction set architectures, RISC versus CISC, performance enhancing techniques, memory hierarchy (including cache memory), pipelining, multiprocessor architectures, and implications to operating system design.

      Prerequisites: Coursework in computer architecture and operating systems, or CS 5020  as per admissions analysis.

      Credits: 3

    • CS 6025 - Advanced Operating Systems

      The course focuses on advanced OS concepts such as: memory and process management for high-performance computing and architectures, advanced threading/concurrency, and distributed architectures and computing. The course emphasizes performance modeling with simulation and reading papers on the various advanced topics of operating systems. Discussion of grid computing and cloud computing, virtualization and hypervisors, scheduling for real-time, symmetric multiprocessing and hardware multithreading, effects and control of hardware caches A research project/paper is to be developed during the second half of the course.  

      Credits: 3

    • CS 6027 - Advanced Computer Networking

      This course builds on the fundamentals of computer networking and covers network programming, software application-related, protocol-related and security-related issues involved in the Internet. A specific protocol suite will be examined in detail. More advanced topics that build on the student's understanding of network protocols are also introduced, such as network security, mobile networks and the future Internet.

      Credits: 3

    • CS 6041 - Theory of Computation

      A study of topics from theoretical computer science that includes automata and languages, computability theory, and complexity theory.

      Prerequisites: Coursework in Discrete Math or  CS 5070 as determined by program admission

      Credits: 3

    • CS 6045 - Advanced Algorithms

      This course covers advanced topics in algorithms including randomized algorithms, decompositions of graphs, dynamic programming, linear programming and reduction, NP-complete problems, approximation algorithms, and quantum algorithms.

      Prerequisites: Coursework in Data Structures or CS 5040 as determined by program admission

      Credits: 3

    • CS 7050 - Data Warehousing and Mining

      This course covers prominent algorithms and techniques for developing effective, efficient, and scalable data warehousing and data mining tools. Topics discussed in this course include: data visualization, data integration, data warehousing, online analytical processing, data cube technology, advanced pattern mining, advanced classification analysis, advanced clustering analysis, outlier detection, data mining trends and research frontiers.

      Prerequisites: CS 6010     and CS 6050    

      Credits: 3

    • CS 7060 - Mobile Intelligence

      This course covers advanced and/or intelligent mobile application development. Topics include cross-platform mobile application development, mobile augmented reality, and mobile business intelligence.

      Prerequisites: CS 7030.

      Credits: 3

    • CS 7070 - Advanced Networking Protocols

      This course covers the study of the modern networking protocols, including the TCP/IP protocol suite, addressing, IPV6, routing, security.

      Prerequisites: CS 6060    

      Credits: 3

    • CS 7075 - Artificial Intelligence and Robotics

      This is a survey course covering topics in Artificial Intelligence and Autonomous Robotics. A survey of AI methods and approaches from search methods to neural networks will include hands-on with expert systems. A robotics kit will be included to allow students to analyze, design, build, and test simple robotic systems running autonomously.

      Prerequisites: CS 6020  

      Credits: 3

    • CS 7125 - Cloud Computing

      In this course we will discuss concepts including cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), Software as a Service (SaaS), etc.

      Credits: 3

    • CS 7172 - Parallel and Distributed Computing

      This course covers various aspects of parallel and distributed processing and algorithm design with an emphasis on programming. Topics include: Taxonomy of parallel architectures; Shared-memory vs. message-passing architectures; Computation models and Performance metrics; Parallel/distributed algorithm design - basic techniques; Parallel/distributed programming techniques and issues: partitioning, load balancing, synchronization, task scheduling, message overheads, etc.; Parallel/distributed algorithms for sorting, matrices, etc.; Debugging, Profiling, and Performance enhancements of parallel and distributed programs. Students will gain experience in parallel and distributed programming on state-of-the-art cluster and GPGPU/CUDA machines, including a 700+ CUDA machine.

      Credits: 3

    • CS 7174 - Modeling and Simulation

      The course covers an overview of modeling and simulation of the structure and behavior of real-world systems using object-oriented discrete-event simulation techniques. Students select an advanced topic in modeling and simulation to develop a research project and paper.

      Credits: 3

    • CS 7260 - Advanced Database Systems

      This course will cover advanced concepts and techniques in database systems. Topics include advanced concepts in relational databases, data warehousing and mining, and NoSQL distributed database technology for big data analytics.

      Prerequisites: Coursework in Database or CS 5060  as per admission evaluation

      Credits: 3

    • CS 7263 - Big Text Mining

      This course covers algorithms and applications of mining text/web data. Topics include entity extraction, social graph analysis, text clustering, TF-IDF indexing, web crawling, natural language processing, trend analysis, and semantic web. Multiple case studies will be conducted.

      Prerequisites: CS 6045  

      Credits: 3

    • CS 7265 - Big Data Analytics

      This course covers algorithms and tools that are needed to build MapReduce applications with Hadoop or Spark for processing gigabyte, terabyte, or petabyte-sized datasets on clusters of commodity hardware. A wide range of data algorithms will be discussed in this course.

      Prerequisites: CS 6045 

      Credits: 3

    • CS 7327 - Computer Graphics and Multimedia

      A study of the algorithms and principles of interactive 3D computer graphics, this course focuses on the rendering of graphical data with an emphasis on real-time systems. Topics include standards, supporting mathematics (including matrix and vector operations), the graphics pipeline, coordinate systems, lighting calculations, texturing, file formats and shader-based rendering. Major project included.

      Prerequisites: Coursework in Data Structures or CS 5040  as determined by program admission

      Credits: 3

    • CS 7367 - Digital Image Processing and Analysis

      This course discusses Introductory concepts, Image Formation and Representation, Image Enhancement, Edge Detection, Image Transformation, Image Segmentation, Image Restoration, Image Morphology, Texture, Image Pattern Recognition, Skeletonization, Image Compression, Unsupervised Clustering and Image Analysis. At the end of this semester, students should be able to analyze digital images by implementing the algorithms taught in this course using Java, or C/C++ computer languages.

      Prerequisites: Coursework in Data Structures or CS 5040  as determined by program admission

      Credits: 3

    • CS 7385 - Human Factors

      The psychological, social, and technological aspects of interaction between humans and computers. Includes usability engineering, cognitive and perceptual issues, human information processing, user-centered design approaches, and development techniques for producing appropriate systems. Major project included.

      Prerequisites: Program Admission or Permission of Director

      Credits: 3

    • CS 7425 - Wireless and Mobile Computing

      This course introduces the fundamental concepts of wireless networks, radio propagation, and data communications. It includes an extensive discussion on the MAC layer, IEEE802.11, location-sensing systems, wireless technologies (e.g., IEEE802.11, WiMAX, Bluetooth, RF tags, Wii), various data dissemination and access paradigms/architectures (e.g., mesh networks, mobile peer-to-peer) and wireless networks (e.g., ad hoc, mesh, sensor, infrastructure networks), routing protocols for wireless networks, monitoring wireless networks, statistical analysis and modeling of wireless network measurements, and analyzing the performance of mobile computing systems. The course also includes programming/survey/research term project that will enable students to experiment with mobile computing and research on wireless networking hot topics.

      Prerequisites: Admission to the MSCS program.

      Credits: 3

    • CS 7455 - Mobile App Development

      This course covers the fundamentals of software development for the Android Mobile Application Platform. Topics include UI Design for Mobile Apps, Resource Management for Mobile Apps, and Deployment of Mobile Apps.

      Prerequisites: Coursework in Computer Programming, or CS 5000   as determined by program admission

      Credits: 3

    • CS 7457 - Game Design and Development

      An introduction to computer game design, game design engines, 2D and 3D graphics, game-related algorithms, game control structures and games as simulations. Topics include graphics, multimedia, visualization, animation, artificial intelligence, and tools of game design. Developments using the software engineering life cycle are emphasized. The development and presentation of a game prototype is required.

      Prerequisites: Coursework in Data Structures or CS 5040 as determined by program admission

      Credits: 3

    • CS 7530 - Computing Security

      This course provides an introduction to fundamentals of security in computers and applications. Topics include various security principles based on authentication, authorization, access control, and cryptography. Focus is on latest trends in emerging security threats within network, web, mobile, and database applications as well as best practices to mitigate the threats. 

      Prerequisites: CS 6025  

      Credits: 3

    • CS 7535 - Computing Security: Implementation and Application

      This course covers the fundamentals of computing security, access control technology, cryptographic algorithms, implementations, tools and their applications in communications and computing systems security. Topics include public key infrastructure, operating system security, database security, network security, web security, firewalls, security architecture and models, and ethical and legal issues in information security.

      Prerequisites: (Coursework in Data Structures or CS 5040) and (Discrete mathematics coursework or CS 5070 ) as determined by program admission.

      Credits: 3

    • CS 7537 - Digital Forensics

      This course covers comprehensive study of the technological, systematic inspection and analysis of the computer systems and contents for evidence or supportive evidence of a crime. It focuses on legal systems, digital forensics, search and seizure, digital evidence, and media analysis. Students will be introduced to tools and techniques, and trends in digital forensics field.

      Prerequisites: CS 6025 and CS 6020 

      Credits: 3

    • CS 7827 - Real Time Systems

      The software development life cycle as it applies to real-time systems. Labs involve the use of a real-time operating system and an associated development environment. Related topics such as concurrent task synchronization and communication, sharing of resources, scheduling, reliability, fault tolerance, and system performance are discussed. Major project included.

      Prerequisites: Coursework in Operating Systems or CM 5030 as determined by program admission

      Credits: 3

    • CS 7843 - Theory of Programming Languages

      Comparative study of programming language paradigms with emphasis on design and implementation issues. Covers formal definitions of syntax and semantics, data types, scanning, parsing, scoping, static and dynamic storage allocation, definition of operations, control of program flow, code generation, virtual machine, subroutine and function linkages, formal tools for characterizing program execution, and abstraction techniques.

      Prerequisites: Coursework in Discrete Math or  CS 5070 as determined by program admission

      Credits: 3

    • CS 7990 - Special Topics in Computer Science

      Prerequisites: Depends upon topic

      Credits: 3

    • CS 7991 - Advanced Topics in Computer Science

      This course will cover research methods in computer science. Students will be required to study certain advanced topics in computer science through literature reviews and project development, and present study outcome in a seminar.

      Credits: 3

    • CS 7992 - Directed Studies

      This course covers special topics of an advanced nature that are not in the regular course offerings. Up to three hours may be applied to the major area.

      Credits: 3

    • CS 7995 - Internship

      This course provides a supervised, credit-earning experience of research or development in computer science with an approved organization or institution. Each student will also be required to complete a research/development project.

      Credits: 3

    • CS 7999 - Thesis

      Prerequisites: Permission of program director

      Credits: 3 (repeatable until thesis is complete; 9 hours minimum)

    • 36

    • ACST 2301 - Problem-Solving and Digital Game Design

      This course is an introduction to programming and problem solving, emphasizing the analysis of problems and design of solutions using a game design engine.  Content will also include an introduction to computer game design, with example games and game projects.    Concepts covered will include programming logic structures, object-oriented design, prototyping, game design approach, Agile Development, real-time constraints, threaded objects, inter-object communication, object inheritance, alarms, event management, elementary graphics, beta-testing, play-balance, and user-interface design.

      Credits: 3

    • ACST 3150 - Programming with .NET Framework

      This course covers the fundamentals of programming with C# by using Visual Studio and the.NET framework.  Topics discussed in this course include programming with the Visual Studio environment, basic syntax of the C# language, classes and objects, Inheritance, Interfaces and abstract classes, program flow and events, generics, collections, graphic applications.    

      Prerequisites: ACST 2301

      Credits: 4

    • ACST 3330 - Data Structures and Database Applications

      This course covers the fundamental and advanced data structures and database programming techniques.  Topics discussed in this course include: Programming with List, Queue, Stack, Hash Table, BST; ADO.NET; Language-Integrated Query (LINQ); Modern ORM tool; and ASP.NET Web Services.   

      Prerequisites: CS 3410

      Credits: 3

    • ACST 3510 - Computer Architecture and Robotics

      Coverage will include computer architecture fundamentals, embedded processor architecture and programming, and robot design and construction. Content will be balanced between computer architecture and organization with embedded processors, and hands-on construction of robot prototypes.   Lab projects will use a robotics kit.  Students will learn the foundations of computer organization and architecture, the architecture of an embedded processor, and the design and construction of simple robots.

      Prerequisites: ACST 3150 

      Credits: 3

    • ACST 3530 - Linux Operating Systems and Networking

      This course provides a practical coverage of operating systems and networking by using Linux, a widely used open source operating system.  Topics discussed in this course include basic concepts of operating systems, Linux kernel, system management basics, task scheduling, disks and devices, file systems, memory, system boots, basic concepts of networking, networking configurations, networking services, and shell scripts.  

      Prerequisites: ACST 3510 

      Credits: 3

    • ACST 3540 - Social Media & Global Computing

      Coverage will include the fundamentals of building systems with new social media technologies and will explore how these technologies affect social, economic and political organization on a local and global scale.  Topics will range from social networking, SMS, peer-to-peer networks, content aggregation technologies like portals and mashups, and media sharing functionalities like YouTube and Flickr.  Activities will include the development of student designed wikis, mashups, peer-to-peer applications and web services.

      Prerequisites: ACST 3150 

      Credits: 3

    • ACST 3710 - Digital Game Design

      This course provides an introduction to digital game design, game engines, multi-player games, and the game development process.   Students will develop games individually and in groups.  Students will make formal presentations, formally evaluate game designs and provide beta-testing feedback, and will incorporate beta-testing feedback into their designs.    

      Prerequisites: ACST 3150 

      Credits: 3

    • ACST 3720 - Process and Systems Modeling

      This course provides an introduction to modeling of processes and systems using computing technologies and gaming systems.  Models of biological, physical, environmental, and economic systems will be examined.  Students will build simple and complex models using graphical and intuitive tools, and investigate how game design engines can support models, and how games are simple models.     

      Prerequisites: ACST 3710 

      Credits: 3

    • ACST 4320 - Data Warehousing and Mining

      This course covers concepts, techniques, and applications of data warehousing and data mining. Topics discussed in this course include: dimensional modeling, extraction-transformation-loading (ETL), Online Analytical Processing (OLAP), Data Mining Extension to SQL (DMX), Naïve Bayes, Decision Tree, Association Mining, and Clustering.      

      Prerequisites: ACST 3330

      Credits: 4

    • ACST 4490 - Special Topics in Applied Computer Science

      Special topics of interest to faculty and students. 

      Prerequisites: Prerequisites vary depending on topic. 

      Credits: 3

    • ACST 4550 - Mobile Computing with Android

      This course covers the fundamentals of Android programming using the Android SDK.  Topics discussed in this course include: fundamental concepts in Android programming - activities and intents, designing user interface using views, data persistence, content providers, messaging and networking, location-based services, and developing android services.   

      Prerequisites: ACST 3150 

      Credits: 3

    • ACST 4570 - Cloud Computing

      Cloud Computing uses Internet as the platform for the development and delivery of computing technologies. Topics discussed in this course include:  cloud computing concepts, cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), Software as a Service (SaaS), cloud computing access and implementation, and cloud computing with MapReduce.

      Prerequisites: ACST 3530 

      Credits: 3

    • ACST 4620 - Computing Security

      This course covers basic concepts and practices in computer and network security. This includes topics such as cryptography, authentication, authorization, secure protocols and principles for developing secure software.  Applications will include using security frameworks to develop software and configuring security support systems.

      Prerequisites: ACST 3530 

      Credits: 3

    • 13

©