COP: Computer Programming Courses

Courses

COP 2253   Programming Using Java

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)

Introduction to algorithms and object-oriented programming. Topics include control constructs, looping constructs, parameter passing, and arrays. Emphasizes developing fundamental programming skills and software engineering principles in the context of an object-oriented language to solve complex problems in a secure and robust manner.

COP 2334   Programming Using C++

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)

Introduction to computers and algorithms. Programming in a high level language. Topics include structured programming techniques, procedural and data abstraction. Students will learn the fundamentals of developing coherent, expressive programs.

COP 2830   Script Programming

College of Sci and Engineering, Department of Department of Information Tech

3 sh (may not be repeated for credit)

Introduction to the essential skills of programming with scripting. Topics include use and manipulation of variable, design and validation of forms, and writing scripts for systems calls and command line arguments.

COP 3014   Algorithm and Program Design

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)

An introduction to advanced computational and problem solving techniques. Emphasis on the use of basic programming constructs to create correct, efficient algorithms. Secondary focus on the basic structure and decomposition of programs. This course will include several laboratory projects.

COP 3022   Intermediate Computer Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 2334 OR COP 2253

An intermediate course in object-oriented programming. Topics include object-oriented modeling, algorithms, inheritance, polymorphism, input/output. Emphasis will be on issues of object-oriented design and good programming practices. Students entering this course are expected to have a solid knowledge of programming in the object-oriented paradigm. The focus will be on developing skills in program design as a necessary prerequisite to effective implementation.

COP 3530   Data Structures and Algorithms I

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3014

A first course in Data Structures and Algorithms. Topics will include traditional data structures with a major focus on design and analysis of algorithms and will include projects that stress mathematics and science.

COP 3665   Mobile Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3022

Concepts and skills related to programming mobile devices, with specific emphasis on at least one modern mobile programming language or framework.

COP 3813   Server-Side Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 2334 OR COP 2253 OR COP 3014

A course in principles of server-side technologies that form the core of classical three-tier applications. This course provides a solid foundation for the concepts of server-side programming, using a current server-side programming/scripting language.

COP 3826   User Interface Programming

College of Sci and Engineering, Department of Department of Information Tech

3 sh (may not be repeated for credit)
Prerequisite: COP 2830

This course is directed towards undergraduate students pursuing a bachelors degree in Information Technology. This course provides students with skills to design, build and test user interfaces suitable for multiple platforms including the web, mobile devices etc. Students will also be able to design interactive systems incorporating principles of universal design. Credit cannot be earned in both COP 3826 and CGS 3464.

COP 3905   Directed Study

College of Sci and Engineering, Department of Computer Science

1-12 sh (may be repeated indefinitely for credit)

COP 4020   Programming Languages

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3530 AND COP 4027

Programming language theory and practice, including language design and implementation, theoretical foundations, language translation, and exposure to a variety of programming paradigms.

COP 4027   Advanced Computer Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3022

Addresses advanced topics in computer programming including advanced tools and IDEs, user interface design and implementation, user validation, network programming, data communication, enterprise programming principles, multi-tier systems, and concurrent programming. Emphasis will be developing skills in program design as necessary prerequisite to effective implementation.

COP 4534   Data Structures and Algorithms II

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3530 AND COT 3100*

A second course in Data Structures and Algorithms. Topics include mathematical properties of algorithms (complexity, correctness), heaps, height-balanced trees, graphs, greedy algorithms, dynamic programming, and proof techniques pertaining to computational complexity. Emphasis on issues of correctness and efficiency. Students entering this course are expected to have a solid knowledge of programming.

COP 4610   Theory and Fundamentals of Operating Systems

College of Sci and Engineering, Department of Cybersecurity

3 sh (may not be repeated for credit)
Prerequisite: CDA 3101

A functional systematic examination of the key components and theories of a modern operating system, including process, thread management, synchronization, I/O, and memory management. Emphasizes using several modern operating systems and writing programming scripts to manipulate these operating systems.

COP 4634   Systems & Networks I

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: (CDA 3101 OR EEL 3701) AND (COP 3530) AND (COT 3100)

This course reviews fundamental principles of modern operating systems and relates them to computer programming. Students learn about the design of various components of operating systems and the services they provide to end-users and application developers. The role of security in operating systems and their relation to computer networks are also covered.

COP 4635   Systems & Networks II

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: (STA 4321 OR EGS 3441) AND ((COP 4534* AND COP 4634))

This course is a continuation of topics discussed in System & Networks I, focusing on fundamental principles of modern computer networks and network programming. The course will study the structure of networks, networking devices, network protocol stacks, congestion and flow control analysis and algorithms, network routing algorithms and protocols, and network traffic analysis. The course also covers client/server and peer-to-peer network programming and the role of security in networks.

COP 4710   Database Systems

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 2334 OR COP 2253 OR COP 2830

Introduction to database systems and database management system architectures. Various database models are discussed with an emphasis on the relational model and relational database design. Case applications using fourth-generation languages, such as SQL, are included. Offered concurrently with COP 5725; graduate students will be assigned additional work.

COP 4723   Database Administration

College of Sci and Engineering, Department of Department of Information Tech

3 sh (may not be repeated for credit)
Prerequisite: COP 4710

Database administration skills covering installation, configuration and tuning a database, administering servers and server groups, managing and optimizing schemes, tables, indexes, and views, creating logins, configuring permissions, assigning roles and performing other essential security tasks, backup and recovery strategies, automation and maintenance.

COP 4856   Distributed Software Architecture

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3022 AND COP 4710

Software aspects of distributed architecture, with emphasis on database integration and interoperability of distributed components.

COP 4864   Client-Side Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 3813

A course in principles of client-side technologies that form the complement of server-side applications. This course provides a solid foundation for the concepts of client-side programming and an introduction into client-side frameworks.

COP 4905   Directed Study

College of Sci and Engineering, Department of Computer Science

1-12 sh (may be repeated indefinitely for credit)

COP 5007   Foundations: Programming Essentials

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)

A course in the Accelerated Software Engineering Foundations Series in which students will gain a comprehensive understanding of principles/concepts of Java programming and how to apply those principles/concepts in conjunction with principles of software engineering to design and develop object- oriented software systems. Students taking this course should have an understanding of programming language fundamentals including variables, constants, selection, iteration, arrays, and functions or methods.

COP 5417   Foundations: Data Structure & Algorithms Essentials

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5007

A comprehensive overview of the most commonly used data structures including arrays, linked lists, trees, graphs, hash tables, and heaps. A survey of common algorithms including those that are used with the data structures as well as sorting, searching, divide-and-conquer, greedy algorithms and dynamic programming. Students taking this course should have a good understanding of programming language fundamentals including variables, constants, selection, iteration, arrays, file I/O and functions. This course may require completion of graduate foundations courses in computer programming or the equivalent undergraduate coursework if a student has insufficient academic or professional experience in the discipline.

COP 5518   Foundations: Computing Essentials

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5007

This course reviews fundamental principles of modern computer architectures, operating systems and computer networks and relates them to computer programming. The course covers topics such as the design of various components of operating systems and services they provide to users and application developers, network structures & devices, network protocol stacks, network performance metrics, network routing algorithms, and network traffic analysis. The role of security in systems and networks will also be covered. This course may require completion of graduate foundations courses in computer programming or the equivalent undergraduate coursework if a student has insufficient academic or professional experience in the discipline.

COP 5519   Programming for Information Technology

College of Sci and Engineering, Department of Department of Information Tech

3 sh (may be repeated for up to 3 sh of credit)

Programming for IT focuses on using scripting languages to interact with the terminal and using libraries, dictionaries, user defined functions and automation technologies to ensure that IT systems are working effectively, efficiently and in a secured environment.

COP 5522   Parallel and Distributed Programming

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5518

A comprehensive overview of parallel programming using MPI and OpenMP. A survey of common parallel architectures, communication primitives, applications of those primitives to design of efficient parallel algorithms, definition of models and metrics to evaluate the effectiveness of parallel algorithms theoretically and empirically, and introduction to cloud computing. Students taking this course should have a good understanding of undergraduate level data structures and algorithms, and mastery of undergraduate level programming in a Unix environment.

COP 5725   Database Systems

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)

Introduction to database systems and database management system architectures. Various database models are discussed with emphasis on the relational model and relational database design. Case applications using fourth-generation languages, such as SQL are included. This course requires completion of graduate foundations courses in computer programming or the equivalent undergraduate coursework.

COP 5775   Database Administration

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5725

Database administration skills covering installation, configuration and tuning a database, administering servers and server groups, managing and optimizing schemas, tables, indexes, and views, creating logins, configuring permissions, assigning roles and performing other essential security tasks, backup and recovery strategies, automation and maintenance.

COP 5905   Directed Study

College of Sci and Engineering, Department of Computer Science

1-12 sh (may be repeated indefinitely for credit)

COP 6416   Advanced Algorithms

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5417

A comprehensive overview of the most commonly used approaches for approximate solution of NP-Hard problems, including linear programming, dynamic programming, and greedy algorithms. A survey of common algorithms including cache-aware algorithms, randomized algorithms, network flow algorithms, and online algorithms. This course will take an "experimental algorithms" approach to educating students on augmenting theoretical results with empirical methods for the design of algorithms that are effective in practice. Students taking this course should have a good understanding of undergraduate-level data structures and algorithms, competence in programming, and the ability to write formal proofs.

COP 6727   Advanced Database Systems

College of Sci and Engineering, Department of Computer Science

3 sh (may not be repeated for credit)
Prerequisite: COP 5725

Advanced topics in database management systems will be covered, for example, further dependencies and higher normal forms, transaction processing, concurrency control, backup and recovery, indexing, replication, managing large databases, and contemporary issues and topics in databases.

COP 6905   Directed Study

College of Sci and Engineering, Department of Computer Science

1-12 sh (may be repeated indefinitely for credit)