COMP 1314 Computer Literacy and Applications
Cr. 3. (3-0). This course examines the role of computers in today’s society, including the knowledge and ability to efficiently utilize computers, related technology, and basic application software with an emphasis on basic operating system knowledge, office applications, and the use of the Internet. Applications include word processing, spreadsheets, and presentation software
Prerequisite: None
COMP 1411 Introduction to CS I
Cr. 4. (3-2). This course introduces fundamental concepts of structured procedural programming, data types, control structures, algorithm development; program design, and implementation using Python programming language; and software development tools. It includes a lab component.
Prerequisite: None
COMP 1412 Introduction to CS II
Cr. 4. (3-2). This course reviews structured programming and data types. It then introduces the object-oriented programming paradigm using JAVA programming language, focusing on the definition and use of classes, along with the fundamentals of object-oriented design. It includes a lab component.
Prerequisite: COMP 1411
COMP 2313 Data Structures
Cr. 3. (3-0). This course introduces the fundamental concepts of data structures and algorithms. Topics include fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), sorting, searching, and recursion.
Prerequisite: COMP 1412
COMP 2316 Computer Organization
Cr. 3. (3-0). This course covers basic computer organization including the CPU, memory, and peripherals; digital representation of data and instructions; and assembly language programming, assembler, loader, macros, subroutines, and program linkages.
Prerequisite: COMP 1411
COMP 2415 Systems Programming
Cr. 4. (3-2). This course examines interaction with a multi-user, multi-tasking operating system (e.g. Unix, Linux) via systems programs. Topics include the details of the file system and I/O, multi-tasking, inter-process communication, process control, and shell scripting. It includes a lab component.
Prerequisite: COMP 1411
COMP 3317 Algorithms
Cr. 3. (3-0). This course focuses on the design and analysis of algorithms; heuristics; advanced tree structures; advanced hashing techniques; advanced sorting and searching; graphs and sets; NP-Completeness; and time and space complexities.
Prerequisite: COMP 2313, MATH 1312, and MATH 2317
COMP 3318 Operating Systems
Cr. 3. (3-0). This course focuses on operating system structure and design techniques; process management, CPU and disk scheduling; process synchronization, concurrency, and memory and file management, device management, virtual memory; mass storage and I/O systems; and OS security.
Prerequisite: COMP 1314, COMP 2316
COMP 3320 Programming Languages
Cr. 3. (3-0). This course is designed to supplement coursework in Computer Science. It helps students apply their knowledge to real-world problems in professional settings. Students recognize the need for continuous learning and experience the challenges of the workplace environment.
Prerequisite: COMP 2313
COMP 3321 Database Systems
Cr. 3. (3-0). This course teaches the fundamentals of database systems, including relational and other data models, database design, data description, and query languages, file organization, index structures, database integrity and security, access control, interfacing with database systems, transaction programming, and design and implementation of database applications.
Prerequisite: None
COMP 3322 Software Engineering
Cr. 3. (3-0). This course introduces basic concepts of software engineering, including software requirement analysis, design representation, programming methodologies, verification, validation, maintenance, and software planning.
Prerequisite: COMP 1412
COMP 3324 Computer Networks
Cr. 3. (3-0). This course introduces the fundamental concepts and principles of modern computer networks with an emphasis on protocols, architectures, and implementation issues of application, transport, network, data link, and physical layers.
Prerequisite: None
COMP 3325 Computer & Network Security
Cr. 3. (3-0). This course teaches the fundamentals of computer and network security, including cryptography, authentication, and authorization; attack types, detection and defense techniques at the OS and network level; security in modern operating systems and virtual machines.
Prerequisite: COMP 3324
COMP 3326 Web Application Development
Cr. 3. (3-0). This course covers the fundamentals of Web Application development: markup languages, layout design, client and server-side programming using HTML, XHTML, XML, Ajax, JavaScript, DHTML; database, and Web integration.
Prerequisite: COMP 1412 and COMP 3322
COMP 4331 Cloud Computing
Cr. 3. (3-0). This course is a tour of various topics and technologies related to Cloud Computing. Topics include distributed system models and enabling technologies, computer clusters for scalable Computing, virtual machines, and virtualization of clusters and data centers, design of cloud computing platforms, cloud programming and software environments, grid computing and resource management, P2P computing with overlay networks, ubiquitous computing with clouds and the Internet of things, and data-intensive distributed computing.
Prerequisite: COMP 3324
COMP 4339 Software Analysis and Design
Cr. 3. (3-0). This course introduces established and evolving methodologies for the analysis, design, and development of an information system. Emphasis is placed on system characteristics, managing projects, prototyping, CASE/OOM tools, and systems development life cycle phases. Upon completion, students should be able to analyze a problem and design an appropriate solution using a combination of tools and techniques.
Prerequisite: COMP 3322
COMP 4342 Advanced Web Application Development
Cr. 3. (3-0). This course emphasizes the server-side development of enterprise applications. Topics include web servers, distributed network-based computing, handling client requests, server-side services, transmitting data using HTTP, database connectivity, security, and e-commerce. Programming languages and tools will be among the most significant such as Java, servlets, JavaServer Pages, Active Server Pages, .NET, XML, among others.
Prerequisite: COMP 3326
COMP 4351 Network Administration
Cr. 3. (3-0). This course focuses on the administration of networked operating systems such as Windows Server and Linux. It includes monitoring, managing, and troubleshooting network resources such as files, folder access, printing devices, device drivers, backup devices, recovery as well as protocols and system services.
Prerequisite: COMP 3324
COMP 4352 Internetworking Technology
Cr. 3. (3-0). This course shows students how to plan and design a network using various internetworking technologies to meet performance, security, capacity, and scalability requirements. This includes the fundamental, technical, and design issues associated with campus LANs.
Prerequisite: COMP 3324
COMP 4353 Data Mining
Cr. 3. (3-0). This course introduces fundamental topics of data mining and knowledge discovery, including statistical foundations, database support, data preprocessing, data warehousing, association discovery, classification, clustering, and mining complex data types.
Prerequisite: COMP 3321
COMP 4353 Data Mining
Cr. 3. (3-0). This course focuses on the first-line management of software system development. It covers major themes, including estimation (software cost factors, estimation models, and risk management), planning (work breakdown, scheduling, staffing, resource allocation, and creation of a project plan), and execution (team building, leadership, motivation, process tracking, control recovery, and communication within and outside the project).
Prerequisite: COMP 3322
COMP 5322 Advanced Software Engineering
Cr. 3. (3-0). This course introduces the fundamental software engineering techniques for developing correct, efficient, reliable, maintainable, and evolvable software for a large project. In the highly dynamic and competitive software industry, the customers’ needs may sometimes be difficult to understand in advance or may change while the software is being developed. Therefore, software products may need to evolve iteratively instead of being designed completely in advance.
Prerequisite: COMP 3322