Computer Science (CMPS)

CMPS 200  Information Technology  
Prerequisite: none. Lab included. (Also BUS 200.)  

The course gives the student the knowledge and experience needed to use technology effectively. Topics include the following: desktop and electronic publishing, presentation and multimedia, data collection and organization using spreadsheets and databases.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 2  
CMPS 218  Publishing on the Web I  

Demonstrates the ability to code static websites in HTML and CSS by hand. Covers building static websites in HTML5 and CSS3, links, tables, color and graphics, frames, forms, multimedia, development life cycle, the modern design principles, Web design best practices, development and testing of web pages. Introduces Web Development Tools such as Adobe Dreamweaver, Web Developer Add-Ons, Notepad++, tools to upload websites, HTML and CSS Validators, and modern browsers. The final part of the course consists of a presentation, a written final report and a demo of the final website published on a web server. Lab included. Not challengeable. Formerly CMPS 318.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 260  Introduction to Linux  

This lower division seminar introduces students to the commands, utilities, and supporting architecture used in the Linux operating system. It develops conceptual foundations of operating systems and practical skills required for system administration. Topics include historical notes on Linux; using the command line interface; understanding users and file system; using text editor; managing processes; managing users and groups; shell scripting. Students will learn basic shell scripting to automate system administration tasks and become familiar with the structure and commands of the Linux operating system. Letter grade only. Not challengeable.

Semester Hours: 1  
CMPS 301  Programming Concepts  

Emphasizes problem solving and structured programming. Elementary input/output; arrays; strings; functions, and pointers. Not applicable toward the Mathematics major. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 302  The Digital Society  

The course will expose students to different technologies and their impact on society, business, personal relationships, and the legal ramifications thereof. The course introduces the effect of different technologies on the environment in which they are applied and public attitude affecting their use. The course emphasizes the impact of science and technology on human institutions, social values, ethics, and human self image. Students will improve their critical thinking skills, and explore current event topics. Moreover, students will formulate, analyze, synthesize, and defend their ideas both orally and in written form. In addition, students will work individually on some of the assignments and collaborate with teammates to produce a research paper. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 319  Publishing on the Web II  
Prerequisite: Completion of CMPS 218 with a C- or better  

Demonstrates the ability to code dynamic and interactive websites in HTML, CSS, and JavaScript by hand. Covers design, development, debugging, testing dynamic and interactive websites, HTML, and Cascading Style Sheets review, introduction to scripting, JavaScript control statements, functions, arrays, objects, JavaScript event handling, XML, Document Object Models (DOM), and building Ajax-enabled internet applications. Develops an understanding of the programming process and programming logic using flowcharts. Introduces Web Development Tool, and current debugging online tools. The final part of the course consists of a presentation, a written final report and a demo of the final website published on a web server. Lab included. Not challengeable.

Grade Mode: Letter, Audit  
Semester Hours: 4  
CMPS 320  Internet Apps Development  
Prerequisite: Completion of CMPS 218 or CMPS 378 with a C- or better  

Covers building Data-Driven Web applications, Customized, Secure, Content Management System using PHP and MySQL, Web Servers, Linux Environment, Structured Query Language (SQL), MySQL, creating a database, PHP basics, Programming with PHP, connecting to MySQL with PHP, form processing, regular expressions, creating dynamic web sites, shopping cart and MySQL Administration. Lab included. Not challlengeable.

Semester Hours: 4  
CMPS 324  Building Blockchain Apps  
Prerequisite: Completion of CMPS 319 or CMPS 367  

This course is focused on mastering cutting-edge blockchain development technologies including Tendermint and Cosmos, and building decentralized blockchain applications. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 327  Discrete Mathematics  
Prerequisite: Completion of MATH 201 or MATH 202 with a minimum grade of C-  

Development of mathematical tools necessary for algorithmic applications in computer science. Includes set theory and logic, various algebraic structures, graph theory, Boolean algebra, and computability theory. Emphasizes applications in computer science.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 367  Object Oriented Language C++  
Prerequisite: Completion of CMPS 301 with a C- or better  

Object-oriented programming. Reviews basic C++ concepts, operators, functions overloading, classes and class inheritance, virtual functions, and file structures. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 368  Principles of Computer Networks  

Analyzes the mode of operation and the various interface standards and protocols associated with data networks. Reviews ISO/OSI standards, packet and circuit switched data networks, ISDN, local and wide area networks. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit  
Semester Hours: 4  
CMPS 369  Local Area Networks  
Prerequisite: Completion of CMPS 368 with a C- or better  

Covers LAN, server, client/server, and wireless technology; standardization; operating systems; commercial LAN products; inter-networking devices and protocols; metropolitan area networks; vender specific solutions; LAN administration. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 370  Seminar  

Discussion of new and innovative topics in computer science, computer engineering, and information systems. May be taken for four semester hours for credit. Not challengeable.

Grade Mode: Letter, Credit/No Credit  
Semester Hours: 1  
CMPS 370C  System Engineering Seminar  

This course provides students with an understanding of the systems engineering principles, methodologies, processes, models, and tools over the systems development life cycle. Familiarize with the systems engineering elements such as requirements analysis, functional analysis & allocation, synthesis & integration, system analysis & control, and verification & validation. Students gain knowledge of key systems engineering activities such as systems engineering planning & scheduling, configuration management, technical reviews, and risk, issue & opportunity management. Letter grade only. Not challengeable.

Semester Hours: 1  
CMPS 371  Assembly Language  
Prerequisite: Completion of CMPN 280 and CMPS 367  

Covers structure and principles of assembler operation; macro programming and use of assembly language in high level languages. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 372  Introduction to Python Programming  
Prerequisite: Completion of CMPS 367 or 378 with a C- or better  

This course introduces students to the Python programming language with an overview of the basic functionalities of the language and libraries needed to solve a problem in data analytics. Topics include Python syntax (built-in data types, expressions, and statements); control flow (selection and loops); user-defined functions; Object-Oriented programming in Python; built-in functions; strings and things; file and text operations; advanced topics (data analysis in Python). Students will learn the basic elements of programming in Python and how to solve problems in data analytics. Lab included. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 375  Systems Analysis and Design  
Prerequisite: Completion of BUS/CMPS 410  

Examines the information systems life cycle in relation to systems analysis. Presents current tools and techniques of systems analysis in data flow diagrams, data dictionaries, transform descriptions, database descriptions, prototyping, etc. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 378  C# Programming  
Prerequisite: Completion of CMPS 218 or CMPS 301 with a C- or better  

Covers an overview of .NET technology and the role of C# programming, Visual Studio .NET, C# as a general purpose object oriented programming language, Control Structures, Methods, Arrays, Exception Handling, Strings, Inheritance and Graphic User Interface with Windows Forms, Console and Window Apps. Lab Included. May be taken for letter grade only. Not challengeable.

Grade Mode: Letter, Audit  
Semester Hours: 4  
CMPS 379  Java  
Prerequisite: Completion of CMPS 301 with a C- or better  

Covers basic concepts of object oriented programming; Java and OOP classes, packages, and inheritance; and requirements for building a fully functional Java program. Lab included. Can be taken for letter grade only. Not challengeable.

Grade Mode: Letter, Audit  
Semester Hours: 4  
CMPS 385  Data Structures  
Prerequisite: Completion of MATH 327 and CMPS 367 with a C- or better  

Algorithms and data structures. Arrays. Lists. Stacks and queues. Tree structures. Searching and sorting algorithms. Files. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 386  Introduction to Data Mining  
Prerequisite: CMPS 372 and MATH 201  

This course is focused on data mining with an emphasis on data visualization and the processes of data cleansing, clustering, and classification using Excel, SQL, NoSQL, Python, and R programming. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 388  Software Engineering  
Prerequisite: Completion of CMPS 367 with a C- or better  

A hands-on introduction to software engineering. Recognition of conditions for production of high quality software. Use of current software development technology. Organization and management of software development projects. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit  
Semester Hours: 4  
CMPS 390  Special Topics in Computer Science  

Special topics in computer science. Must have junior or senior standing and instructor approval. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit  
Semester Hours: 4  
CMPS 392  Project Management  

Presents project types from public, business, engineering, and information science fields. Includes selecting, initiating, operating, and managing projects. Can be taken for letter grade only. Not challengeable. Also BUS 375.

Grade Mode: Letter, Audit  
Semester Hours: 4  
CMPS 399  Independent Study  

Student-designed courses approved by a faculty member. Prior approval of goals, objectives, procedures, and assessment plan as directed in the Independent Study Manual is required. May be taken multiple times with a different topic for credit. Not challengeable.

Grade Mode: Letter, Credit/No Credit  
Semester Hours: 1-4  
CMPS 400  Analysis of Algorithms  
Prerequisite: Completion of CMPS 385 and MATH 327 with a C- or better  

Principles of algorithm design. Complexity of sorting and searching algorithms. Combinational and graph algorithms, divide and conquer algorithms, linear and dynamic programming and greedy algorithms. Methods for providing correctness and asymptotic analysis. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 410  Management Information Systems  
Prerequisite: Completion of Written Communication B  

This course introduces Information Technology as it impacts management of organizations and discusses the development, management and utilization of IT in organizations. This course synthesizes models from management and IT for students to integrate contributions of each discipline to analyze various situations to understand its complexity, and recommend a path that leads to higher levels of performance. The covered topics include planning process and communication process that are influenced by information technology, impact of IT on business models and organizational structure, and develop familiarity of IT technologies, their applications and how they affect individuals, organizations, and society. Not challengeable. Also BUS 410.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 420  Cybersecurity  
Prerequisite: Completion of CMPS 368 with a C- or better  

This course discusses the vulnerabilities created by system, hardware and software developers, and their usual exploitation by hackers to attack. The counter measures against these attacks are covered, including: identification and authentication of users and network nodes, access control alternatives to limit the authorized actions by any process, protections mechanisms in a network, intrusion detection, intrusion protection and firewalls, security management, and methods to build trusted computer systems. Students will learn how to manage the risk, and translate the risk reduction through security architecting and systems engineering. Computer security counter measures are deployed throughout an information infrastructure. To build trust into a system, the course covers the topics of security requirements, design, development, integration, test, operation, and maintenance. Finally, the course covers the topic of ethics and professionalism as related to computer security. Lab included. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 450  Automata Theory  
Prerequisite: Completion of CMPS 385 and MATH 327 with a C- or better  

Includes finite and infinite languages, context-free and non-context-free languages, pushdown automata, and Turing machines. Not challengeable.

Semester Hours: 4  
CMPS 451  Artificial Intelligence  
Prerequisite: Completion of CMPS 385 and MATH 327 with a C- or better  

Representation of knowledge and control strategies. Searching. Predicate calculus. Automata theorem proving. LISP, PROLOG, VP Expert, etc. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 453  Advanced Topics in Artificial Intelligence  
Prerequisite: Completion of CMPS 451 with a grade of C-  

Includes topics such as Block-chain, data analytic, data mining, decision tree, expert systems, fuzzy logic, machine learning theory, and virtual reality. Lab included. Letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 455  Compiler Design  
Prerequisite: Completion of CMPS 385 and MATH 327 with a C- or better  

Introduces compilers. Finite automata and lexical analysis. Parsers. Error detection and recovery. Case studies. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 460  Operating Systems  
Prerequisite: Completion of CMPS 385 with a C- or better  

Evolution of operating systems. CPU scheduling. File systems. Memory management. Device management. Protection. Multiprocessing and time-sharing. Case studies: Linux, UNIX, and VMS. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 471  Internship  

Applies theoretical principles and methods in industry under supervision of working professionals. For Computer Science and Computer Engineering majors. Junior or senior standing and instructor approval required. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Letter, Credit/No Credit, Audit  
Semester Hours: 1  
CMPS 480  Distributed Internet Computing  
Prerequisite: Completion of CMPS 378 with a C- or better  

Covers Polymorphism, Interfaces, Abstract Classes, Delegates, Files and Streams, Generics, Language Integrated Query (LINQ), Connecting to a Database in ASP.NET, Database and SQL enabled applications, Web App Development with ASP.NET, ASP.Net AJAX, Web Services and Building a Windows Azure Cloud Computing App. Lab included. Can be taken for letter grade only. Not challengeable.

Grade Mode: Letter, Audit  
Semester Hours: 4  
CMPS 481  Mobile Applications Development  
Prerequisite: Completion of CMPS 480 with a C- or better  

Topics include: application architecture, XAML, basic principles, concepts, and constructs of Windows phone applications, Sliverlight and dynamic layout, XNA framework, controls and properties, application bars, navigation, pivot, panorama, and creation of mobile applications; lab included. May be taken for letter grade only. Not challengeable.

Semester Hours: 4  
CMPS 490  Database Management Systems  
Prerequisite: Completion of CMPS 375 or 367 with a C- or better  

Study of database management fundamentals focusing on relational data modeling, database organization, file organization, query processing, recovery, data integrity, and normalization of relational databases. Lab included. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Letter, Credit/No Credit, Audit  
Semester Hours: 4  
CMPS 491  Systems Architecture  
Prerequisite: Completion of CMPS 370C  

Foundations of systems architecture, including classical architecting methods and models. Not challengeable.

Grade Mode: Letter, Credit/No Credit, Letter, Credit/No Credit  
Semester Hours: 4  
CMPS 498  Comprehensive Exam  

Computer science students are expected to take this comprehensive exam during their late junior or senior year. The exam covers all Core and Concentration requirements. Senior standing or instructor approval required. CRD/NCR only. Not challengeable.

Semester Hours: 0  
CMPS 499  Senior Project  

Culminating activity required by majors in all departments. Papers/theses/projects researched, prepared, and written under the guidance of a faculty member. Comprehensive exams or recitals required in some departments. Academically, Students must be in Good Standing to enroll in 499. Can be taken for letter grade only. Not challengeable.

Semester Hours: 4