CS 102 - INTRO TO C PROGRAMMING

Semester Hours: 3

Introduction to program design and implementation in the C programming language, using hands-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, and file organization.

CS 103 - INTRO PROGRAMMING USING JAVA

Semester Hours: 3

Introduction to program design and implementation in the Java programming language, using hands-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, data types, control structures, methods and file organization.

CS 104 - INTRO TO CS USING PYTHON

Semester Hours: 3

Introduction to program design and implementation in the Python programming language, using hands-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, and file organization.

CS 105 - COMP SCI SEM:ETH/PROFESS

Semester Hour: 1

Issues associated with the ethical use of computers in the information age. Ethics, professionalism, software piracy, copyrighting software, ethical standards and the impact of computers on society will be covered. Familiarization with the local computing environment will also be covered.

CS 121 - COMPUTER SCIENCE I

Semester Hours: 3

Review of problem solving techniques, algorithm development, and fundamental language features; e.g., loops, decisions. In depth coverage of functions, arrays, I/O. Principles of software design, implementation, and testing. Introduction to object oriented design and the C++ programming language. Prerequisites: CS 102 or 103 or 104, and either MA 113, 115, 120, 171, 172, 201, 238, or 244 (with concurrency).

CS 143 - INTRO TECH MULTIMEDIA & GAMING

Semester Hours: 3

Introduction to terminology, technologies and tools for multimedia and gaming. Elements such as text, sound, images, animation, video, and how they are represented, captured, edited, stored, and published. Overview of multimedia and gaming technologies, multimedia authoring, publishing on the web.

CS 196 - SPECIAL TOPICS

Semester Hours: 1-9

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 214 - INTRO DISCRETE STRUCTURE

Semester Hours: 3

Review of set algebra including mappings and relations. Algebraic structures including semigroups and groups. Elements of theory of directed and undirected graphs; Boolean algebra and propositional logic and applications of these structures to various areas of computer science. Prerequisites: MA 171 and either CS 121 or CPE 211.

CS 221 - COMP SCI II: DATA STRUCTURES

Semester Hours: 3

Advanced features of the C++ programming language, including pointers, recursion, classes, and inheritance. Fundamental data structures including linked lists, stacks, queues, binary search trees. Basic sort and search algorithms. Design, development, and documentation of object-oriented programs. Prerequisites: CS 121 and either MA 113, or 115. Prerequisites with concurrency: MA 171 or CS 217.

CS 296 - SPECIAL TOPICS

Semester Hours: 1-9

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 300 - INTERNSHIP IN COMPUTER SCIENCE

Semester Hours: 3

Practical workplace experience allows student to apply principles and skills learned in CS courses. Arranged by student with consent of the chair, student submits regular reports to course instructor, and workplace supervisor evaluates students' performance.

CS 307 - OBJECT ORIENT/PROG C++

Semester Hours: 3

Emphasis on principles of software engineering and object-oriented design. Practical experience using the standard C++ library, the standard template library, and design patterns. Introduction to and experience with graphical user interface applications. Prerequisite: CS 221.

CS 308 - ASSEMBLY LANGUAGE PROGRAMMING

Semester Hours: 3

Programming in a representative assembly language, including floating point programming. Overview of software systems: loaders, assemblers, compiler, interpreters, operating systems. Prerequisite: CS 309.

CS 309 - COMPUTER ORG & SWTCHNG THRY

Semester Hours: 3

Boolean algebra, Boolean function minimization techniques, design and analysis of combinational circuits, design and analysis of sequential circuits. Computer hardware organization, including CPU, instruction representation and executive. Programing in a representative assembly language, including floating point programming. Overview of software systems: loaders, assembler, compiler, interpreters, operating systems. A lab section must be scheduled for this course. Prerequisite: CS 214.

CS 309L - LABORATORY

Semester Hours: 0

Lecture/Lab. Students enrolling in CS 309L must enroll concurrently in CS 309.

CS 317 - INTRO DESIGN/ANALYSIS OF ALG

Semester Hours: 3

Introduction to complexity analysis of algorithms; emphasis on searching, sorting, finding spanning trees and shortest paths in graphs. Design techniques such as divide & conquer, dynamic programming, and backtracking. Introduction to problem classification; i.e. NP, intractable, and unsolvable. Prerequisites: MA 171, MA 244 and CS 214, and either CS 221 or CPE 212.

CS 321 - INTRO OBJECT-ORIENTED PROG JAV

Semester Hours: 3

Writing substantial object-oriented programs in Java, including design, documentation and testing. Advanced data structures (e.g., balanced trees, hash tables). Graphical interface programming using the Java abstract windowing toolkit. Comparison with other object-oriented languages, notably C++. Prerequisite: CS 221.

CS 322 - COMPETITION INTS PROB SOLVING

Semester Hours: 3

This course provides intensive practice in solving different kinds of problems, under an instructor's guidance, in an environment similar to that of Computer Science competitions. Intensive programming and intensive use of many kinds of computing knowledge. Prerequisites: CS 221 and CS 317, minimum grade of C-.

CS 325 - PROFESSIONAL & COMPUTG ETHICS

Semester Hours: 3

The course focuses on two major aspects of professionalism and computer ethics. The first concerns the role of values and normative principles in the practice of computing or more specifically software development. The second concerns the impacts of computer technologies on society. Prerequisite with concurrency: CS 321.

CS 330 - ARTFCL INTEL & GAME DEV

Semester Hours: 3

Techniques and concepts of artificial intelligence applied game development and production. Topics: path planning, decision making, tactics, and non-rational behaviors. Prerequisite: CS 221.

CS 347 - INTRO VIDEO GAME DESGN & PROGM

Semester Hours: 3

Provides students with an overview of the video game production process. Covers both theory and practice of game design and programming. Students produce 2D and 3D games from beginning to end using existing game engines. Hands-on focus and project-oriented. CS 143 is highly recommended. Prerequisite: CS 221.

CS 370 - INTRO COMPUTER NETWORKS

Semester Hours: 3

Introduction to the organization and operation of computer networks. Physical, Data Link, Network, Transport, and Application-layer protocols and algorithms; LAN and WAN systems; TCP/IP; wired and wireless organizations; security approaches. Prerequisite: CS 309.

CS 371 - MOBILE COMPUTING APP INCT & D

Semester Hours: 3

Considers application design for the mobile space with emphasis on mobile computer interfaces, including GUI for mobile environments, entertainment computing, and cross-platform development. This course is also a component of the Entertainment Computing Track. Prerequisites: CS 221 or CPE 212.

CS 390 - UNIX/LINUX PROGRAMMING

Semester Hours: 3

Design and development of systems and programs in the UNIX environment. File and terminal I/O, processes, inter-process communication, signals. Pattern searching, filters, pipes. Shell programming. Program and system development tools such as awk, C, make, sed, and yacc. Prerequisite: CS 221.

CS 391 - INT NETWORK ADMIN PRINC WINDOW

Semester Hours: 3

Network administration principles for installing and administrating Windows networks. OS installation, general network topologies and protocols, and Windows client-server architecture. User management, network file and security systems, and disaster-recovery are also covered. Prerequisite: CS 221.

CS 392 - INT NETWORK ADMIN PRINC FOR UN

Semester Hours: 3

Linux OS installation, network topologies and protocols, and UNIX client-server architecture. User management, network file and security systems, kernel configuration, print servers, domain name service, mail servers, Web and ftp servers are included. Design and implementation of a UNIX domain. Prerequisite: CS 390.

CS 396 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 403 - INT FORML LANG AUTO THRY

Semester Hours: 3

Introduction to concepts and formalisms of formal languages and automata theory. Includes fundamental mathematical concepts, grammars and corresponding automata, and deterministic parsing of programming languages. Prerequisite: CS 317.

CS 413 - INTRO DIGITAL COMP ARCHITECTUR

Semester Hours: 3

Design of computer systems and subsystems, including register transfer, bus structure, timing and control. Pipelining, memory systems including cache and cache coherence, arithmetic, and I/O units. Interrupt handling. A lab section must be scheduled for this course. Prerequisite: CS 309.

CS 413L - LABORATORY

Semester Hours: 0

Lecture/Lab. Students enrolling in CS 413L must enroll concurrently in CS 413.

CS 424 - PRINCIPLES PROGRAMMING LANG

Semester Hours: 3

Comparison of principles and paradigms of modern programming languages. How different programming languages implement lexical, syntax, and semantic analysis, including the design of compilers. Formal grammars, BNF notation, parse trees, and abstract data types. Prerequisite: CS 317.

CS 430 - SURVEY ARTIFICIAL INTELLIGENCE

Semester Hours: 3

Survey of Artificial Intelligence (AI). AI crosses many disciplines, to make computational systems behave intelligently. This course provides a broad intro of AI sub-domains, including search, knowledge representation, reasoning, and machine learning. Prerequisite: CS 317.

CS 443 - INTRO TO MULTIMEDIA SYSTEMS

Semester Hours: 3

Multimedia authoring, color models for image and video, introduction to image and video compression, digital audio, multimedia networks, multimedia synchronization, multimedia retrieval. Taught as CS 443, 543. Prerequisite: CS 317.

CS 445 - INTRO COMPUTER GRAPHICS

Semester Hours: 3

Introduces underlying theory and mechanics of interactive computer graphics. Basic modeling, rasterization, 2D/3D transformations, and viewing. 3D graphics rudiments. Some hardware and historical perspectives. Many programs. Taught as CS 545; take only one! Prerequisites: CS 221 and MA 244 or CS 217.

CS 446 - ADVANCED COMPUTER GRAPHICS

Semester Hours: 3

High resolution 3D graphics. Advanced topics in viewing, vertex &, fragment processing, illumination & shading, and 3D modeling (curve & surface representation, texture mapping. Some coverage of solid modeling and color theory. Game production pipeline. Many programming projects. Taught as CS 446, 546. Prerequisites: CS 445 and at least junior standing.

CS 453 - CLIENT/SERVER ARCHITECTURES

Semester Hours: 3

Client/server distributed computing. Web based applications. Students will practice concepts in programs involving leading edge technologies such as AJAX, RESTful and WS-* web services. Enterprise Java Beans, .Net. Prerequisites: CS 307 or CS 321. CS 370 is recommended.

CS 454 - INTRO TO CLOUD COMPUTING

Semester Hours: 3

Different cloud computing paradigms: IaaS, SaaS, PaaS. Open Source cloud software (for ex., OpenStack, CloudStack). RESTful interfaces, AWS interface. Cloud Security. Taught as CS 454, 554. Though not required as a prereq studens are recommended to have taken CS 390. Prerequisites: CS 307 or CS 321 or CPE 353 and CS 370 or CPE 348 or IS 460.

CS 465 - NETWORK SECURITY

Semester Hours: 3

Introduction to Network Security: Fundamentals of Network Security and Cryptography. Examines security at different network layers, wireless security, firewalls, intrusion detection, and penetration analysis. Prerequisites: CS 121, and (CS 221 or CPE 221), and (CS 370 or CPE 348).

CS 466 - OFFENSIVE SECURITY

Semester Hours: 3

Theoretical and practical network and web app Penetration Testing with hands on labs for the five ethical hack phases including reconnaissance, scanning & vulnerability assessment, gaining access and exploitation, maintaining access, covering tracks. Other red-team offensive security approaches. Prerequisites: CS 370 or CPE 348, minimum grade of C-.

CS 480 - MOBILE DIGITAL FORENSICS

Semester Hours: 3

This course examines digital forensics of mobile devices such as smart phones and tablets in a law enforcement context. Mobile device characteristics that make forensics examinations difficult are discussed. Various forensic tools are critically examined with an eye toward improved tool development. Prerequisites: CS 413 or CPE 323.

CS 481 - MODELING & SIMULATION I

Semester Hours: 3

Discrete event simulation from a computer science perspective. Mathematics of probability distributions applied to simulation. Design, implementation, and application of discrete event simulation software. Application to computer and network system design. Prerequisites: CS 221 and (MA 385 or ISE 390).

CS 482 - MODELING & SIMULATION II

Semester Hours: 3

Advanced modeling methods, including Monte Carlo simulation, agent-based modeling, and mathematical modeling, from a Computer Science perspective. Emphasis on implementation, execution, and validation of working computer models using different modeling methods. Prerequisite: CS 481.

CS 485 - INTRO CYBERSECURITY ENGR

Semester Hours: 3

Introduction to cryptography, computer security, security management, auditing, process analysis, software security, evaluation, and testing. Focuses on tools, processes, and methods needed to design, implement, and test systems and to adapt existing systems to survive in a hostile environment. Prerequisite: CPE 348 or CS 370.

CS 487 - DATABASE SYSTEMS

Semester Hours: 3

Basic concepts of database management systems with a focus on relational and object-oriented systems. Database design including semantic models and normalization. Design issues including query languages, internal storage, recovery, concurrency, security, integrity, and query optimization. Senior standing required.

CS 488 - INTRO TO BIG DATA COMPUTING

Semester Hours: 3

Provides big data concepts and characteristics; big data architectural concepts; big data ecosystem. Includes MapReduce framework and programming and coverage of big data applications. Prerequisite: CS 317.

CS 490 - INTRO TO OPERATING SYSTEMS

Semester Hours: 3

Principles of operating systems. Process management, memory management, I/O management, and file systems. Specific topics include process states, threads, CPU scheduling, concurrent processing, virtual memory. Contemporary operating systems will be used as examples. Prerequisite: CS 413.

CS 495 - SEL TOPICS:UNDERGRAD CS

Semester Hours: 3

Individual directed study under the supervision of an instructor. Instructor approval required.

CS 496 - SPECIAL TOPICS

Semester Hours: 1-9

Course offered by an instructor in a specialized area of computer science. Instructor approval required.

CS 499 - SR PROJ:TEAM SOFTWARE DESIGN

Semester Hours: 3

A combination of lectures on proven software engineering approaches, and team working sessions. Each student will participate in a sizable, complex, software development project based on a team approach. Each team will be required to provide oral and written documentation of their work. Prerequisite: CS 317 and either CS 307 or CS 321.