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
|
|
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.
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
& MAC 2311
& MAC 2312
& 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
|
-
Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
-
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
-
Communicate effectively in a variety of professional contexts.
-
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
-
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
-
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 |
|
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.
|