Computer Programming (COP)
COP 1500 - Intro to Computer Science (3 Credits )
Introducing basic concept of computing: discrete models, computer architecture and organization, operating systems, programming languages, software design and construction, performance evaluation, with a focus on programming.
COP 2001 - Programming Methodology (3 Credits )
Advanced computer programming concepts and problem solving are explored using a procedural programming language and software tools. Topics include pointers, dynamic memory allocation, string handling, structures, file I/O, and recursion. Includes two hours of lecture and one hour of lab per week.
COP 2006 - Programming I (3 Credits )
Introductory computer programming concepts and problem solving skills are learned using a modern programming language. Principles of good programming style are emphasized. This course is delivered in C++/Java unless noted otherwise.
Prerequisite(s): COP 1500
COP 3003 - Programming II (3 Credits )
Students will expand on their knowledge base and skills gained from introductory programming. Topics include, but are not limited to, modularity (classes and packages); object-oriented concepts (e.g., encapsulation, inheritance, and polymorphism); error handling and exceptions; generics/templates; dynamic constructs and memory management encompassing pointer arithmetic, parameter passing, and dereferencing; and reuse of API/frameworks/libraries/packages (e.g., GUI, networking, persistence storage, and web). Relevant programming environments and tools (e.g., build tools), especially in the context of software engineering are also experienced. This course is delivered in C++ unless noted otherwise.
Prerequisite(s): COP 2006
COP 3350 - Systems Admin and Programming (3 Credits )
This class will cover the fundamentals of Unix/Linux operating systems from administration and programming perspectives. Topics include distributions, command-line interface, file systems, process management, basic utilities, shell programming, and networking and security aspects.
Prerequisite(s): COP 2006
COP 3530 - Data Structures & Algorithms (3 Credits )
Data structure design, implementation, application, and analysis are explored. Abstract data types (ADTs) are introduced and uses of interfaces is emphasized. Topics include stacks, queues, linked lists, and trees. Recursion is revisited, the O notation is introduced, and computational complexity of searching and sorting algorithms are explored.
COP 3635 - Systems and Networks (3 Credits )
Covers the study the structure of networks, networking devices, network protocol stacks, congestion and flow control analysis and algorithms, network routing algorithms and protocols, network traffic analysis, client/server and peer-to-peer network programming, security in networks, and distributed systems.
Prerequisite(s): COP 4610
COP 3710 - Intro to Data Engineering (3 Credits )
This course covers database design and applications of database management systems in software development. It includes relational database management systems (RDBMS) and SQL, and how databases are accessed in computer programs. It also covers different data formats, i.e. XML, JSON, etc. This course will also introduce to students the application of NoSQL systems. It will explore topics related to data analysis.
Prerequisite(s): COP 3530
COP 4020 - Principles of Programming Lang (3 Credits )
This course covers programming language theory and practice, including language design and implementation, theoretical foundations, language translators and interpreters, and exposure to a variety of programming paradigms.
COP 4610 - Operating Systems (3 Credits )
Covers the key concepts, mechanisms, and structure that underlie operating systems. The fundamental components of operating systems including process management, thread management, memory management, scheduling, file and storage management, and I/O device management are explored. Contemporary design issues and current directions in development of operating systems are discussed. Examples of several prominent operating system implementations are introduced.
COP 4908 - Independent Study (3 Credits )
Reading, problem solving, project development, simulation, laboratory investigation, field work, or a combination of these activities is done under the supervision of a faculty member. Course may be repeated with different content. (Instructor consent required)
COP 4931 - Special Topics in Comp. Sci. (3 Credits )
A contemporary subject in the field of computer science is explored.
COP 4951 - Senior Comp Sci Project I (3 Credits )
This is the first course in a sequence of two courses that are based on team projects supervised by external mentors. In this course students will learn and demonstrate working in teams that includes a mentor from an external entity, efficient communication, software design methodology, performing project feasibility study, and creating proposals, presentations and other reports. In addition, the course will touch on aspects of intellectual property, professional ethics, and social impact.
COP 4952 - Senior Comp Sci Project II (3 Credits )
This is the second course in a year-long sequence of a senior computer science project. Students are expected to continue their project from the first project course, i.e., Senior Computer Science Project I. students will learn and demonstrate project implement, debugging, documentation, and testing. Final report and presentation are among the deliverables.
Prerequisite(s): COP 4951
COP 5611 - Advanced Operating Systems (3 Credits )
The course is centered around advanced topics related to operating systems. Including the design and implementation of distributed operating systems, multiprocessor operating systems and database operating systems.
COP 5621 - Compiler Construction (3 Credits )
Introduction to compiling, elements of language theory, syntax-directed translation, lexical analysis, symbol tables, lr(k) parsing, intermediate code generation, code optimization, code generation, error detection and recovery. There are also a number of significant programming projects in this course.