You are here

2017-2018 Academic Catalog: Course Descriptions - Computer Science

COMP 1000 COMPUTER SCIENCE I
An introductory course covering the fundamental concepts and skills of programming in a high-level language. Emphasis is placed on problem solving, algorithm development, program design and structure, code documentation and style, and testing and debugging. Topics include hardware and software systems, data types and variables, device/file input and output, flow control and functions, use of basic data structures, as well as principles and applications of object-oriented programming. (4 credits) fall, spring

COMP 1050 COMPUTER SCIENCE II
This course is an advanced introduction to computer science. It focuses on object-oriented programming. Topics include abstraction and encapsulation, classes and methods, objects and references, overloading, inheritance, polymorphism, interfaces, console/file input/output, dynamic data structures, generics, and GUI applications. (4 credits) fall, spring
Prerequisite: COMP1000 or ELEC3150

COMP 1070 COMPUTER SCIENCE I
An introductory course in computerized problem solving using a structured programming language, such as C++ or Java. Topics include functions, selection structure, loops, data types, and arrays. (4 credits) fall, spring
Corequisite: MATH1750 or MATH1775

COMP 1071 COMPUTER SCIENCE II
A continuation of COMP1070, Computer Science I. Topics include strings, structs, arrays, and linked lists, as well as text and binary files, recursion and dynamic allocation. (4 credits) fall, spring
Prerequisite: COMP1070

COMP 1099 COMPUTER SCIENCE I WITH C
This course is an introduction to problem-solving and program design using the C language. Student understanding is enhanced by solving practical engineering and technical problems. Topics include: formatted and character I/O, selection and iteration control statements, logical operations for Boolean expressions, pointers and arrays, functions and bitwise operators. (4 credits) 
Prerequisite: MATH1005 or
Corequisite: MATH1000

COMP 1100 INTRODUCTION TO NETWORKS
This course provides an introduction to networking and computing systems including operating systems, technical aspects of the Internet and internetworking. (4 credits) fall, spring

COMP 1150 ROUTING AND SWITCHING
This course introduces the students to routing, packet forwarding, and switching technologies. Both static routing and dynamic routing protocols are covered as well as basic switching concepts. Students will learn how to configure industry standard networking equipment. (4 credits) fall, spring
Prerequisite: COMP1100 or COMP1170 or COMP2100

COMP 1170 INTRODUCTION TO NETWORKS AND SYSTEMS
This course provides and introduction to networking and computing systems including operating systems, technical aspects of the Internet and internetworking. (4 credits) fall, spring

COMP 1171 ROUTING AND SWITCHING
This course introduces students to routing, packet forwarding, and switching technologies. Included are static and dynamic routing protocols, basic switching concepts, design implementation, and configuration. (4 credits) spring
Prerequisite: COMP1170

COMP 1200 COMPUTER ORGANIZATION
This course covers binary number and codes, logic elements, combinational and sequential logic, architectural design of a computer using these elements, and introduces concepts such as process and memory management. (4 credits) fall, spring
Prerequisite: COMP1000 or COMP1070
Corequisite: MATH2300

COMP 2000 DATA STRUCTURES
This course is an introduction to the analysis and implementation of data structures. Topics include bags, sets, lists, queues, trees, maps, recursion, sorting and searching. (4 credits) fall, spring
Prerequisite: COMP1050 and MATH2300

COMP 2070 OBJECT ORIENTED PROGRAMMING IN JAVA
This course is an introduction to object-oriented programming and design. Topics include: abstraction and encapsulation, classes and objects, overloading operators and friend functions, inheritance, templates, iostream, fstream, dynamic allocation, pointer arrays, polymorphism, stacks, linked lists, and recursion. (4 credits) fall, spring
Prerequisite: COMP1071

COMP 2071 DATA STRUCTURES
This course is an introduction to data structures using inheritance and template classes. Topics include: queues, sorted linked lists, binary search trees, B+ trees, balanced, trees, timing of sort and search algorithms, hash searching and indexed files, directed graphs and Dijkstra's weighted path algorithm, acyclic graphs, topological sorting, and critical path analysis. (4 credits) fall, spring, summer
Prerequisite: COMP 2070

COMP 2100 NETWORK PROGRAMMING
This course provides an overview of how modern systems communicate over the Internet. An emphasis is placed on application programming interfaces common to all forms of network programming. Students will gain practical experience with several operating systems and network protocols relevant to computing. (4 credits) fall, spring
Prerequisite: COMP1050

COMP 2150 NETWORK ADMINISTRATION
Modern enterprise and business systems rely on a stable network and server infrastructure to function. This includes many network protocols and services that are required in any network operations environment. Students in this course will configure and manage these critical services in their own virtualized environment following best practices and standards from the operations community. (4 credits) spring
Prerequisite: COMP1150

COMP 2160 WIRELESS NETWORKS
This course will give an introduction to the state of the art wireless and mobile networks. This course will cover the fundamental principles, architectures, and standards of modern wireless communication systems, including their applications and uses. (4 credits) spring
Prerequisite: COMP1100 or COMP2100

COMP 2270 COMPUTER ARCHITECTURE
This course covers binary number and codes, logic elements, combinational and sequential logic, and architectural design of a computer using these elements. (4 credits) fall, spring
Prerequisite: COMP1071

COMP 2350 ALGORITHMS
This course introduces algorithmic design and analysis: students assess the complexity of algorithms in terms of time and space requirements for large input sizes. Topics include searching, sorting, pattern matching, hashing and encryption. (4 credits) fall, spring
Prerequisite: COMP1050 and MATH2300

COMP 2471 UNIX SYSTEM ADMINISTRATION
Covers basic skills needed to administer a Unix system including file organization, backup, recovery, account maintenance, network design, administration, device control, security, and system monitoring. (4 credits) spring
Prerequisite: COMP1170

COMP 2499 SYSTEMS ANALYSIS & BUSINESS APPLICATIONS
This course covers the principle analysis, design and implementation methodologies, and tools to develop business applications using the system development life cycle (SDLC). Students will gain experience in the analysis, design, and development of business applications via a series of case studies. (4 credits) 

COMP 2500 SECURITY PRINCIPLES
The course introduces computer and network security concepts and techniques. Theoretical concepts of security are examined as well as implementing system and network security. (4 credits) fall
Prerequisites: COMP1100 or COMP2100

COMP 2650 DATABASES
Concepts and methods for the design, creation, querying, and management of relational database management systems. Covers modeling the conceptual and logical organization of databases, including the entity-relationship model; the relational data model and SQL; as well as functional dependencies and normal forms. Students will further strengthen their database skills by developing a substantial project with a team. (4 credits) fall, spring
Prerequisite: COMP1050; MATH2300 or MATH2800

COMP 2670 DATABASE MANAGEMENT SYSTEMS
An introduction to the use of database management systems. Covers hierarchical networks and relational systems, and techniques for designing, creating, accessing and maintaining databases. (4 credits) fall, spring
Prerequisite: COMP1070

COMP 2990 INDEPENDENT STUDY BCOS BSCN
This course investigates a topic of special interest to faculty and students that is outside regular course offerings. (1-4 credits)
Prerequisite: Consent of department chair and instructor

COMP 3070 ASSEMBLY LANGUAGE
An introduction to assembly language, including data representation, data storage, arithmetic, control flow, stacks and procedures, integer and character I/O, and encryption. (4 credits)
Prerequisite: COMP2070

COMP 3071 INTRODUCTION TO PROGRAMMING LANGUAGES
An introduction to Programming Language Concepts including context-free grammars, parse trees, syntax diagrams, symbol tables, data types, control structure, and language translators. (4 credits) summer
Prerequisite: COMP2070

COMP 3100 SYSTEM ADMINISTRATION
System administration is the practice of installing, configuring, and maintaining a computing system. This course provides students an overview of these and related concepts as well as the skills required to become an entry-level system administrator. In particular, topics covered include file systems, process control, access control, account management, software management, and scripting.  (4 credits) fall
Prerequisite: COMP1000; COMP1100 or COMP2100

COMP 3170 NETWORK ADMINISTRATION
Prepares the student for managing a network and servers. It covers planning, installation and configuration, as well as monitoring, troubleshooting and optimizing. (4 credits) spring
Prerequisite: COMP1170

COMP 3171 802.11 WIRELESS NETWORKS
This course covers the fundamental principles, architectures and standards of modern wireless communication systems, including their applications and uses. The topics of radio communications, spread spectrum, OFDM, CDMA, antenna, security, vulnerabilities, and network planning and deployment issues will be discussed. (4 credits) 
Prerequisite: COMP1170

COMP 3200 ASSEMBLY LANGUAGE
An advanced course in assembly language, including data representation, data storage, arithmetic, control flow, stacks and procedures, integer and character I/O, encryption, and applications to embedded computing. (4 credits) 
Prerequisite: COMP1200, COMP2000 and COMP2350

COMP 3350 PROGRAMMING LANGUAGES
An introduction to programming language concepts, including language evaluation criteria, context-free grammars, parse trees, syntax diagrams, symbol tables, data types, control structure, and language translators. (4 credits) summer
Prerequisite: COMP2000 and COMP2350

COMP 3370 ALGORITHM DESIGN & ANALYSIS
Students analyze the complexity of computer algorithms in terms of time and space requirements for large input sizes. Includes searching, sorting, pattern matching, hashing and encryption. (4 credits) summer
Prerequisite: COMP2070

COMP 3400 OPERATING SYSTEMS
In this comprehensive course, we will study the basic facilities provided by the Operating System. Students will cover the functions of operating systems, including process management (processes, threads, context switch, concurrency control, synchronization, scheduling, deadlocks, etc.), primary memory management, virtual memory management, file systems, resource allocation, and information protection. (4 credits) fall
Prerequisite: COMP2000 and COMP2350

COMP 3450 PARALLEL AND DISTRIBUTED COMPUTING
This course covers topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and applications of parallel and distributed computing. (4 credits) summer
Prerequisite: COMP2000 and COMP2350 and COMP2100

COMP 3470 ADVANCED SYSTEM ADMINISTRATION
A course covering advanced systems and network administration including scripting, multi-OS environments, remote booting and installations, monitoring, and other related topics. (4 credits) 
Prerequisite: COMP1170

COMP 3475 OPERATING SYSTEMS
Covers the functions and organization of operating systems including: process management, input/output systems, memory management, resource allocation, data management, and information protection. (4 credits) summer
Prerequisites: COMP2071 and COMP2270

COMP 3499 OPERATING SYSTEMS FOR ENGINEERS
This course covers the functions and organization of operating systems, including process management, input/output systems, memory management, resource allocation, data management, and information protection. (4 credits) spring
Prerequisite: COMP1099 or ELEC2850

COMP 3500 NETWORK SECURITY
This course covers all aspects of securing and protecting a local area network from threats and vulnerabilities. Students will configure, test, and validate standard network services and devices at all layers of the network. (4 credits) fall
Prerequisite: COMP2150 and COMP2500

COMP 3570 INTRODUCTION TO COMPUTER NETWORK SECURITY
The course introduces computer and network security concepts and techniques. Theoretical concepts of security are examined as well as implementing system and network security. (4 credits) summer

COMP 3571 CRYPTOGRAPHY & NETWORK SECURITY
This course covers the basic issues and principles of cryptography, system and network security. This course covers: (a) mathematical background principles of number theory, prime numbers and modular arithmetic; (b) system and network security protocols, techniques and architectures. The primary focus of the course is asymmetric encryption, key management, hash functions, digital signatures, and certificates. (4 credits) 
Prerequisite: COMP2070

COMP 3572 SECURE INFORMATION TECHNOLOGY MANAGEMENT
Examines how to run an IT organization. Includes study of organizational and staffing issues, satisfying user needs, planning and budgeting, system maintenance, system security, physical security, and upgrades. (4 credits) fall
Prerequisite: COMP2070

COMP 3660 MOBILE APP DEVELOPMENT
This course is an introduction to mobile application development. It focuses on the creation of software systems for mobile devices. Topics include: platform introduction, environment setup, version control system, system prototyping, project structure and resources, application lifecycle, UI components, system services, sensors, security and permissions, data storage, testing and debugging, and application deployment. (4 credits)
Prerequisite: COMP1050

COMP 3670 WORLD WIDE WEB APPLICATION DEVELOPMENT
In-depth project-oriented work in WWW development including page organization, frames, interactive databases, graphics, security, client and server side scripting to create robust, effective websites. (4 credits) spring
Prerequisite: COMP2070

COMP 3671 DATABASE APPLICATIONS
This course covers the design and implementation of databases for several database applications using a database management system. (4 credits) 
Prerequisite: COMP2070

COMP 3672 INTRODUCTION TO BIOINFORMATICS
This course introduces software tools used in biology for gene sequencing, pattern matching, etc. Tools may include database, data mining, statistical analysis, algorithms and visualization. (4 credits) 
Prerequisite: COMP2070

COMP 3750 INTRODUCTION TO BIOSTATISTICS
This course covers practical applications of descriptive and inferential statistics with an emphasis on principles and methods of summarizing biological data using statistical software package. (4 credits) summer
Prerequisites: COMP1000 and MATH2100

COMP 3800 SPECIAL TOPICS BCOS BSCN
Presents topics that are not covered by existing courses and are likely to change from semester to semester. Refer to the Class Schedule for a specific semester for details of offerings for the semester. (4 credits) 

COMP 3999 INFORMATION SYSTEMS PROJECT MANAGEMENT
This course provides students with a detailed understanding in the implementation of the Systems Development Life Cycle (SDLC) and the methodologies to manage information systems projects. (4 credits) fall
Prerequisite: COMP2070

COMP 4050 MACHINE LEARNING
Introduction to the field of machine learning. This course focuses on algorithms to help identify patterns in data and predict or generalize rules from these patterns. Topics include supervised learning (parametric/non-parametric algorithms, kernels, support vector machines), model selection, and applications (such as speech and handwriting recognition, medical imaging, and drug discovery). Students who have basic programming skills and who have taken a course in probability are encouraged to take this course. (4 credits) 
Prerequisite: MATH2100 and COMP1000

COMP 4150 ADVANCED SYSTEM ADMINISTRATION
Advanced System Administration is a follow-on course to System Administration that dives deeper into system and network environments found in modern enterprises. Students will build fully functional virtual networks, configure shared storage, deploy network account systems, utilize configuration management tools, monitor system health, and set up a variety of standard applications. Scripting is used throughout the course to solve problems and automate common tasks.  (4 credits) 
Prerequisite:COMP3100

COMP 4450 SYSTEMS PROGRAMMING
Systems programming involves writing software that is intended to interact with the Operating System rather than with the user directly. This course covers UNIX/Linux systems programming including system calls, file I/O, memory management, processes, threading, and other related topics. Students will rewrite fundamental parts of the UNIX/Linux user space.  (4 credits) 
Prerequisite: COMP3400

COMP 4460 COMPILERS
This course covers the principles and techniques used in the design of compilers. Compilers are the programs that translate code written in higher level languages into executable code. Topics include lexical and semantic analysis, transition, code generation and optimization. (4 credits) 
Prerequisite: COMP3350

COMP 4499 INTRODUCTION TO OPERATING SYSTEMS
Covers the functions of operating systems, including process management, primary memory management, virtual memory management, and file systems. (3 credits) spring
Prerequisite: COMP2070 or ELEC3000

COMP 4650 WEB DEVELOPMENT
In-depth project-oriented work in modern web development including page organization, interactive databases, responsive design, security, and client and server side scripting. Students will create robust, effective, and secure web applications. (4 credits) spring
Prerequisite: COMP2650

COMP 4672 BIOINFORMATICS ALGORITHMS
Proven computer science approaches such as divide and conquer and dynamic programming are applied to algorithmic problems faced by biologists particularly in the area of genetics. (4 credits) 
Prerequisites: COMP1070 or COMP1099 or COMP 2070; and MATH1750 or MATH1775 or MATH2850 or MATH2860

COMP 4700 ARTIFICIAL INTELLIGENCE
This course introduces the philosophical foundations of the underlying techniques involved with the design and implementation of intelligent computer systems. Topics include problem-solving via search, knowledge representation, reasoning in deterministic and stochastic tasks, as well as learning. (4 credits) 
Prerequisites: COMP2000, COMP2350, MATH2100 and MATH2860

COMP 4871 SEMINAR IN COMPUTER NETWORKING
This course examines current topics (determined by the instructor) in computer and network information systems. Students will make presentations and write a term paper. (4 credits) summer
Prerequisite: Senior status

COMP 4950 PROJECT MANAGEMENT
This course provides students with a detailed understanding of the Systems Development Life Cycle (SDLC) and the methodologies to manage computing, networking, and security projects. (4 credits) spring
Prerequisite: COMP2650

COMP 4970 SOFTWARE ENGINEERING
This course presents a formal approach to state-of-the-art techniques in software design and development. Students work in teams on an externally collaborative software projects. (4 credits) spring
Prerequisite: COMP2000, COMP2350 and COMP2650

COMP 5500 SENIOR PROJECT
This course provides the opportunity for students to participate in design and implementation of solutions to large project in a team-based environment. Projects will in general be interdisciplinary in nature.  Students will be required to provide written documentation and give oral presentations about their projects.  The projects will be chosen in conjunction with the instructor for the course.  (4 credits) summer
Prerequisite: COMP4950 or COMP4960

COMP 5501 SENIOR PROJECT COMPUTER SCIENCE
This course provides the opportunity for students to participate in design and implementation of solutions to large problems with small groups of people. Problems will be chosen in consultation with and after the approval of the curriculum department head. (4 credits) summer
Prerequisite: Senior status

COMP 5502 SENIOR PROJECT COMPUTER NETWORKING
Students build individual projects in computer and network information systems. This is a capstone course. Students demonstrate the design, implementation and documentation of their projects. (4 credits) summer
Prerequisite: Senior status

COMP 7000 FOUNDATIONS OF COMPUTER SCIENCE
This course recaps foundational material covered in typical undergraduate degrees. Topics covered may include computer science theory, computability and complexity, computer organization and architecture, operating systems, and data communications. (3 credits) fall

COMP 7050 PROGRAMMING PARADIGMS & SYSTEMS
This course looks at the four main programming paradigms: imperative, functional, logic, and object-oriented. The paradigms are compared and students gain experience with each of them. The second half of the course looks at systems and the various techniques needed. These include parallel and distributed systems, real-time systems, and embedded systems.  (3 credits) fall
Prerequisite: COMP7000

COMP 7100 MANAGING SOFTWARE DEVELOPMENT
This course addresses the breadth of managing software development and is designed to help technically trained software engineers to acquire the knowledge and skills necessary to lead a project team, understand the relationship of software development to overall project engineering, estimate time and costs, and understand the software process. The nature of software development is sufficiently unique to require specialized management techniques, especially in the areas of estimating and scheduling. (3 credits) spring
Prerequisite: COMP7050

COMP 7150 DATA SCIENCE & WEB SERVICES
Data Science and Web Services are provided through a service-oriented architecture (SOA) applied to data sourced from the internet. Web data services enable maximal mashup, reuse, and sharing of structured data (such as relational tables), semi-structured information (such as XML documents), and unstructured information (such as RSS feeds, content from web applications). Applications that can serve as a consumer or provider of web data services include mobile computing, web portals, enterprise portals, online business software, social media, and social networks. (3 credits) spring
Prerequisite: COMP7050

COMP 7200 MOBILE APPLICATION DEVELOPMENT
Mobile application development focuses on the creation of software systems targeting low-power handheld devices such as cell phones. This course examines the client-server model, considers various hardware configurations (e.g., screen size, hardware specifications) and user interface design. Security of mobile applications will be examined as devices such as smartphones become increasingly ubiquitous and owners store ever increasing amounts of personal information on them. (3 credits) summer
Prerequisite: COMP7050

COMP 7250 ENTERPRISE COMPUTING
Enterprise computing refers to business oriented information technology that is critical to an organization’s success. This course considers mainframe computing and compares it to distributed and cloud-based computing. It examines the architecture, operating system, application programming environment, networking, security and management of mainframe systems. (3 credits) summer
Prerequisite: COMP7050

COMP 7300 COMPUTER SECURITY
Computer Security, also known as cybersecurity, is information security as applied to computers and mobile computational devices such as smartphones, as well as computer networks. The course examines the processes and mechanisms by which computer-based equipment, information and services are protected from unauthorized or unintended access, changes, or distribution, how threats are assessed and attacks are handled, and how analysis is undertaken to determine what information was lost or compromise as an attack took place. (3 credits) fall
Prerequisite: COMP7050 

COMP 7400 BIG DATA
Big Data is an all-encompassing term for any collection of data that is so large and complex that it becomes difficult to process using traditional data processing applications. The challenges include analysis, capture, classification, search, sharing, storage, transfer, visualization and privacy violations. Big Data is of interest to science, government, and the private sector as more and more data is collected daily. This course examines techniques to capture, manage, and manipulate large data sets. (3 credits) 
Prerequisite: COMP7050 

COMP 7425 DATA MINING
Data mining is the analysis step in knowledge discovery in databases. It is an interdisciplinary field involving the computational process of discovering patterns in large data sets, and involves methods at the intersection of artificial intelligence, machine learning, statistics, and database systems. The overall goal of data mining is to extract information from large data sets and transform it into an understandable structure for future use. Topics examined in this course include the raw analysis step, addresses database and data management aspects, data preprocessing, model and inference considerations, metrics to determine how “interesting:” a result is, complexity considerations, post-processing of discovered structures, visualization, and online updating. (3 credits) 
Prerequisite: COMP7050

COMP 7450 SOFTWARE ENGINEERING
Software Engineering is the study and application of engineering to the design, development and maintenance of software. Topics covered include requirements engineering, software design, software construction, software testing, software maintenance, software configuration management, software engineering management, software engineering process, software engineering tools and methods and software quality management. (3 credits) 
Prerequisite: COMP7050

COMP 7500 CAPSTONE
The capstone experience brings together the material learned earlier in the Master’s programs. Students are guided by a faculty member to build a software system that integrates the knowledge they have learned and the skills developed throughout the program. Where possible, projects will be developed in collaboration with industry partners. (3 credits) spring
Prerequisite: COMP7050