CS 100. Introduction to Computers and their Applications (3 credit hours)
Computer history, application and ethics, operating systems, word processing, spreadsheets, databases, and integrating applications, data communications and the internet computer security and privacy.
Prerequisite(s): 19 or above in Math ACT.
CS 101. Programming Fundamentals (3 credit hours)
The fundamental concepts of programming using C. Historical and social context of computing and an overview of computer science as a discipline.
Prerequisite(s): Eligibility for MATH 120.
CS 102. The Object-Oriented Paradigm (3 credit hours)
The fundamental concepts of object-oriented programming using language such as C++, JAVA, or another object-oriented programming language of the instructor’s choice.
Prerequisite(s): C or better in CS 101.
CS 116. Python Programming (3 credit hours)
Basics of computer programmingand Python language, data types, flow control, functions, regularexpressions, graphing, file I/O, data visualization and pythonlibraries.
Prerequisite(s):Eligibility for MATH-120.
CS 202. FORTRAN Programming I (3 credit hours)
Structured FORTRAN with documentation, input- output, loops and logic statements.
Prerequisite(s): MATH 120, CS 101.
CS 204. Introduction to COBOL Programming (3 credit hours)
Provides the basic elements of the computer language necessary to run programs with an emphasis on business applications.
Prerequisite(s): CS 101.
CS 210. Fundamentals of Operating Systems (3 credit hours)
An introduction to the organization of computer operating systems and the range of computer operations available through efficient use of operating systems.
Prerequisite(s): CS 102
CS 214. Introduction to Visual Basic (3 credit hours)
This course introduces students to the standard visual basic forms, controls and event procedures. Sequential and random access file handling, database access and general language structure will be explored.
Prerequisite(s): CS 101.
CS 230. Database Management Systems (3 credit hours)
This course presents the history of database management systems, the logical and physical structures of several ent models, and deals in a practical, experiential way with the design of databases and the management systems that control them.
Prerequisite(s): CS 102.
CS 236. Introduction to PASCAL (3 credit hours)
The basic concepts and skills, including general problem-solving techniques, files and text processing and abstract data structures.
Prerequisite(s): CS 101.
CS 240. Data Communications and Networking (3 credit hours)
An introduction to the theories, terminology, equipment and distribution media associated with data communications and networking.
Prerequisite(s): CS 102.
CS 250. Data Structures and Algorithms (3 credit hours)
An introduction to the implementation and use of abstract data types including dynamic arrays, linked lists, stack, queues, three hash tables and heaps as well as algorithms that operate on these structures with a preliminary study of algorithmic complexity.
Prerequisite(s): CS 102 and Math 205.
CS 266. Introduction to JAVA (3 credit hours)
This course introduces students to the JAVA programming language. This object-oriented language is gaining popularity for developing secure, platform-independent applications and is often the language of choice for internet applications.
Prerequisite(s): CS 102.
CS 299. Special Topics (1-4 credit hours)
A sophomore-level course designed for a topic of special current interest.
Prerequisite(s): As stated by the offering.
CS 309. Software Engineering (3 credit hours)
Application of the tools, methods and disciplines of computer science to solving real-world problems. Topics include: the software process, software life-cycle models, software teams, quality assurance, project duration and cost estimation.
Prerequisite(s): CS 250.
CS 310. Computer Architecture and Assembly Language (3 credit hours)
An introduction to the design and organization of computer systems. Introduction to tradeoff evaluation based on Amdahl’s Law and discussion of fundamental building blocks of computer systems including the arithmetic logic unit (ALU), floating point unit (FPU), memory hierarchy and input-output (I/O) system. Study includes the instruction set architecture (ISA), a companion of RISC and CISC architecture.
Prerequisite(s): CS 102 and MATH 205.
CS 311. Object-Oriented Programming (3 credit hours)
Object-oriented programming using languages such as C++, Java, Smalltalk, Delphi.
Prerequisite(s): CS 250.
CS 316. Cybersecurity Principles and Practice (3 credit hours)
Diagnostic software utilities, advanced network packetanalysis, firewalls, intrusiondetection rules, forensicinvestigation, penetration testing, human factors in cybersecurity.
Prerequisite(s): CS 215 and CS240.
CS 335. Introduction to Systems Analysis (3 credit hours)
Life cycle of business information study, design, development, and operating phases, feasibility, project control.
Prerequisite(s): CS 250.
CS 336. Scripting Languages (3 credit hours)
Shell scripts and batch files, programming using interpreted languages such as PERL, Python, PHP, JavaScript or VBScript for automation of system administration tasks and web programming. Prerequisite(s): CS 102
CS 355. Big Data Analytics (3 credit hours)
Introduction to distributed computing and architecture, mapreduce fundamentals, big data ingestion and warehousing.
Prerequisite(s): CS 230 or CS 250
CS 365. GUI Programming (3 credit hours)
Graphical user interface design and implementation using visual programming tools and libraries.
Prerequisite(s): CS 250.
CS 390. Directed Student Research in Computer Science. (1-3 Credits)
CS 390 provides students with an introduction to the research and project design process as applied with the computing field. Students will learn about the tools of the trade and work through design principles starting with the articulation of a question, reviewing methods of exploration, gathering evidence, communicating results, and assessing/evaluating research or project outcomes.
Prerequisite(s): Permission of the instructor.
CS 395. Internship. (1-3 credits)
Placement of Computer Science students in business, industry and government to gain experience in applications of computer science in a work environment in a supervised setting.
Prerequisite: Approval of the Department Chair.
CS 399. Special Topics (1-3 credit hours)
A junior-level course designed for a topic of special current interest, including televised courses. Prerequisite(s): As stated for each offering.
CS 405. Algorithms (3 credit hours)
Design and analysis of algorithms and data structures, asymptotic analysis, recurrence relations, probabilistic analysis, divide and conquer, searching, sorting and graph processing algorithms.
Prerequisite(s): CS 250.
CS 408. Senior Seminar (2 credit hours)
Integrates the work completed in the various courses. Reading and research oriented. (To be taken in one of the last two semesters prior to graduation.)
CS 410. Systems Administration (3 credit hours)
Maintenance of a multi-user computer system, managing services, managing users, managing data, file systems, networking and security.
Prerequisite(s): CS 240 and CS 336.
CS 415. Theory of Computing (3 credit hours)
Formal grammars and languages, Chomsky Normal Form, Greibach Normal Form, finite automata, pushdown automata, turing machines, computability.
Prerequisite(s): CS 250 and CS 311.
CS 416. Computer Forensics and Penetration Assessment (3 credit hours)
Digital investigations, data andfile recovery methods, digitalforensics, data acquisition, virtualmachines, networks, mobiledevices, cloud forensics.
Prerequisite(s): CS 316
CS 425. Compiler Design (3 credit hours)
Introduces the theory and practice of programming language translation. Topics include compiler design, lexical analysis, parsing, symbol tables, declaration and storage management, code generation and optimization techniques.
Prerequisite(s): CS 250 and CS 310.
CS 445. Embedded Systems (3 credit hours)
An introduction to embedded system design and implementation, including specifications and modeling of embedded systems, hardware/software co-design, development methodologies and system verification and implementation with CAD tools.
Prerequisite(s): CS 310 or equivalent.
CS 455. Applied Data Mining (3 credit hours)
Data transformations, pattern discovery, cluster analysis, data mining and analytics, machine learning algorithms.
Prerequisite(s): MATH 355
CS 456. Applied Artificial Intelligence (2 credit hours)
History and concepts of ArtificialIntelligence, building blocks ofAI, Machine learning algorithms, applications of AI acrossindustries, design thinking, casestudies of AI industry practices.
Prerequisite(s): MATH 355
CS 505. LIBRARY RESEARCH (2 credit hours)
Extensive library research techniques in a particular Computer Science area. Staff assigns a topic and supervises the project. A maximum of two credits of CS 505 may be counted toward a Master’s in Computer Science.
CS 510. ADVANCED OPERATING SYSTEMS (3 credit hours)
Advanced topics in operating systems, such as: multi-tasking, synchronization mechanisms, distributed system architecture, client-server models, distributed mutual exclusion and concurrency control, agreement protocols, load balancing, failure recovery, fault tolerance, cryptography, multiprocessor operating systems.
CS 515. THEORY OF COMPUTATION (3 credit hours)
Finite automata theory, including determinism vs. nondeterminism, regular expressions, non-regular languages, and algorithms for finite automata. Context free languages including grammars, parsing, and properties. Turing machines and their functions. Undecidability. Computational complexity, including the classes P and NP.
CS 530. ADVANCED DATABASE MANAGEMENT SYSTEMS (3 credit hours)
Transaction management; query processing and optimization; organization of database systems, advanced indexing, multi-dimensional data, similarity-based analysis, performance evaluation, new database applications.
CS 540. NETWORK PROGRAMMING (3 credit hours)
Socket and client-server programming, remote procedure calls, data compression standards and techniques, real-time protocols (e.g: chat, etc, web-related programming (CGI, Java/Javascript, HTTP, etc.,) network management (SNMP-based management, dynamic/CORBA-based management).
CS 597. INTERNSHIP (1-3 credit hours)
Participation in private corporations, public agencies, or non-profit institutions. Students will be required to have a faculty coordinator as well as a contact in the outside organization, to participate with them in regular consultations on the project, and to submit a final report to both. On completion of internship, the outside contact should provide the faculty coordinator with a letter evaluating student’s performance during the internship period. At most 3 credits can be accepted towards the M.S. degree.
CS 599. SPECIAL TOPICS (1-4 credit hours)
An in-depth study of special topics proposed by members of the Computer Science graduate faculty. Open to graduate students.
CS 605. ANALYSIS OF ALGORITHMS (3 credit hours)
Techniques for designing efficient algorithms, including choice of data structures, recursion, branch and bound, divide and conquer, and dynamic programming. Complexity analysis of searching, sorting, matrix multiplication, and graph algorithms. Standard NP-complete problems and polynomial transformation techniques.
CS 609. ADVANCED SOFTWARE ENGINEERING (3 credit hours)
Advanced design methods including formal methods, component-based design, design with patterns and frameworks, and architectural-based designs. Modern software processes such as Extreme Programming and Cleanroom software development. Issues and problems associated with large-scale software project failures and techniques for preventing them.
CS 610. ADVANCED COMPUTER ARCHITECTURE (3 credit hours)
Design methodology; processor design; computer arithmetic: algorithms for addition, multiplication, floating point arithmetic; microprogrammed control; memory organization; introduction to parallel architectures.
CS 611. COMPUTER SECURITY (3 credit hours)
Principles and practice of Computer Network Security. Cryptography, authentication protocols, public key infrastructures, IP/www/E-commerce security, firewalls, VPN, and intrusion detection.
CS 612. PARALLEL AND DISTRIBUTED COMPUTING (3 credit hours)
General concepts in the design and implementation of parallel and distributed systems, covering all the major branches such as Cloud Computing, Grid Computing, Cluster Computing, Supercomputing, and Many-core Computing.
CS 613. COMPUTER GRAPHICS (3 credit hours)
Graphics hardware; graphics primitives; two-dimensional and three-dimensional viewing; basic modeling, input and display devices, data structures, architectures, primitives, and geometrical transformations appropriate to computer graphics.
CS 615. MACHINE LEARNING AND DATA MINING (3 credit hours)
Fundamentals of machine learning including rote learning, learning from examples, learning from observations, and learning by analogy; knowledge acquisition for expert systems. Information processing techniques and mathematical tools to assemble, access, and analyze data for decision support and knowledge discovery.
CS 645. REAL-TIME EMBEDDED SYSTEMS (3 credit hours)
An overview of the unique concepts and techniques needed to design and implement computer systems having real-time response requirements in an embedded environment. It contrasts the concepts and techniques of real time and embedded systems with those of more traditional computer systems. Topics include: Basic concepts of real time and embedded systems, hardware features, programming languages, real time operating systems, synchronization techniques, performance optimization and current trends in real time and embedded systems such as incorporating internet connectivity.
CS 697. DIRECTED STUDENT RESEARCH (1-3 credit hours)
An independent research topic designed by the student with the assistance of a graduate faculty advisor who supervises the project. The topic should be acceptable to the advisor and the chair. Limited to specific problems in the Computer Science field. A maximum of three credits of CS 697 may be counted toward a Master’s in Computer Science. Variable contact hours.
CS 699. THESIS PREPARATION (1-9 credit hours)
An independent research project designed by the student with assistance from the Thesis advisor and acceptable to the Thesis committee. Variable contact hours. Course is graded pass/fail only.