Apr 30, 2024  
2021-2022 Undergraduate Academic Catalog and Student Handbook 
    
2021-2022 Undergraduate Academic Catalog and Student Handbook [ARCHIVED CATALOG]

Department of Computer Science


Computer Science

Department Chair: Dr. Shahram Taj, Professor

Assistant Chair: Dr. Doga Demirel, Assistant Professor

Degree Programs

Computer Science

 

Overview

The Department of Computer Science and Information Technology offers the Computer Science program, a high-quality program focused on education and research. This STEM-based program yields highly skilled graduates who have strong knowledge in the fundamentals of Computer Science and who are able to apply that knowledge to design and implement solutions for arising problems. The program prepares students for clear and concise communication when working in a team environment and for careers in industry, government, and academia.

Concentrations

Advanced Topics

For students who like to explore, the Advanced Topics concentration enables you to choose up to twelve hours from electives or other concentration courses to fill out your program.

Game Development & Simulation

Game Development and Simulation is an interdisciplinary concentration that applies the rigor of computer science to the creative challenges of game development. With a core curriculum in computing, mathematics, and science, students will combine advanced technical skills with training in the visual arts to develop innovations in digital gaming. The Game Development and Simulation concentration prepares you not only for careers in the $70 billion professional games industry, but also for related fields such as healthcare simulation, scientific visualization, and other computing professions.

Information Assurance & Cyber Security

Cyber Security is the profession of keeping digital information safe from cyber crime, espionage, and terrorism. Cyber security experts are in high demand to protect institutional data from attack, keep sensitive data confidential, and set systems protocols that comply with policies and regulations. In the Information Assurance and Cyber Security program in the Computer Science and Information Technology Department, you will design systems and strategies for safeguarding information and gain real world experience in preventing attacks to prepare you for a career as a sought-after cyber security professional.

Software Engineering

Software engineers apply the principles of engineering to software development. This growing field includes application software engineers who create and maintain computer applications, and systems software engineers who analyze the client’s technical needs and develop and maintain optimal solutions. Because nearly all employment sectors rely on complex software solutions, software engineering is one of the fastest-growing occupations in the world.

Autonomous Systems

Students focusing on autonomous systems learn programming, hardware, and security for use in complex networks or collections of networks. Autonomous systems increasingly run our workplaces, vehicles, and even our homes.

Big Data Analytics

Students in BDA learn to collect, manage and optimize large-scale structured and unstructured data sets to facilitate information and decision-making. Students in BDA develop a strong foundation in essential programming skills, quantitative analysis, and hardware and software solutions for facilitating effective use of big data.

Florida Common Prerequisites

Students who started as freshmen at Florida Poly (native students) must complete general education requirements and the following courses to enter the degree program as a junior:

  • CDA 2108 - Introduction to Computer Systems Credits: 3 OR EEL 3702C - Digital Logic Design Credits: 3
  • COP 2271C - Introduction to Computation and Programming Credits: 3
  • COP 3330C - Computer Programming 2 Credits: 3
  • COP 3710 - Database 1 Credits: 3
  • MAC 2311 - Analytic Geometry and Calculus 1 Credits: 4
  • MAC 2312 - Analytic Geometry and Calculus 2 Credits: 4
  • MAD 2104 - Discrete Mathematics Credits: 3
  • PHY 2048 - Physics 1 Credits: 3
  • PHY 2048L - Physics 1 Laboratory Credits: 1
  • PHY 2049 - Physics 2 Credits: 3
  • PHY 2049L - Physics 2 Laboratory Credits: 1
  • STA 2023 - Statistics 1 Credits: 3

 

Transfer students must meet general education requirements and satisfy the following Florida State Common Prerequisites to enter the degree program as a junior:

COP 2271C

  • or COPx2xx

& MAC 2311

  • or MAC X281

& MAC 2312

  • or MAC X282

& PHY 2048/2048L

  • or PHY X048C
  • or PHY X043/X048L
  • or PHY X053/X053L

& PHY 2049/2049L

  • or PHY X049C
  • or PHY X044/X049L
  • or PHY X054/X054L

& BSC 1010 & BSC 1010L

  • or CHM 2045 & CHM 2045L
  • or other Natural or Life Science

 Academic Learning Compact

Program:

Computer Science

Purpose of the Program:

Prepare students with a strong and competitive foundation in general computer science. Provide quality learning experience and focused training on the current advances in a range of research and application areas.

Graduates of the program with demonstrate the following

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.

  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.

  3. Communicate effectively in a variety of professional contexts.

  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

  6. Apply computer science theory and software development fundamentals to produce computing-based solutions. [CS]

Core Learning Outcomes:

Student Learning Outcomes

The Outcomes Involve These Skills:

Upon completion of the Computer Science program, graduates will have the ability to

Content

Critical Thinking

Communication

1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.

 

X  

2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.

X

 

 

3. Communicate effectively in a variety of professional contexts.

 

  X

4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

  X

 

5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

X

  X

6. Apply computer science theory and software development fundamentals to produce computing-based solutions. [CS]

X X

 

Course Offerings

Courses

  • CAP 4034 - Computer Animation


    Credits: 3

    Prerequisites: Computer Engineering: COP 3530 - Data Structures & Algorithms  

    Computer Science: COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis   
    Course Description: Computer Animation is an introductory animation course that combines traditional animation principles with software based tools. Students will be introduced to the history and background of computer animation, animating primitive objects using a variety of techniques and tools, including keyframing and automating processes using procedural techniques. Students will also be introduced to behavioral animation processes, such as dynamics and simulation.

  • CAP 4052 - Game Design and Development 1


    Credits: 3

    Prerequisites: CAP 4730 - Computer Graphics  
    Course Description: This is a technical course introducing the major tools used in game development and programming. Topics include stages of game development; development methodologies; scripting; game engines; game loading; programming input devices; multi-player design; mobile games; distribution and publishing.
  • CAP 4056 - Game Design and Development 2


    Credits: 3

    Prerequisites: CAP 4052 - Game Design and Development 1  
    Course Description: This course builds upon CAP 4052 - Game Design and Development 1  . It is a hands-on, group- and project-based course. Students will use several game design aspects, different game engines, and a variety of software development kits. The focus of this course will be mainly on the technical aspects of game development with non-trivial programming projects employing different computer interaction technologies and digital media sources.
  • CAP 4122 - Virtual Reality


    Credits: 3

    Prerequisites: CAP 4730 - Computer Graphics  
    Course Description: This course is to introduce students to the fundamentals of Virtual Reality (VR). The course topics include bird’s eye view, VR geometry, lights and optics, psychology of human vision, visual perception, visual rendering, motion, tracking, interaction, audio, and evaluation and experience.
  • CAP 4410 - Computer Vision


    Credits: 3

    Prerequisites: (MAS 3114 - Computational Linear Algebra  or MAS 3105 Linear Algebra  ) and COP 3809C - Advanced Topics in Programming   and 

    ((COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis )  or COP 3530 Data Structures & Algorithms 
    Course Description: The course introduces how computers see and interpret the visual world and how this interpretation can be used to enhance game play experience. Topics covered: projections and coordinate systems, camera modeling, stereo vision, edge detection, filtering, segmentation, optical flow, motion vision, color vision, object representation, face recognition, object recognition.

  • CAP 4612 - Machine Learning


    Credits: 3

    Prerequisites: (STA 2023 - Statistics 1  or STA 3032 - Probability and Statistics) and (MAS 3114 - Computational Linear Algebra  or MAS 3105 - Linear Algebra) and (COP 3530 - Data Structures & Algorithms or (COP 4415 - Data Structures and COP 4531 - Algorithm Design & Analysis))
     
    Course Description: An overview of machine learning algorithms and their applications. Topics covered include: supervised and unsupervised learning, clustering and classification, linear and logistic regression, dimensionality reduction, support vector machines, anomaly detection.
  • CAP 4630 - Artificial Intelligence


    Credits: 3

    Prerequisites: (STA 2023 - Statistics 1  or STA 3032 Probability and Statistics ) and (COP 3530 - Data Structures & Algorithms  or COP 4415 - Data Structures ) and COP 4531 - Algorithm Design & Analysis 
    Course Description: This course covers fundamental concepts such as search and knowledge representation and applied work in areas such as planning, game playing, and vision. Topics included: logical reasoning, constraint satisfaction problems, graph search algorithms, Bayes rule, Bayesian networks, multi-agent system, neural networks, decision trees, and natural language processing.
  • CAP 4730 - Computer Graphics


    Credits: 3

    Prerequisites: Computer Engineering majors: COP 3530 - Data Structures & Algorithms  

    Computer Science and Data Analytics majors: COP 4415 Data Structures  and COP 4531 Algorithm Design & Analysis  
    Course Description: The objective of this course is to establish a foundation in two- and three-dimensional computer rendering algorithms and display devices. Topics included: Geometric transformations, homogeneous coordinates, anti-aliasing, color vision, ray tracing, surface modeling, texture mapping, polyhedral representations, and reflectance models.

  • CAP 4830 - Modeling and Simulation


    Credits: 3

    Prerequisites: STA 2023 - Statistics 1  and COP 3809C - Advanced Topics in Programming   
    Course Description: The course will introduce the concepts of continuous and discrete event system simulation. The focus of the course will be discrete event simulation. In this course, the students will learn the basic definitions, Modeling and Simulation paradigms, design techniques, and applications.
  • CAP 5320 - Data Wrangling and Exploratory Data Analysis


    Credits: 3

    Prerequisites: COP 5090 - Scientific Computation and Programming  or an equivalent programming course
    Course Description: Preprocessing tasks often consume a large fraction of time in computational projects, and all downstream analyses depend on them. In this course, students will develop practical skills for working with large datasets. Topics will include common methods for gathering, organizing, and reshaping structured and unstructured data. We will also cover methods of exploratory data analysis that are useful to guide more focused questions and models. These include principles of information display, simple model forms and data reduction, common visualization methods, and reporting tools. 
  • CAP 5410 - Advanced Computer Vision


    Credits: 3

    Prerequisites: Graduate Standing
    Course Description: The course focuses on advance computer vision topics (image filtering, edge detection, interest point detectors, segmentation, optical flow, motion vision, color vision, object representation, face recognition, object recognition). This course will expose graduate students to innovative research.

     

     

  • CAP 5830 - Modeling and Simulation


    Credits: 3

    Prerequisites: Graduate Standing. Strong Programming (e.g. Programming 2) and Statistics 1 background.
    Course Description: The course will introduce the concepts of continuous and discrete event system simulation. The focus of the course will be discrete event simulation. In this course, the students will learn the basic definitions, Modeling and Simulation paradigms, design techniques, and applications. The students will read and critique state of the art research papers about the covered topics.
  • CDA 2108 - Introduction to Computer Systems


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  
    Course Description: This course provides an introduction to logic design and the basic building blocks of digital computers. The course will cover logic gates, some minimization techniques, arithmetic circuits, flip-flops, synthesis of sequential circuits, finite state machines, counters, registers, Random Access Memory (RAM), and Arithmetic Logic Unit (ALU).
  • CDA 3100 - Computer Architecture


    Credits: 3

    Prerequisites:  COP 3337 - Object Oriented Programming  and STA 2023 - Statistics 1  
    Course Description: This course discusses the background and principles of computer architecture and assembly language including the following: computer organization, computer performance, assembly language and machine code, computer arithmetic, multi-processor and distributed architectures, ALU design, datapath and control, pipelining, memory hierarchy, I/O devices, graphics, mobile and multi-core processors.
  • CDA 4332 - System Architecture


    Credits: 3

    Prerequisites: CTS 2375 - Cloud Implementation Strategies and Cloud Providers  and COP 3710 - Database 1  and (CNT 3502 - Data Communication  or CNT 3004C Introduction to Computer Networks  )
    Course Description: This course covers architecture issues including: Memory hierarchy, I/O subsystems, commercial instruction sets, pipelining, and multiprocessing.
  • CEN 4010 - Software Engineering


    Credits: 3

    Prerequisites: COP 3337 Object Oriented Programming  and

    Computer Engineering majors: COP 3530 - Data Structures & Algorithms   

    Computer Science and Data Analytics majors:  COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis   
    Course Description: The course covers object-oriented software engineering, the software development life cycle, system specification, software design patterns, and the methods of software measurement and estimation.

  • CEN 4065 - Software Design and Architecture


    Credits: 3

    Prerequisites: CEN 4073 - Software Requirements Engineering  
    Course Description: This course covers the engineering processes of building the software architecture and designing the software product according to design criteria. Software design is the process to define the characteristics of a software system. The course begins with design fundamentals, including concepts, context and processes. Then the software structure and architecture; user interface design and design quality analysis and evaluation are covered within the context of real-world challenges.
  • CEN 4072 - Software Verification and Quality Assurance


    Credits: 3

    Prerequisites: CEN 4073 - Software Requirements Engineering  
    Course Description: This course introduces software verification and validation techniques with a particular focus on software testing. The course also provides students a comprehensive understanding of the software quality assurance and techniques used to assess software quality.
  • CEN 4073 - Software Requirements Engineering


    Credits: 3

    Prerequisites: CEN 4010 - Software Engineering    
    Course Description: This course covers software specification and requirements as well as software project management and how to effectively allocate resources. The course will provide the students with concepts of software requirement modeling, software requirements specification, prototyping requirements, testing and validating requirements, and requirements management. The students will practice managing a software project based on requirements and allocating resources.
  • CEN 4083 - Advanced Concepts in Virtualization


    Credits: 3

    Prerequisites: Junior standing and COP 4610 Operating Systems Concepts  
    Course Description: This is an applied course in the principles, methods, and technologies of Cloud Computing. Upon completion of this course students should be able to create, configure, build, deploy and manage a variety of cloud based solutions.
  • CEN 4088 - Software Security Testing


    Credits: 3

    Prerequisites: CEN 4010 - Software Engineering  
    Course Description: This course introduces software testing with a focus on testing security flaws. Topics covered: secure software development lifecycle, web application testing, risk assessment, developing security policies for applications, threat analysis and application development vulnerabilities, exploitation testing, black-box testing.
  • CEN 4213 - Embedded Systems Programming


    Credits: 3

    Prerequisites: COP 4415 - Data Structures  and EEL 4768C - Computer Architecture and Organization  
    Course Description: The course focuses on the programming of embedded systems in diverse set of applications, environments, and settings. Topics include: Reading technical specifications for embedded systems, Embedded systems architectures, Low-level programming, Embedded systems development environments, communication protocols, and real-time operating systems.
  • CEN 4721 - Human Computer Interaction


    Credits: 3

    Prerequisites: Computer Engineering majors:  COP 3530 - Data Structures & Algorithms   

    Computer Science and Data Analytics majors: COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis    
    Course Description: This course surveys the many techniques humans interact with computers and mobile devices i.e. physical buttons, touch screens, speech, eye gaze, gestures, and game controllers. Topics included: creating and improving user-centric interfaces, interactive design processes, and sensing and recognizing activities of people by a computer.

  • CEN 4722 - User Interface and User Experience


    Credits: 3

    Prerequisites: CEN 4010 - Software Engineering  
    Course Description: This course covers software design rational, evaluation of User Interfaces, usability engineering, interaction styles, task analysis, user-centered design and prototyping, and measuring the software user experience.
  • CEN 5010 - Advanced Software Engineering


    Credits: 3

    Prerequisites: Graduate Standing. Strong programming background (e.g. programming 1).
    Course Description: The course covers object-oriented software engineering, the software development life cycle, system specification, software design patterns, the methods of software measurement and estimation, and state of the art research topics in software engineering.
  • CEN 5088 - Advanced Software Security Testing


    Prerequisites: Graduate Standing
    Course Description: This graduate course focuses on software security fundamentals, secure coding guidelines and principles, and advanced software security concepts. It is designed to give students practical experience with building a software system and securing it. Topics covered: secure software development lifecycle, web application testing, risk assessment, developing security policies for applications, threat analysis and application development vulnerabilities, exploitation testing, and black-box testing. State-of-the-art papers related to software security will be presented and discussed.
  • CEN 5728 - Advanced Human-Computer Interaction


    Credits: 3

    Prerequisites: Graduate Standing
    Course Description: This course surveys of strategies and practices in human-computer interaction. Students will learn to perform studies in user interface analysis and design, to read the research literature critically, extract important points from readings, summarize, and write papers as well as present their written and oral work.
  • CIS 1000 - Introduction to Innovation and Technology


    Credits: 3

    Prerequisites: None
    Course Description: This is an introductory level course intended to prepare students for the more complex courses they will encounter in their academic careers, by introducing foundational technology concepts and principles. The course is also intended to orient students to the various majors and concentration tracks in the I & T College.
  • CIS 2005 - Fundamentals of Applied Information


    Credits: 3

    Prerequisites: None
    Course Description: This course covers the concepts of knowledge management (KM), knowledge discovery (KD), data analytics, and information retrieval (IR). This is an introductory level course designed to familiarize students with the principles and fundamentals of information science theories and methods. The course is intended to introduce and explain foundations that students will need to be able to use and master in their upper level courses, internships and careers.
  • CIS 4203 - Digital Forensics


    Credits: 3

    Prerequisites: CNT 3004C - Introduction to Computer Networks  
    Co-requisite or Prerequisite: CIS 4367 - Computer Security  
    Course Description: This course provides an introduction to fundamental concepts in digital forensics. Topics covered include File Systems, Allocated and Unallocated Space, Standard Operating Procedures, Quality Assurance, hardware, software, accreditation, and certification are all important aspects of an effective lab. Collecting Evidence, Windows System Artifacts, Antiforensics, Legal Principles for Digital Forensics, Internet and Email Forensics, Network Forensics, Mobile Device Forensics.
  • CIS 4204 - Ethical Hacking


    Credits: 3

    Prerequisites: CNT 3004C - Introduction to Computer Networks  
    Co-requisite or Prerequisite: CIS 4367 - Computer Security  
    Course Description: This course explores the topic of Computer Security from the hacker’s perspective. Latest hacking tools are explored and countermeasures are proposed. Topics covered: penetration testing, reconnaissance, scanning, exploitation, backdoors, rootkits, viruses, worms, packet sniffers, social engineering, phishing, Denial of Service.
  • CIS 4320 - Design Science


    Credits: 3

    Prerequisites: None
    Course Description: This course introduces students to the paradigm of Design Science and the Information Systems Research Cycle (ISRC). Students will learn to apply ISRC to solve real business problems via the IT Artifact using methods, models and theories to design, evaluate and deliver IT solutions. This course meets communication/writing-intensive requirements (W).
  • CIS 4330 - Enterprise Systems


    Credits: 3

    Prerequisites: CTS 2375 - Cloud Implementation Strategies and Cloud Providers  and COP 2271 - Introduction to Computation and Programming  and COP 3710 - Database 1  and CAP 4733 - Systems Acquisition, Integration, and Implementation  and (CNT 3502 - Data Communication  or CNT 3004C Introduction to Computer Networks 
    Course Description: This course focuses on performance and tools to design and develop enterprise level systems. Materials cover the major parts of enterprise applications, architectural patterns, and decomposition and descriptions of layers. Topics include; State of the Art, Communication, Modeling, Architectural Analysis and Tool Support.
  • CIS 4362 - Applied Cryptography


    Credits: 3

    Prerequisites: (STA 2023 - Statistics 1  or STA 3032 Probability and Statistics ) and (COP 3530 - Data Structures & Algorithms  or (COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis ))  
    Course Description: This course introduces cryptographic primitives and how they are implemented in applications. Topics covered include: symmetric-key encryption algorithms, public key encryption, digital signatures, and message integrity.
  • CIS 4510 - Advanced System Development and Production


    Credits: 3

    Prerequisites: CAP 4733 - Systems Acquisition, Integration, and Implementation  
    Course Description: This course is a second course in system design and development, focusing on the production readiness review process of an already vetted system development plan. As such the course assumes experience with project management, system analysis and design, and high level programming experience. Students will utilize the system design and implementation plan created in CAP 4733 - Systems Acquisition, Integration, and Implementation  . This is an advanced course covering critical thinking and problem solving techniques applied to information systems, and the fundamentals and complexities associated with software development and acquisition.
  • CNT 3004C - Introduction to Computer Networks


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  and (STA 2023 - Statistics 1  or STA 3032 Probability and Statistics 
    Course Description: This course provides an introduction to fundamental concepts in computer networks, including their design and implementation. Topics covered include all seven layers of OSI Reference Model, network protocols (providing reliability and congestion control), routing, and link access. Special attention is also paid to wireless networks and security.
  • CNT 3200 - Distributed Information Systems


    Credits: 3

    Prerequisites: COP 3710 - Database 1  
    Course Description: This course discusses server based operating systems which are deployed, administered and managed via remote locations. Emphasis is placed upon the hardware required for interconnecting digital devices for the purpose of enabling data communication through a network. Bus architectures, ports, network cards, cabling, routers, switches are also covered. Ensuring network reliability and optimizing network performance are presented.
  • CNT 4403 - Data Security


    Credits: 3

    Prerequisites: (COP 3530 - Data Structures & Algorithms  or COP 4415 Data Structures ) and COP 4531 Algorithm Design & Analysis 
    Course Description: Access control systems, telecommunications and network security, security management practices, application and systems development security, cryptography, disaster recovery planning, legal and ethical issues, and physical security are covered in this course. Special topics include Network Security, Cryptography, Access Control, Security Architecture and Models, Applications and Systems Development, and Vulnerability Assessment.
  • CNT 4409 - Network Security


    Credits: 3

    Prerequisites: CIS 4362 - Applied Cryptography  and CNT 3004C - Introduction to Computer Networks  
    Course Description: The course introduces networks security tools and techniques. Topics covered are: hardware and software network security tools, firewalls, attacks and mitigation at the network level, authentication, intrusion detection, network vulnerability analysis, threat and risk assessment.
  • CNT 4526 - Wireless and Mobile Networking


    Credits: 3

    Prerequisites: CNT 3004C - Introduction to Computer Networks  and COP 4531 - Algorithm Design & Analysis  
    Course Description: This course will introduce students to wireless and mobile network architecture, protocols, and technologies. The course will cover topics including cellular networks, Wi-Fi, Bluetooth, ZigBee, etc.
  • COP 2073 - Introduction to Data Science


    Credits: 3

    Prerequisites: None
    Course Description: Students will learn how to work through data science problems within a modern statistical programming language. The course covers the complete analytical process, from gathering the data, to applying appropriate exploratory and statistical analysis, and communicating the results. Important topics in data science projects workflows, version control, and efficient programming are integrated throughout the course. Fundamentals of analytics, data visualization, and management of data are presented.
  • COP 2271 - Introduction to Computation and Programming


    Credits: 3

    Prerequisites: MAC 1147 - Pre-calculus Algebra and Trigonometry  or equivalent, e.g. Aleks score
    Course Description: This course is an introduction to computational thinking and the art of computer programming using the C programming language. Students will learn fundamental programming concepts and systematic design techniques. They will use them to write programs that computationally solve and reduce problems. At the end of the course, students will be able to use a programming language without focusing on the language specifics. No prior programming background is required and a working knowledge of high school level algebra is expected.

     (Amended 10/25/2021)

  • COP 3330C - Computer Programming 2


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  
    Course Description: This course is an advanced level computer programming course. It introduces advanced programming concepts: Object-Oriented design principals, data abstraction, classes, polymorphism, inheritance, and basic algorithms. Students will acquire skills to solve larger projects and algorithmic problems with more efficient code.
  • COP 3337 - Object Oriented Programming


    Credits: 3

    Prerequisites: A letter grade of C or higher in COP 2271 - Introduction to Computation and Programming  (Amended 10/25/2021)
    Course Description: This is an intermediate programming course designed for students with prior programming experience. This course focuses on object-oriented programming concepts and techniques using C++. The covered topics will include: streams, classes, recursion, template classes, file handling, and exception handling.

     (Amended 10/25/2021)

  • COP 3338 - Advanced Computer Programming


    Credits: 3

    Prerequisites: COP 3530 - Data Structures & Algorithms  
    Course Description: The course includes advanced programming topics: multithreading, libraries, exception handling, GUI, networks, memory allocation, database connection, cross-platform development issues.
  • COP 3353 - Introduction to Unix


    Credits: 2

    Prerequisites: COP 2271 - Introduction to Computation and Programming  
    Co-requisite: COP 3337 - Object Oriented Programming   

    Course Description: This is an introductory course to Linux and Unix operating systems. The course will cover topics including:  commands, utilities, text editors, shell programming, programming tools, and regular expressions.

     (Amended 10/25/2021)

  • COP 3530 - Data Structures & Algorithms


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  and MAD 2104 - Discrete Mathematics  
    Course Description: The course introduces program run-time analysis and algorithm design and analysis. Topics include: data abstraction principals, serial and parallel data structures, linked lists, graphs, trees, divide and conquer algorithms, greedy algorithms, and linear programming.
  • COP 3710 - Database 1


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  or (COP 2271C - Introduction to Computation and Programming  and COP 2034 - Introduction to Programming Using Python   for Business Analytics degree only)
    Course Description: The use of Structured Query Language (SQL) and broad knowledge of database design, implementation, and systems development are presented in this course. Emphasis is places upon data modeling concepts, approaches and techniques, and stages in database development processes (conceptual, logical and physical design).
  • COP 3729 - Database 2


    Credits: 3

    Prerequisites: COP 3710 - Database 1  
    Course Description: Datacenter infrastructure and management including technologies such as: virtualization, networking, server consolidation, green IT computing, and network storage configurations are discussed. The utilization of virtualized platforms, networking and infrastructure configurations as well as the deployment, analysis and management of applications are also presented.

     (Amended 10/25/2021)

  • COP 3809 - Advanced Topics in Programming


    Credits: 3

    Prerequisites: COP 3337 Object Oriented Programming   
    Course Description: This course is an advanced level computer programming course. It reinforces the object-oriented programming concepts and techniques using Java. The course will cover topics include interfaces, exception handling, advanced GUI design, graphics and Java 2D, regular expressions, object serialization, collections, concurrency, accessing databases, and networking.

     (Amended 10/25/2021)

  • COP 3834 - Web Application Development


    Credits: 3

    Prerequisites: COP 2271 - Introduction to Computation and Programming  
    Course Description: Topics include: Client-side programming, distributed transactions, remote procedure calls, component objects, server side programming and network load balancing. Methods such as HTML5, CSS, JavaScript, XML, and PHP are introduced.  

    (Amended 10/25/2021)

  • COP 4020 - Programming Languages


    Credits: 3

    Prerequisites: Computer Engineering majors: COP 3530 - Data Structures & Algorithms  

    Computer Science and Data Analytics majors:  COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis   
    Course Description: The course covers programming models underlying different languages. The course will help students make informed design choices in languages supporting multiple complementary approaches. Students will be introduced to the principles of how programming language features are defined, composed, and implemented. In addition, the effective use of programming languages, and appreciation of their limitations, is emphasized by introducing main constructs on programming languages as well as lexical and syntax analysis. The course will include the following topics: Introduction to the theory of computation, including models of computation such as Turing machines; theory of programming languages; including grammars; parsing; syntax and semantics.

  • COP 4368 - Advanced Programming


    Credits: 3

    Prerequisites: CEN 4010 - Software Engineering  
    Course Description: This course gives an in-depth analysis of algorithms using object oriented techniques. Emphasis is placed on practical applications and programming within Electrical and Computer Engineering. The programming languages included in this course are C++ and Java.
  • COP 4415 - Data Structures


    Credits: 3

    Prerequisites: A letter grade of C or higher in  COP 3337 - Object Oriented Programming  (Amended 10/25/2021)
    Course Description: This course examines the essential properties of algorithms and data structures. The data structures will be used as tools to aid in algorithm design and application.
  • COP 4421 - Autonomous Systems Programming


    Credits: 3

    Prerequisites: COP 3337C - Object Oriented Programming  
    Course Description: Robots are becoming increasingly ubiquitous in all aspects of our life. Students taking this course will learn how to reuse and develop code with ROS. The topics will cover: ROS foundations, simulation and visualization, perceptual processing, and mobile-robot motion, system integration and proper robotic control architecture design.

     (Amended 10/25/2021)

  • COP 4520 - Introduction to Parallel and Distributed Computing


    Credits: 3

    Prerequisites: Computer Engineering Majors: (EEL 4768C - Computer Architecture and Organization  or CDA 3100 - Computer Architecture ) and COP 3530 - Data Structures & Algorithms  

    Computer Science and Data Analytics Majors: (EEL 4768C - Computer Architecture and Organization   or CDA 3100 - Computer Architecture ) and COP 4415 - Data Structures  and COP 4531 - Algorithm Design & Analysis   
    Course Description: The course introduces concepts of parallel algorithms analysis and implementation. Topics covered: shared memory model, distributed memory model, concurrency, synchronization, message passing interface (MPI), heterogeneous parallel programming, GPU programming.

  • COP 4531 - Algorithm Design & Analysis


    Credits: 3

    Prerequisites: MAD 2104 - Discrete Mathematics  and  COP 3337 - Object Oriented Programming  
    Co-requisite or Prerequisite: COP 4415 Data Structures  
    Co-requisite:  

     

    Course Description: The course studies a variety of useful algorithms and analyzes their complexity. Students will gain an understanding of principles and data structures that are useful in algorithm design.

  • COP 4610 - Operating Systems Concepts


    Credits: 3

    Prerequisites: EEL 4768C - Computer Architecture and Organization  or CDA 3100 - Computer Architecture  
    Course Description: This course covers the concepts of the design and implementation of operating systems. Topics included: memory and storage management, virtual memory, processes/threads, system calls, interfaces, I/O, file system, and introduction to virtualization.
  • COP 4620 - Compilers and Interpreters


    Credits: 3

    Prerequisites: COP 4415 - Data Structures  
    Course Description: This course introduces students to the theory of programming language processors. The topics will cover: organization of translators, grammars and languages, symbol tables, lexical analysis, syntax analysis, error handling, code generation, optimization, and interpretation.
  • COP 4656 - Mobile Device Applications


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming   
    Course Description: This course covers the design principles and technologies for the development of software applications for mobile devices. The application development process and tools will also be covered. Through hands-on exercises, the students are given practice in mobile applications programming and develop their problem solving skills in a collaborative classroom environment.
  • COP 4935 - Senior Design 2


    Credits: 3

    Prerequisites: COP 4934 - Senior Design 1   
    Course Description: This is the second course in a sequence of two courses that are based on supervised team projects. This is a continuation to the project in Senior Design 1. In this course students will learn and demonstrate project implement, debugging, documentation, and testing. The students are expected to: 1) write a final report describing the activity performed during the course; and 2) present the project.

     (Amended 10/25/2021)

  • COP 5090 - Scientific Computation and Programming


    Credits: 3

    Prerequisites: Graduate standing
    Course Description: The course will introduce the students to scientific computing and graphics using R. The topics covered include programming with R, Numerical Accuracy, Root finding, Integration, Ordinary Differential Equations, Probability and Random Variables, Estimation, Markov Chains, and Basic Simulation.
  • COP 5272 - Computation Theory


    Credits: 3

    Prerequisites: Graduate Standing
    Course Description: The course develop understanding of the underlying fundamentals of computation. It is assumed that students have had decent exposure to computability topics in an undergrad level course. A significant portion of this course will then be focused on computational complexity, including major topics in theory of computation such as randomization, interactive proofs, time and space measures, complexity classes, quantum computing.
  • COP 5531 - Advanced Algorithm Design and Analysis


    Credits: 3

    Prerequisites: Graduate Standing
    Course Description: The course covers theory of NP-completeness, methods for dealing with NP-complete problem. Selected topics in such areas as combinatorial optimization, computational geometry, cryptography, parallel algorithms. This course also discuss algorithms for graph theoretical applications, lower bounds, upper bounds, and average performance of algorithms. If time permits discussion on complexity theory will also discussed. Core results and techniques are introduced, which are useful to those planning to specialize in other areas in computer science. Moreover, some fairly advanced topics will be covered. This will provide an idea of the current research for the benefit of those who might wish to specialize in this area.
  • COP 5610 - Advanced Operating Systems Concepts


    Credits: 3

    Prerequisites: Graduate Standing
    Course Description: The course cover concepts of the design and implementation of operating systems. Topics included: memory and storage management, virtual memory, processes/threads, system calls, interfaces, I/O, file system, and introduction to virtualization.
  • CTS 4817 - Advanced Web Services


    Credits: 3

    Prerequisites: COP 3337 - Object Oriented Programming  
    Course Description: The course explores Web Services Architecture and methods for implementing communication of systems and software over distributed networks. Topics include: Client-side programming, distributed transactions, remote procedure calls, component objects, server side programming and network load balancing.
  • CTS 5377 - Advanced Cloud Implementation Strategies and Cloud Providers


    Credits: 3

    Prerequisites: CIS 1000 - Introduction to Innovation and Technology  or equivalent
    Course Description: This course discusses the strategic management of the cloud environment and considerations for leveraging cloud providers for Infrastructure as a Service (Iaas), Platform as a Service (Paas), and Software as a Service (SaaS). Course content emphasizes mechanisms for relating virtual resources to underlying physical resources, system monitoring, security administration, scalability, and cost analysis. Current and emerging cloud providers will be surveyed and analyzed in regard to implementing a specific cloud solution, use of contemporary cloud management tools, and articulating issues involved in migrating to a cloud environment are presented.
  • CTS 5378 - Advanced Cloud Applications


    Credits: 3

    Prerequisites: None
    Course Description: Examples of topics in this course include, clusters, nodes, network reliability and optimizing performance.
  • DIG 2520 - Digital Media Production


    Credits: 3

    Prerequisites: None
    Course Description: This course integrates a broad platform of practical skills in art, storytelling, and technology. The creation of digital multimedia explores audio engineering techniques using Adobe Audition, image enhancement in Adobe Photoshop, and video production with Adobe Premiere Pro. Students will combine these skills to produce complex and creative productions.

     (Amended 10/25/2021)

  • EGN 4941 - Internship


    Credits: 3

    Prerequisites: Senior standing and Permission of Program Director
    Course Description: Classroom theory will be integrated with a participatory and experiential learning and work experience in business, industry, government and other technology-oriented areas of student interest. Evaluation by work supervisor is required. Supervision by a faculty member or delegated authority, daily journal, and a post-internship report are also required.