Undergraduate Course Descriptions
105. INTRODUCTION TO COMPUTER TECHNOLOGY (Credit, 3 Hours). This course will provide knowledge of the capabilities, limitations and implications of computer technology. Not for credit for Computer Science Majors.
110/111. COMPUTER SCIENCE SEMINAR I & II (Credit 1 Hour Each). This is a two-part sequence course designed for freshman computer science majors. These courses provide a comprehensive overview of the scope and dynamics of computer science. Topics such as history of computing and technology, computers in modern society, computer application, legal and moral issues of computing and the computer scientist as a professional will be covered. A term project will also be assigned.
190. PROGRAMMING TECHNIQUES AND ALGORITHM DEVELOPMENT I (Credit 3 Hours). This course is the first of a two-course sequence for Computer Science majors and minors. This is a rigorous course stressing a disciplined approach to problem solving, algorithm design, logic development, and testing and debugging of programs. This course will emphasize procedure and data abstraction, the detailed study of a programming language, and the evolution of computer hardware and software technologies. A current programming language will be used as a vehicle for expressing algorithms.
191. PROGRAMMING TECHNIQUES AND ALGORITHM DEVELOPMENT II (Credit, 3 Hours). The second course in the two-course sequence for Computer Science majors and minors improving the analysis and design skills is the primary intent of this course. Emphasis is placed on problem analysis and design of systems, algorithm design and efficient coding techniques to optimize overall programming execution. Advanced techniques utilizing the language introduced in CMPS 190. Prerequisite: CMPS 190.
200. DISCRETE STRUCTURES (Credit, 3 Hours). Mathematical foundations of Computer Science, including fundamentals of logic, set theory, Boolean algebra, graph theory and finite state machines. Prerequisite: Consent of Instructor.
201. DATA STRUCTURES (Credit, 3 Hours). This course is intended to present the data structures which may be used in computer storage to represent the information involved in solving problems (heaps, hash tables, B-trees). Emphasis will be placed on concepts of data abstraction and its implementation. Also sorting and searching techniques including arrays. Prerequisite: CMPS 191.
240. PRACTICAL EXPERIENCE I. (Credit, 3 Hours). This course enables those students who enroll to gain firsthand experience while employing concepts and theory gained from elementary coursework in Computer Science. This experience is achieved by the student successfully completing an assignment in business, industry or government over a period of one semester. Prerequisites: Sophomore classification and approval of advisor.
250. BUSINESS APPLICATIONS WITH COBOL (Credit, 3 Hours) Facilities will be developed in computer program structures, data processing procedures, structures of data files and programming in a business language (COBOL). This course is designed for students of Computer Science as well as students matriculating in the College of Business. Prerequisite: CMPS 190.
270. C PROGRAMMING (Credit, 3 Hours) This course is designed to introduce students to the basic UNIX operating system structure and "C" programming- UNIX commands and application program, system formats will be taught, calls, subroutines and file. The fundamentals of "C" programming will also be taught along with applications.
271. JAVA PROGRAMMING (Credit, 3 Hours)
The fundamentals of Java Programming are taught in this course. The contrast between classical and object-oriented programming will be examined, with emphasis on the latter. The latest additions to the Java language specification will be additionally covered. A comparison between C++ and Java will also be discussed, to develop an appreciation of the rationale for the emergence of these two object-oriented languages.
285. SYSTEM ADMINISTRATION AND MAINTENANCE (Credit, 3 Hours). This course will discuss the following topics: PCs’ hardware; troubleshooting, repairing, and maintaining; operating systems and software; networking; security, and operational procedure. The theoretical and practical hands-on using the TestOut’s LabSim gained in this course will prepare students to handle the most common and everyday PCs, networking, and security issues.
290. MICROCOMPUTER APPLICATIONS IN BUSINESS (Credit, 3 Hours). Overview of the historical development of microcomputers in business. The focus is on application and use of operating system commands, word-processing, spreadsheets database managers, and graphics, desktop publishing and presentation managers for business. Not for Credit for Computer Science Majors.
291. ADVANCED TECHNIQUES USING SPREADSHEETS (Credit, 3 Hours). This course consists of using a software package to enhance the business finance concepts such as financial amortization schedules, trend lines, forecasting, and integrating other software packages. Not for credit for Computer Science Majors.
300. PROGRAMMING LANGUAGES (Credit, 3 Hours). This course is intended to survey the significant features of existing programming languages with particular emphasis on underlying concepts abstracted from these languages. The structure of simple statements, the structure of algorithmic languages, list processing and string manipulation languages and including procedural, object-oriented, logic programming, and functional languages. Prerequisite: CMPS 201 and admission to the department.
302. COMPUTER ORGANIZATION (Credit, 3 Hours). Understanding the behavior of elementary computer hardware. Content of course deals with two state logic, flip flops, implementation of binary arithmetic, elementary Boolean algebra and elementary computer design. Addressing modes; implementation of a data path; interfacing processors and peripherals. Prerequisites: CMPS 191 and CMPS 200 and admission to the department.
305. SOCIAL NETWORKING (Credit, 3 Hours). This course introduces students to a variety of existing, new and emerging concepts, strategies, and technologies utilized in today's online environment. It covers various social networking platforms, content, and tools, and related security and privacy issues in social media. Students will learn how to use social media to reach personal and professional goals.
310. GAME PROGRAMMING (Credit, 3 Hours). This course introduces students to the design and implementation of video games. Topics include basic game artificial intelligence, storyboarding, graphics and animation programming and sound. This course will require significant programming. This course will be extremely hands-on with the goal of successfully implementing most of the material covered in the course. The final project of the course will be the implementation of a video game.
315. INFORMATION SYSTEMS (Credit, 3 Hours). This course is designed to explore the structure, classification, features, and methodologies of modern computer based information systems. The various aspects of data storage, data mining, and information retrieval, transaction processing and business analysis will be emphasized. This course is designed to complement Systems Analysis and Design. Prerequisite: Consent of Instructor.
318. COMPUTER ANIMATION (Credit, 3 Hours). This course introduces students to the design and implementation of animations. Both programming and utilization of animation software will be covered with an emphasis on the latter. Topics include the history of animation and computer animation, understanding elemental topics in physics and geometry related to 3D animation, and understanding 3D computer animation techniques and algorithms. This course will require the use 3D rendering software such as Maya, Blender or Unity. This class will also cover the basics of animation programming using Java and OPENGL programming. This course will be extremely hands-on with the goal of successfully implementing most of the material covered in the course. The final project of the course will be the implementation of a computer animation projects.
334. DIGITAL DATA NETWORKS (Credit, 3 Hours). This course will cover the standard topics in data communications and computer networks. Topics will include transmission media, analog and digital signals, analog-to-digital conversion, data transmissions, data encoding, effect of noise, error detection and correction, multiplexing, network topologies, standards and protocols, access methods and contention strategies, and data security. Laboratory exercises will be an integral part of this course. Prerequisite: CMPS 200 and CMPS 302 or Consent of Instructor.
335. WIRELESS SENSOR NETWORKS (Credit, 3 Hours). This course will cover the principles of wireless sensor networks protocols and basic of security issues. The focus will be given to the following topics: hardware architecture of sensor mote, memory management, power management. Students will learn various attacks and their solutions, applications of sensor networks, and advanced topics.
340. PRACTICAL EXPERIENCE II (Credit, 3 Hours). This course to gain firsthand experience enables those students who enroll while employing concepts and theory gained from intermediate coursework in Computer Science. This experience is achieved by the student successfully completing an assignment in business, industry or government over a period of one semester. Prerequisites: Junior classification and approval of advisor.
355. CYBER FORENSICS (Credit, 3 Hours). This course will cover the introduction to the various aspects in the field of Internet/cyber forensics such as the rules and integrity of evidence, legal processes, factual reporting of the information found, and providing expert opinion in a court of law or other legal administrative proceeding and contemporary methods in the preservation, identification, extraction, interpretation, presentation, and documentation of computer evidence.
360. SCIENTIFIC PROGRAMMING (Credit, 3 Hours). Specialized languages and tools for vector and parallel computation will be introduced. Facility will be developed in computer design program structures, problem definition and analysis, program design, algorithmic techniques and programming in a scientific language. Parallel approaches to matrix computations using such tools as high performance FORTRAN and message passing interface. Designed for those students who are interested in applications to computationally intensive problems in science and engineering. Prerequisites: CMPS 191, MATH 264, and admission to the department.
365. COMPUTERS, INFORMATION AND SOCIETY (Credit, 3 Hours). This course will cover the policies, legal issues and legislation, professional responsibilities and ethical issues in the discipline of Computer Science. Topics will include, but will not be limited to intellectual property, security and privacy, ethics, and Internet protocol. Prerequisites: CMPS 334 and admission to the department.
370. OBJECT-ORIENTED PROGRAMMING (Credit, 3 Hours). This course will introduce the student to the concepts underlying object-oriented programming. It reviews pointers, procedures and structures in C. It introduces the concept of classes and objects for problem analysis, design and solution. It covers the ANSI standard of C++, syntax and implementation aspects with a wide range of class definitions and object manipulations. Some commercially available C++ program developments will also be discussed. Prerequisites: CMPS 201 and admission to the department.
371.ADVANCED OBJECT-ORIENTED PROGRAMMING (Credit, 3 Hours). This is an advanced course in object-oriented programming with JAVA and more intense than 370. Topic includes but not limited to: sub-typing, interfaces and abstract classes, overloading and overriding, multiple and repeated inheritance, polymorphic methods, dynamic binding, genericity, parametric polymorphism, message-passing, threads, remote method invocation, and automatic memory management. Prerequisite: CMPS 370 and admission to the department.
372. CLOUD COMPUTING (Credit, 3 Hours). This course introduces students to the design and implementation of cloud computing solutions. Topics include virtualization, public and private clouds, use of cloud computing resources, data centers, different cloud computing models, cloud computing storage solutions, security in cloud computing and IBM’s Smart Cloud Computing. This course will also investigate motivating factors, benefits, challenges, Enterprise Software as a service and other service models of cloud computer. This course will be extremely hands-on with the goal of successfully using or implementing most of the material covered in the course. This course will investigate cloud computing solutions such as Google App Engine and Amazon EC2 and virtualization technologies such as such as Xen and VMWare. The final project of the course will be the implementation of a cloud computing solution.
375. INFORMATION SECURITY (Credit, 3 Hours). This course introduces the students to methods of securing cyberspace is an extraordinarily difficult strategic challenge. Topics include, but not limited to: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. Prerequisites: CMPS 334 and admission to the department.
378. SOFTWARE ENGINEERING (Credit, 3 Hours) The study of the software life-cycle that different applications go through, from conception to release and maintenance. Topics include, but are not limited to software requirements, software design, critical software systems, software verification and validation, software management, legacy systems, risk management; tool support; software process; discussion of CMM and ISO-9003. Students will be required to develop a large project in team setting. Prerequisite: CMPS 201 and admission to the department.
385. LEGAL ISSUES IN INFO TECH (Credit, 3 Hours). The student will learn about the relevance of computer crime and intellectual property laws when a network is compromised. Analyze the new laws and cases on database breaches. Evaluate the policies and procedures enterprises must implement to protect proprietary data and IT resources. A highlight of this course is a legal review of the emerging topics of honeypots and active defenses, i.e., enterprises hacking back against hackers. By the end of the course, participants will have a functional knowledge of the issues that shape information security evolving standard of due care. A key goal is to help students factor in legal concerns when they draft enterprise IT security policies. Students will debate what the words of an enterprise policy mean from a legal perspective.
386. MODELING & SIMULATION (Credit, 3 Hours). Current topics in modeling and simulation including statistical models, high performance computing and programming, simulation packages in material science and biomedical research, and result data analysis and processing.
387. OBJECT-ORIENTED DESIGN PATTERNS (Credit, 3 Hours). Advanced object-oriented design and implementation based on design patterns. Theoretical framework for the basis of design pattern classification into creational, structural, and behavioral patterns; application of specific patterns (Abstract Factory, Builder, Factory Method, Adapter, Composite, Decorator, Proxy; Iterator, State, Strategy, and Template Method) to the design of software applications, to be implemented in one or more object-oriented languages. Prerequisites: CMPS 370 and admission to the department.
388. HUMAN-COMPUTER INTERACTION (Credit, 3 Hours). Introduction to the principles of Human-Computer Interaction in interface design of standalone and web-based applications. The course includes discussion on psychological, physiological, cognitive, cultural, ergonomic, and design issues in computer usage. Various design and implementation methodologies will be examined and contrasted, and applied in applications to be developed as coursework. The course will be project-driven and students will work on various team projects, and conduct testing on aspects of learning and usage of their software.
393. Mobile Client Development. (Credit, 3 Hours). Introduce the concepts involved in Mobile Client Development, discussions around why mobile, what causes a business to go mobile, the components usually used in a mobile deployment, and the general usage patterns for a mobile application. (Two perspectives: Consumer based applications and enterprise based applications).
394. Mobile Deployment. (Credit, 3 Hours). Introduce the concepts involved in Mobile Server Development, deployment and other inter-related dependencies that a server environment may require. Discussions around application development and deployment, communication methods, data exchange standards, logging, analytics, infrastructure concepts, troubleshooting, and interfacing with back-end systems will be discussed. Where applicable, there will be a call out difference between consumer infrastructure, enterprise infrastructure, and a discussion around using MBAAS (Mobile Back-end As a Service).
400. OPERATING SYSTEMS (Credit, 3 Hours). This course is intended to bring the student to grips with the actual programs encountered in systems programming. Operating system principles, hardware/software interface, resource management, segmentation, paging, virtual memory; operating characteristics, user service and their limitations will be given. Overall structure of multiprogramming systems on multiprocessor hardware configurations will be treated, as well as details on addressing techniques, core management, and file system design and management. Prerequisite: CMPS 302 and admission to the department.
402. COMPUTER ARCHITECTURE (Credit, 3 Hours). An overview of computer systems, data representation, memory hierarchies and storage, input/output, addressing stack architecture, pipeline architecture, microprogramming, basics of pipelines and multiprocessors, and performance evaluation. Prerequisite: CMPS 302 or consent of the instructor.
407. NUMERICAL METHODS (Credit, 3 Hours). This course is designed to give a strong working knowledge in applying numerical methods to solve problems. Topics include various methods to approximate desired number, which may be a root, an integral, or a value of a function in a differential equation. All of the methods studied have numerous practical applications in science and engineering. Prerequisite: MATH 265 and admission to the department.
412. THEORY OF COMPUTING (Credit, 3 Hours). Topics covered will be grammars, languages and productions, automata and their languages, regular sets, Turing machines and recursive functions, effective numbering and universal machines. Prerequisite: CMPS 200 and admission to the department.
415. SYSTEMS ANALYSIS AND DESIGN (Credit, 3 Hours). Provides the student with tools and techniques used in analyzing manual or automated information systems with a view toward computer implementation of these systems in terms of accuracy and efficiency. Analysis, design, and implementation phases of software systems development using a phased life cycle approach; modeling tools and CASE software. A team approach to software development and project management. Prerequisite: CMPS 201, CMPS 302, or consent of the instructor.
420. DATABASE MANAGEMENT SYSTEMS (Credit, 3 Hours). Topics include basic file organization: data structures, schemas, and subschemas, data models, relational, hierarchical, and network models, database reliability, database integrity, database protection, review of commercial database systems, programming in a database environment, and database administrator's role. Prerequisite: CMPS 201 and CMPS 300.
422. INTRODUCTION TO BIG DATA (Credit, 3 Hours). This course covers the knowledge of Big Data science. It serves as a senior level course for undergraduate students. The focus will be Big Data storage, processing, analysis, visualization, and applications. State-of-art computational frameworks for Big Data will be introduced to students. Students will learn the essentials of Big Data management, processing, and system reliability. Delivery of knowledge incudes textbook, lectures, labs, lab assignments and projects. Prerequisite: CMPS201
425. ROBOTICS (Credit, 3 Hours). This course introduces fundamental concepts in Robotics. Basic concepts will be discussed including coordinate transformations, sensors, path planning, kinematics, feedback and feed forward control, stressing the importance of integrating sensors, effectors and control. The last part of the course will focus on applying the knowledge from the initial lectures to the key approaches to mobile robot control (reactive, behavior-based, and hybrid), and briefly discuss robot learning and multi-robot systems. In the lab, robot kits will be used in weekly exercises illustrating lecture material; the last month of the lab will be spent in applying the learned material to a final project, in which the students will design and build a robot for a final competition. This course is intended for undergraduate students with interests in Robotics, Visual Computing, and Artificial Intelligence.
426. NETWORK SECURITY (Credit, 3Hours). This course covers the principles of network security. The focus will be given to the following: attack methods (targeted hacking attacks, denial-of-service attack), firewall architecture, host security, cryptography, e-commerce and email security, intrusion detection and response process, risk analysis, security architecture, control principles, and laws governing security issues.
432. DISTRIBUTED PROCESSING (Credit, 3 Hours). Topics include data communications principles, distributed processing networks, distributed databases, security, implementation, and management. Prerequisite: Senior standing in CS.
433. TELECOMMUNICATIONS (Credit, 3 Hours). Topics include communications environment, communications system components, networks and control common carriers, design of communications networks, and local area data networks. Design preparation and delivery of information, applications, and services using client/server computing over a wide-area network. Prerequisite: CMPS 334.
434. NETWORKS AND GRAPH THEORY (Credit, 3 Hours). The course is intended to illustrate how graph theory can be used to formulate and solve certain problems. The course consists of fundamental concepts of graph theory, some theorems concerning network flows, common and widely used algorithms for paths and trees, as well as flows and circuits. Direct computer implementation of the algorithms will be an integral part of the course. Prerequisites: CMPS 200 and MATH 233.
435. INTRODUCTION TO NEURAL NETWORKS (Credit, 3 Hours). Neural networks represent an emerging technology, and are becoming increasingly versatile. They are able to solve difficult nonlinear problems that are solvable using traditional methods. Inherently parallel design and ability to interact with the environment make neural networks ideal for large applications. This course will consider the design and implementation of neural networks. Topics include neural networks as problem solving tools; neural networks as self-organizing systems; single or multi-layered perceptions; associative memory networks; techniques in neural learning, back-propagation, supervised and unsupervised learning. Issues related to neuro-computing hardware and neuro-VLSI implementation will be discussed. Prerequisite: Departmental Permission Only.
436. PARALLEL COMPUTING AND APPLICATION (Credit, 3 Hours). This course covers parallel programming paradigms, examining core concepts, focusing on a subset of widely used contemporary parallel programming models, and providing application in materials design, and biomedical research. Topics include parallel programming principles, Dell Linux cluster, GPU and CUDA, performance tune up of parallel codes in material science and biomedical research, and result data analysis and processing. Applications are drawn from diverse areas of science and engineering
440. PRACTICAL EXPERIENCE III (Credit, 3 Hours). This course enables those students who enroll to gain firsthand experience while employing concepts and theory gained from advanced course work in computer science. This experience is achieved by the student successfully completing an assignment in business, industry, or government over a period of one semester. Prerequisite: Senior classification and approval of advisor.
450. CAPSTONE PROJECT PHASE I. (Credit, 1 Hour). Provide the opportunity for students to demonstrate that they have achieved the goals for learning established by the University and the Department. The course is designed to assess cognitive, effective, and psychomotor learning, and to do so in a student-centered and directed manner which requires the command, analysis, and synthesis of knowledge and skills. The capstone course described here integrates learning from courses in the major with the courses from the rest of the academic experience. It requires the application of that learning to a project which serves as an instrument of evaluation. The course fosters interdisciplinary partnerships among university departments and helps cultivate industry alliances and cooperation. Prerequisite: student must be a senior having completed all the requirements of the three years in Computer Science.
451. CAPSTONE PROJECT PHASE II. (Credit, 2 Hours). Provide the opportunity for students to demonstrate that they have achieved the goals for learning established by the University and the Department. The course is designed to assess cognitive, effective, and psychomotor learning, and to do so in a student-centered and directed manner which requires the command, analysis, and synthesis of knowledge and skills. The capstone course described here integrates learning from courses in the major with the courses from the rest of the academic experience. It requires the application of that learning to a project which serves as an instrument of evaluation. The course fosters interdisciplinary partnerships among university departments and helps cultivate industry alliances and cooperation. Prerequisite: student must be a senior in his/her second semester in Computer Science and have completed CMPS 450 with a grade of C or better.
455. SPECIAL PROJECTS (Credit, 3 Hours). Independent project implemented under the guidance of a member of the Computer Science faculty. Prerequisite: Departmental Permission Only.
470. COMPUTER GRAPHICS (Credit, 3 Hours). Algorithms, analysis, and software architecture for graphical information systems are covered; mathematics and algorithms for generating pictures and storing representations of pictures; calculus and linear algebra are used and modeling of solids is introduced. Prerequisites: MATH 233 (Credit or enrolled), MATH 265 and mastery of a computer language.
480. ARTIFICIAL INTELLIGENCE (Credit, 3 Hours). Fundamental concepts of artificial intelligence and its various and changing technologies, including: expert systems, natural language processing, computer perception and robotics, intelligent computer-assisted instruction. Students will design and implement a semester project using development tools existing in the Department of Computer Science. Prerequisite: Consent of Instructor.
485. DISASTER RECOVERY (Credit, 3 Hours). Provides the student with real world examples, and an extensive introduction to disaster recovery focusing on planning the team, planning for the disaster, and practicing the plan to make sure that, if ever needed, it will work.
493. FOUNDATIONS OF CRYPTHOGRAPHY (Credit, 3 Hours). This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity and non-reputation) and the mechanisms to achieve them as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, trusted third party, public-key infrastructure, digital signature, non-reputation, and message authentication. Various security standards and protocols (DES, AES, PGP, and Kerberos) are introduced.
494. CRPTOGRAPHIC PROTOCOLS (Credit, 3 Hours). This course covers the design and analysis of secure protocols, and studies different attacks and defenses against them. Topics include: signature and authentication protocols, privacy, digital rights management, security protocols for wired, wireless and distributed networks, electronic voting, payment and micropayment protocols, anonymity, broadcast encryption and traitor tracing, quantum cryptography, and visual cryptography. This course includes a project.
495. ENTERPRISE SECURITY PROTOCOLS (Credit, 3 Hours). Introduction to security management of computer and network systems. Protocols, specifications, security evaluations are discussed. Other topics include attacks, threats, and viruses, and the security of buildings and facilities.
496. INTERNET SECURITY PROTOCOLS (Credit, 3 Hours). Topics include secret key and public key cryptography, hash algorithms, authentication, Kerberos V 4 and V5, pretty good privacy, information hiding, IPSECNPN, IPSEC key exchange, SSLITLS, PEM & S/MIME, firewall, intrusion tracing and response, worms and virus, and security measurements.