UNIVERSITY CATALOG: 2023-2024

Courses

CIT 101/L. CIT Fundamentals and Lab (2/1)

Corequisite: CIT 101L. The course provides an introduction to the computer hardware and software skills needed to help meet the growing demand for information technology (IT) professionals. The lecture portion of the course introduces the fundamentals of computer hardware and software management, and introduces key IT concepts including security, networking, and professional responsibilities. The lab …

CIT 160/L. Internet Technologies and Lab (2/1)

Corequisite: CIT 160L. Architecture of the Internet; Internet protocols, including http, ftp, telnet; browser technologies; current developments in Internet technologies and usage characteristics; Hypertext; self descriptive text; webpage design; website design; ADA compliance; commercialization of the Internet; role of the Internet in CIT. Lab: 3 hours per week.

CIT 210/L. Deployment and Management of Operating Systems and Lab (3/1)

Prerequisites: Grade of “C-” or better in CIT 101/L and COMP 122/L; Lower division writing requirement. Corequisite: CIT 210L. Introduction to the basic components of CIT systems, including networking, web systems, databases, scripting, system administration and maintenance, and system integration. A deeper study of operating system principles, network architecture and resource management, including shared resources.

CIT 270/L. Integrative Programming and Lab (3/1)

Prerequisites: Grade of “C-” or better in CIT 160/L and COMP 182/L; Grade of “C-” or better in MATH 103, MATH 150A or MATH 255A. Corequisite: CIT 270L. Role of integrative programming in information technology: operating systems, system management, application reuse. Tools and techniques for integrative programming, such as Perl, TCL/tk, VBscript and Python. Script …

CIT 360/L. CIT System Management and Lab (2/1)

Prerequisites: Grade of “C-” or better in CIT 210/L and CIT 270/L. Corequisite: CIT 360L. Overview of enterprise system architecture, principles and practices of systems administration and system management including firewalls and proxy servers; networked file systems; user account management; resources allocation, installation and configuration of operating systems, startup and shutdown, booting, performance monitoring, storage …

CIT 384/L. Web Development and Hosting and Lab (2/1)

Prerequisites: Grade of “C-” or better in CIT 270/L and CIT 360/L. Corequisite: CIT 384L. High-level understanding of TCP/IP protocol stack as it exists in practice, including example protocols. Packet capture and traffic analysis. System and software architectures for web applications, including hosting and horizontal scaling of web and database servers. Principles of website design …

CIT 425/L. Information and Systems Security and Lab (2/1)

Prerequisites: Grade of “C-” or better in CIT 360/L and IS 435. Corequisite: CIT 425L. This course will provide a comprehensive introduction and study into a broad selection of contemporary information systems security issues, concepts and policies, including the survey of state-of-the art technology used to address security problems. Topics of study include the basic …

CIT 480/L. CIT System Design and Implementation I and Lab (2/1)

Prerequisite: Grade of “C-” or better in IS 451. Corequisites: CIT 384/L; CIT 480L. CIT senior project first semester includes project proposal, methods and processes, feasibility studies, teamwork, CASE tools, work breakdown structure, estimating and budgeting, schedule planning, peer reviews and inspections, and technical presentation. Professional communication. Teamwork concepts and issues. Organizational context. Professional and …

CIT 481/L. CIT System Design and Implementation II and Lab (2/1)

Prerequisites: Grade of “C-” or better in CIT 480/L. Corequisite: CIT 481L. CIT senior project second semester includes system/software design, functional and non-functional testing, system and acceptance testing, schedule management and tracking, delivery and deployment planning, social contexts of computing, standards and certification issues such as ISO, CMMI, technical presentation, technical documentation, legal issues in …

CIT 488. Advanced Practicum in Information Technology (2-2-2)

Prerequisite: Department consent. This is a practicum designed to extend and enhance the information and concepts within the CIT curriculum. The focus of this course is to provide students with hands-on experience in the design, deployment, maintenance, and ongoing support of IT-based systems. Students will design scalable web applications, manage user and system configurations, and …

COMP 100. Computers: Their Impact and Use (3)

Not open to Computer Science majors. Introduction to the uses, concepts, techniques and terminology of computing. Places the possibilities and problems of computer use in historical, economic and social contexts. Shows how computers can assist in a wide range of personal, commercial and organizational activities. Typical computer applications, including word processing, spreadsheets and databases. (Available …

COMP 102/L. Programming for Data Applications and Lab (2/1)

Prerequisite: Multiple Measures Placement in GE-level Mathematics, or credit in MATH 093 or MATH 196QR or MATH 196S or equivalent. Corequisite: COMP 102L. Programming, using the Python programming language, with a focus on data manipulation and processing in contexts outside of traditional computing. No prior programming experience is required. Lab: 3 hours per week. (Available …

COMP 105BAS. Computer Programming in BASIC (1)

Prerequisite: COMP 101, COMP 110/L or COMP 106/L. Instruction and practice in computer programming in BASIC. 3 hours of lab per week.

COMP 108. Orientation to Computer Science (3)

Prerequisite: Multiple Measures Placement in GE-level Mathematics, or credit in MATH 093 or MATH 196QR or MATH 196S or equivalent. Not a required course in the major. Recommended for incoming Computer Science majors with limited computing experience as well as those considering a major in Computer Science. Introduction to the Computer Science major and profession. Main …

COMP 110/L. Introduction to Algorithms and Programming and Lab (3/1)

Prerequisite: Grade of “C-” or better in MATH 102, MATH 103, MATH 104, MATH 105, MATH 150A or MATH 255A. Corequisite: COMP 110L. Introduction to algorithms, their representation, design, structuring, analysis and optimization. Implementation of algorithms as structured programs in a high level language. Lab: 3 hours per week.

COMP 111A/L. Introduction to Algorithms and Programming A and Lab (2/1)

Prerequisite: Multiple Measures Placement in GE-level Mathematics, or credit in MATH 093 or MATH 196QR or MATH 196S or equivalent. Corequisite: COMP 111AL. Recommended for incoming Computer Science majors with minimal prior experience programming in a high level language. Introduction to the Computer Science major and profession with a focus on developing problem solving, algorithm …

COMP 111B/L. Introduction to Algorithms and Programming B and Lab (2/1)

Prerequisites: COMP 111A/L; Grade of “C-” or better in MATH 102, MATH 103, MATH 104, MATH 105, MATH 150A or MATH 255A. Corequisite: COMP 111BL. Introduction to algorithms, their representation, design, structuring, analysis and optimization. Implementation of algorithms as structured programs in a high level language. The second of a two-course sequence for those not …

COMP 122/L. Computer Architecture and Assembly Language and Lab (3/1)

Prerequisites: Grade of “C-” or better in COMP 110/L or COMP 111B/L; Grade of “C-” or better in MATH 103, MATH 104, MATH 105, MATH 150A or MATH 255A; Lower division writing requirement. Corequisite: COMP 122L. Introduction to computer architecture, assembly language programming, system software and computer applications. Number systems and data representation. Internal organization of …

COMP 182/L. Data Structures and Program Design and Lab (3/1)

Prerequisites: Grade of “C-” or better in COMP 110/L or COMP 111B/L; MATH 103, MATH 104, MATH 105, MATH 150A or MATH 255A; Lower division writing requirement. Corequisite: COMP 182L. Introduction to data structures and the algorithms that use them. Review of composite data types, such as arrays, records, strings and sets. Role of the …

COMP 222. Computer Organization (3)

Prerequisites: Grade of “C-” or better in COMP 122/L and COMP 182/L. Extension of basic addressing concepts to more advanced addressability, such as base register and self-relative addressing. Comparative computer architecture focusing on such organizations as multiple register processors and stack machines. Basics of virtual memory input-output. Introduction to the concept of microprogrammable systems. Low-level …

COMP 256/L. Discrete Structures for Computer Science and Lab (3/1)

Prerequisites: Grade of “C-” or better in each of COMP 182/L, MATH 150A, and PHIL 230. Corequisite: COMP 256L. Study of discrete mathematical structures and proof techniques as used in computer science. Discrete structures, such as functions, relations, sets, graphs and trees. Proof techniques, such as proof by induction, proof by contradiction and proof by …

COMP 282. Advanced Data Structures (3)

Prerequisites: Grade of “C-” or better in COMP 182/L and MATH 150A. Introduction to advanced data structures (particularly persistent structures) using object-oriented design. Main memory structures, hash tables and trees. Architectural foundations for files. Large-scale sorting. Hash-based persistent structures. Indexed files. Introduction to databases.

COMP 300. Computer Fluency (3)

Prerequisite: Completion of the lower division writing requirement. Does not provide credit toward Computer Science major. Study of fundamental computing concepts related to: information technology, data and its digital representation, technological power, computing limitations and social impact. Survey of essential and advanced applications designed to process different forms of information other than text. Promote such computing …

COMP 310. Automata, Languages and Computation (3)

Prerequisite: Grade of “C-” or better in either COMP 256/L or MATH 326. Study of the relation of languages (defined as sets of strings) and machines for processing these languages, with emphasis on classes of languages and corresponding classes of machines. Phrase structure languages and grammar. Types of grammar and classes of languages. Regular languages …

COMP 322/L. Introduction to Operating Systems and System Architecture and Lab (3/1)

Prerequisite: “C-” or better in COMP 222 or CIT 210/L, or ECE 422 and ECE 425/L. Corequisite: COMP 322L. Examination of the principal types of systems, including batch, multi-programming and time-sharing. Discusses networked system. Considers the salient problems associated with implementing systems, including interrupt of event driven systems, multitasking, storage and database management and input-output. Emphasizes …

COMP 324. Computer Networking and Security (3)

Prerequisite: Grade of “C-” or better in COMP 282. Architecture of networks and the Internet, Internet protocols, network layers. Analysis of the need for computer system and network security, operating system and network security techniques. Societal issues related to securing computers and networks.

COMP 333. Concepts of Programming Languages (3)

Prerequisite: Grade of “C-” or better in COMP 282. Discussion of issues in the design, implementation and use of high-level programming languages through a historical framework, including how languages reflect different design philosophies and use requirements and the technical issues in the design of main abstraction constructs of programming languages. Other approaches to imperative or …

COMP 380/L. Introduction to Software Engineering and Lab (2/1)

Prerequisites: “C-” or better in CIT 270/L or COMP 282; PHIL 230; and Oral Communication GE Basic Skills Section A.1. Corequisite: COMP 380L. Concepts and techniques for systems engineering, requirements analysis, design, implementation and testing of large-scale computer systems. Principles of software engineering for production of reliable, maintainable and portable software products. Emphasis on object-oriented …

COMP 410. Logic Programming (3)

Prerequisites: Grade of “C-” or better in COMP 380/L. Programming techniques in the logic programming language PROLOG. Prenex conjunctive normal form and grammatical algorithms. Tableaux, sequenzen, resolution and other semi-decision procedures. Closures of relations, fixed point theory, control mechanisms, relationship to functional programming. Available for graduate credit.

COMP 424. Computer System Security (3)

Prerequisites: Grade of “C-” or better in COMP 324, or IS 435. Analysis of the need for computer system security and the security techniques in operating systems, databases and computer networks. Supporting techniques, such as auditing, risk analysis and cost-benefit tradeoffs, are discussed. Available for graduate credit.

COMP 429. Computer Network Software (3)

Prerequisite: Grade of “C-” or better in COMP 324. Basic software design and analysis considerations in networking computers into coherent, cooperating systems capable of processing computational tasks in a distributed manner. Network topology, routing procedures, message multiplexing and process scheduling techniques. Available for graduate credit.

COMP 430. Language Design and Compilers (3)

Prerequisites: Grade of “C-” or better in COMP 310 and COMP 380/L. Examination of the issues involved in the design and subsequent implementation of programming languages. Considerations of implementation difficulties, including various features in a programming language. Tools and techniques to facilitate both the processing of programming languages and the building of programming processors. Available …

COMP 440. Database Design (3)

Prerequisites: Grade of “C-” or better in COMP 380/L. Database structure, including: structure definition, data models, semantics of relations and operation on data models. Database schemas, including element definition and use and manipulation of the schema. Elements of implementation. Algebra of relations on a database. Hierarchical databases. Discussion of information retrieval, reliability, protection and integrity …

COMP 442. Machine Learning Principles (3)

Prerequisites: COMP 182/L and MATH 444; or Grades of “C-” or better in COMP 380/L and MATH 340. A study of the concepts, principles, techniques, and applications of machine learning. Topics include concept-based learning, information-based learning (decision trees and ID3 algorithms), rule-based learning (association rules, learning ordered rules, learning unordered rules, and descriptive rule learning), …

COMP 465/L. Computer Graphic Systems and Design and Lab (2/1)

Prerequisite: Grade of “C-” or better in MATH 262. Corequisite: COMP 465L. Fundamental concepts of computer graphics. Graphics devices; graphics languages; interactive systems. Applications to art, science, engineering and business. Trade-offs between hardware devices and software support. Lab: 3 hours per week. Available for graduate credit.

COMP 467. Multimedia Systems Design (3)

Prerequisites: Grade of “C-” or better in COMP 380/L. Study of fundamentals of multimedia storage, processing, communication, presentation and display by digital means with emphasis on audio, still images and video media. Includes sampling theory, compression techniques and synchronization. Discussion of hypermedia and methodology issues. Multimedia programming; software tools for authoring multimedia applications and interfaces. …

COMP 469. Introduction to Artificial Intelligence (3)

Prerequisites: Grade of “C-” or better in COMP 380/L. Exploration of the use of computers to perform computations normally associated with intelligence. These include game playing, theorem proving, problem solving, question answering and visual perception. Topics include languages, system architectures and heuristic strategies for advanced, high-level computations. Covers computational models for knowledge representation, natural language …

COMP 482. Algorithm Design and Analysis (3)

Prerequisites: Grade of “C-” or better in COMP 282; Grade of “C-” or better in any of COMP 256/L, MATH 320, or MATH 326. The analysis of algorithms, in terms of time and space complexity for best/average/worst case execution using asymptotic notation; the application of standard algorithmic approaches, including greedy, divide and conquer, and dynamic …

COMP 484/L. Web Engineering I and Lab (2/1)

Prerequisites: Grade of “C-” or better in any of COMP 322/L, COMP 380/L, or CIT 360. Corequisite: COMP 484L. Internet infrastructure and the underlying networking technologies. Study of system and software architectures for web applications, e-business and e-commerce systems. Principles of website design. Advances in web-engineering technologies. Principles of web-based based transaction processing. XML and …

COMP 485. Human-Computer Interaction (3)

Prerequisites: Grade of “C-” or better in either COMP 380/L or CIT 360. Examines the information exchange between humans and computer systems. Discusses aspects of input/output devices, software engineering and human factors with respect to human-computer interactions. Topics include text and graphic display; user modeling; program design, debugging, complexity and comprehension; and current research studies …

COMP 488. Advanced Practicum in Information Technology (2-2-2)

Prerequisite: Department consent. This is a practicum designed to extend and enhance the information and concepts within the COMP curriculum. The focus of this course is to provide students with hands-on experience in the design, development, and deployment of IT-based systems. Students will gain practice in the development of web applications deployed at scale, as …

COMP 490/L. Senior Design Project I and Lab (2/1)

Prerequisites: Grade of “C-” or better in COMP 380/L. Corequisite: COMP 490L. Project-oriented course to allow students to apply their knowledge of software engineering to the design and implementation of a system to solve a real-world problem. Students select and specify a suitable problem, investigate design alternatives and select an appropriate one, implement a solution …

COMP 491/L. Senior Design Project II and Lab (2/1)

Prerequisites: Grade of “C-” or better in COMP 490/L. Corequisite: COMP 491L. Project-oriented course to allow students to apply their knowledge of software engineering to complete the implementation and testing of the team-based senior design project they proposed and designed in COMP 490/L. Topics in this course include Agile software development process, software project management …

COMP 492. Projects in Data Science (3)

Prerequisites: Grade of “C-” or better in both COMP 442 and MATH 445. Students will gain practical experience in the field of data science by applying their knowledge of software engineering and statistical data analysis to one or more real datasets. Students select and specify a suitable data analysis problem, investigate questions and hypotheses that …

COMP 494A-C. Academic Internship (1-3)

Prerequisites: Junior standing or above in major; Prior approval of the department. Academic internship training program. Supervised off-campus professional computing experience for selected computer science students. Academic internship units do not count toward General Education units or major requirements. Maximum of 6 units of enrollment is allowed. Only one enrollment per semester permitted. (Credit/No Credit …

COMP 522. Embedded Applications (3)

Prerequisites: COMP 322/L. Embedded systems present cost effective, challenging and flexible computational platforms. Instruction in the unique aspects of embedded systems including architectures, instruction sets, development environments, concurrent programming, networking, applications of embedded platforms, data acquisition from sensors and interaction with surrounding environment.

COMP 528. Mobile Computing (3)

Prerequisites: COMP 322/L or COMP 380/L. Issues related to the design, development, networking, and deployment of mobile computing system for pervasive and mobile applications.

COMP 528L. Mobile Computing Laboratory (1)

Prerequisites: COMP 322/L or COMP 380/L. Issues related to the design, development, networking, and deployment of mobile computing system for pervasive and mobile applications. 3 hours of laboratory per week.

COMP 529/L. Advanced Network Topics and Lab (2/1)

Prerequisites: COMP 429; MATH 340. Corequisite: COMP 529L. Architectural principles: naming, addressing, routing; congestion control, traffic management, QoS; wireless networks; overlay networks and virtualization; queueing theory; measurements; network security; switching and routing; content distribution; and proposals for future Internet structures.

COMP 535/L. Parallel and Distributed Computing and Lab (2/1)

Prerequisites: COMP 282 and COMP 322/L. Corequisite: COMP 535L. A study of the concepts, principles, techniques and applications of parallel and distributed computing. Topics include system architectures, parallel programming patterns, computer cluster architectures, job scheduling and resource management, GPU architecture and programming, virtual machine and virtualization, distributed storage and file systems, cloud computing, with focus …

COMP 539. Network Infrastructure (3)

Prerequisite: COMP 424 or COMP 429. Topics regarding the implementation and administration of network and information infrastructure components will be presented. Issues covered include security administration, packet filtering, proxy services and virus protection. Fundamentals of administering information services such as SMTP, DNS, LDAP and HTTP will be investigated. Internet infrastructure administration and routing protocols such …

COMP 541. Data Mining (3)

Prerequisites: COMP 380/L. A study of the concepts, principles, techniques and applications of data mining. Topics include data preprocessing, the ChiMerge algorithm, data warehousing, OLAP technology, the Apriori algorithm for mining frequent patterns, classification methods (such as decision tree induction, Bayesian classification, neural networks, support vector machines and genetic algorithms), clustering methods (such as k-means …

COMP 542. Machine Learning (3)

Prerequisites: COMP 380/L and MATH 340. A study of the concepts, principles, techniques, and applications of machine learning. Topics include concept-based learning, information-based learning (decision trees and ID3 algorithms), rule-based learning (association rules, learning ordered rules, learning unordered rules, and descriptive rule learning), distance-based learning (nearest neighbor algorithms), probability-based learning (Bayesian classifiers and networks), and …

COMP 560. Expert Systems (3)

Prerequisite: COMP 469. Extensive introduction to the concepts and techniques of expert systems. Rationale for such systems, including evaluation of prospective domains. Explores existing systems, those under development and likely future areas. Basic architecture is demonstrated using both example and rule-based systems. Commercial tools for building expert systems are surveyed and evaluated. Knowledge acquisition methods. …

COMP 565. Advanced Computer Graphics (3)

Prerequisites: COMP 322/L. This course will cover the theory, design, implementation and application of advanced computer graphics environments. Accelerated 3D graphics APIs; the modeling and simulation of light, sound, physical objects, motion and collisions; and user interaction in single- and multi-user virtual environments will be studied. The application domain for this class is interactive 3D …

COMP 582. Software Requirements Analysis and Specification (3)

Prerequisites: COMP 380/L. An in-depth study of the early phases of the software development life cycle commonly called software requirements analysis and specification. Topics include the gathering of both functional and nonfunctional requirements, customer communication, requirements prototyping, requirements modeling, requirements validation, the documentation of requirements in terms of a formal software requirements specification, and the …

COMP 583. Software Engineering Management (3)

Prerequisites: COMP 380/L. Provides a framework for understanding software engineering management models, technologies, trends, tools and planning processes. Emphasizes the development of an individualized approach to managing software teams, projects and systems. The role of management as an increasingly critical factor in software engineering is examined.

COMP 584. Advanced Web Engineering (3)

Prerequisites: COMP 380/L. A study of the concepts, principles, techniques and methods of Web engineering. Topics include requirements engineering, modeling and architectures, design and technologies, testing, operation and maintenance, Web project management, application development process, usability, and performance and security of Web applications. Technologies, business models and strategies and societal issues of Web 2.0 and …

COMP 585. Graphical User Interfaces (3)

Prerequisites: COMP 322/L, COMP 380/L. The design, development and analysis of programs requiring graphical, direct manipulation and user interfaces (GUIs) will be examined. The majority of modern software includes a GUI. The development tools, environments and style guides for common GUIs will be used in course assignments and discussed in lecture. The course involves the …

COMP 586. Object-Oriented Software Development (3)

Prerequisites: COMP 322/L, COMP 380/L. Review of object-oriented concepts. Comparison with functional methods. Benefits and pitfalls of object orientation. Fundamentals of object-oriented modeling—associations, links and states. Survey of object-oriented development methods. In-depth study of a current object-oriented method. Object-oriented software requirements analysis and modeling. Object-oriented preliminary design. Designing concurrent and multiprocessor systems. Object-oriented detailed design. …

COMP 587. Software Verification and Validation (3)

Prerequisites: COMP 380/L. An-in depth study of verification and validation strategies and techniques as they apply to the development of quality software. Topics include test planning and management, testing tools, technical reviews, formal methods and the economics of software testing. The relationship of testing to other quality assurance activities as well as the integration of …

COMP 589. Software Metrics (3)

Prerequisites: COMP 380/L; MATH 340. The role of metrics and quantitative models in software development. Product metrics, process metrics, measurement models and techniques for empirical validation. Measurement and analysis. Implementation of a metrics program. Measuring software size, complexity and functionality at different stages of software development. Use of measures to predict effort and schedule required for …

COMP 595A-Z. Experimental Topics Courses (3)

Course content to be determined.

COMP 598A-Z. Advanced Selected Topics (1-4)

Prerequisite: Instructor consent.

COMP 610. Data Structures and Algorithms (3)

Prerequisites: COMP 310; MATH 482. Topics include design strategies for data structures and algorithms, theoretical limits to space and time requirements time/space trade offs, and open problems in the field.

COMP 615. Advanced Topics in Computation Theory (3)

Prerequisites: COMP 310; MATH 482. Languages and the theory of computation are studied in depth. Covers advanced material concerning regular and context free languages. Study of deterministic context-free languages, context sensitive languages, recursive and recursively enumerable sets. Investigation of current areas of interest.

COMP 620. Computer System Architecture (3)

Prerequisites: COMP 322/L, COMP 380/L. Analysis and evaluation of individual computers, networks of computers and the programs that support their operation and use. Emphasis on comparison of architectures and the risks and benefits associated with various approaches and configurations.

COMP 630. Formal Semantics of Programming Languages (3)

Prerequisites: COMP 310, COMP 380/L. Rigorous verification and formal proofs of correctness. Denotational semantics, models of axiomatic systems and fixpoint theory of computation. Soundness and completeness of programming logics. Abstract data types and other issues in the formal definition of programming languages.

COMP 680. Advanced Topics in Software Engineering (3)

Prerequisites: COMP 322/L, COMP 380/L. New and emerging software engineering technologies and practices covering: principles, concepts, methods, notations, formalisms, techniques, and tools. Study of these technologies and practices from a practical as well as from a theoretical perspective. Explore current problems underlying the development of large software systems and approaches for dealing with them.

COMP 684. Software Architecture and Design (3)

Prerequisites: COMP 380/L, COMP 582. Techniques, methods and tools for designing, building, analyzing and evaluating the structural, architectural and behavioral properties of software systems. It includes the study of the fundamental concepts and principles of software architectural design, structured design, object-oriented design, component-level design and design for reuse.

COMP 695A-Z. Experimental Topics Courses (3)

Course content to be determined.

COMP 696A,C. Directed Graduate Research (1,3)

Prerequisite: Permission of project/thesis committee chair. (Credit/No Credit only)