COP: Computer Programming Courses

College:Hal Marcus College of Science and Engineering

Courses

COP 1000   Introduction to Programming

3 sh (may not be repeated for credit)

Introduction to algorithms and basic programming. Topics include variables, control and looping constructs, parameter passing. Emphasizes developing fundamental programming skills and software engineering principles to solve problems in a secure and robust manner.

COP 2253   Programming Using Java

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++

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

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

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

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

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

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

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

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 3905   Directed Study

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

COP 4020   Programming Languages

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

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 4331   Object Oriented Programming

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

Exploration of the fundamental ideas behind object-oriented programming, including encapsulation, inheritance, and polymorphis. Applications will focus on extracting objects from a problem domain, designing problem solutions based on message-passing between objects, and documenting object-oriented design. Implementations will be done in a current object-oriented language.

COP 4365C   Advanced Topics in C# Programming

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

This course covers advanced concepts and applications of C# programming. Topics covered will include: event-driven programming, user interfaces, inheritance, exception handling and input/output, data structures, threads and animation, networking, interfacing with databases, ASP.NET. Prerequisites: (COP 2253 or COP 2334) and COP 4710 (minimum grade C-).

COP 4534   Data Structures and Algorithms II

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

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

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

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 is covered.

COP 4635   Systems & Networks II

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

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

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

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

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

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

COP 5007   Software Engineering Foundations: Java Programming

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 5518   CS Foundations: Operating Systems and Networks

3 sh (may not be repeated for credit)

This course reviews fundamental principles of modern 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.

COP 5725   Database Systems

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

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.

COP 5775   Database Administration

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

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

COP 6025   Advanced Programming Languages

3 sh (may not be repeated for credit)

Theory and practice of programming language design. Topics include: advanced language constructs, an overview of parallel programming, formal specification of programming languages, the analysis/synthesis model of program translation, code optimization, and compiler construction tools. Students will design and implement a small programming language. Knowledge of COP4020 or COT4420 is necessary for success in this course.

COP 6727   Advanced Database Systems

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

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