Ƶ

Course Descriptions

Bachelor Degree Courses - Computer Science

View the Comprehensive Catalog at 

Computer Science (COSC)

Course Number: 1172
Credit Hours: 1
Title: Thinking, Speaking, and Writing

Course Description:
The objective of this course is to give students experiences that convey the five main activities of a person working in the area of computer science: reading, listening, thinking, speaking, writing and cooperative interaction. Designed for incoming freshmen.

Course Number: 1173
Credit Hours: 1
Title: Ƶming Lab

Course Description:
Practical applications of concepts learned in Computer Science 1336 (COSC 1336). Hands-on instruction in programming in an object-oriented language, developing, debugging, and testing programming projects.

Course Number: 1174
Credit Hours: 1
Title: Fundamentals of Computing II Lab

Course Description:
This course is the lab which accompanies COSC 1337. the topics covered include advanced concepts of Java programming, such as inheritance, polymorphism, Graphical and graphics, exceptions, events, etc.

Course Number: 1324
Credit Hours: 3
Title: The Art of Computer Game Development

Course Description:
The synthesis of computer games with a focus on the artistic elements of games, including graphics, animation, audio and narrative.

Course Number: 1336
Credit Hours: 3
Title: Ƶming Fundamentals I

Course Description:
Introduces the fundamental concepts of structured programming. Topics include software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing and debugging. This course assumes computer literacy.

Course Number: 1337
Credit Hours: 3
Title: Ƶming Fundamentals II

Course Description:
Review of control structures and data types with emphasis on structured data types. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering.

Course Number: 1371
Credit Hours: 3
Title: Microcomputers

Course Description:
The objective of this course is to teach students to solve realistic problems using the most readily available off-the-shelf general applications software: word processing, spreadsheets and database systems. The course familiarizes the student with Internet resources. Students learn the basic components of computer systems and networks. (This course may not be taken as a COSC/CPSC elective).

Course Number: 1381
Credit Hours: 3
Title: Intro to Game Ƶming

Course Description:
The objective of the course is to teach students from any discipline to write software to design interesting 3-D games that are fun to play. Students will learn how a high level programming language can produce exciting virtual world.

Course Number: 2324
Credit Hours: 3
Title: Mobile Computer Game Development

Course Description:
This is an introductory course in Android game development.

Course Number: 2325
Credit Hours: 3
Title: Computer Organization

Course Description:
This course introduces the computer organization and assembly language. The system software includes loaders, assemblers, input-output devices and programming.

Course Number: 2330
Credit Hours: 3
Title: Web 2.0

Course Description:
This course is designed to use various Web 2.0 technologies such as social networks, blogs, wikis and podcasts. Subject matter will consist of projects, quizzes, discussions and a portfolio project. This is a project based course and will require several hours of your time each week. Web cam and microphone required.

Course Number: 2336
Credit Hours: 3
Title: Ƶming Fundamentals III

Course Description:
This course describes applications of programming techniques, introducing the fundamental concepts of data structures and algorithms.

Course Number: 2372
Credit Hours: 3
Title: Computer Organization Assembly Language

Course Description:
This course introduces the computer organization and assembly language.

Course Number: 2375
Credit Hours: 3
Title: Discrete Structures

Course Description:
This course presents discrete mathematical structures for computer science and mathematics. Topics include: logic and methods of proof, structures of sets and functions, Boolean algebra, recursion, fundamentals of algorithms, permutations and combinations, discrete probability, graphs and trees, randomized search and optimization, and their applications.

Course Number: 3301
Credit Hours: 3
Title: Special Lang Topic

Course Description:
The study of the theory and applications of specialized computer languages and language packages. This course may be repeated for different languages and language packages. This course is an academic elective and will not be counted as a COSC/CPSC elective.

Course Number: 3302
Credit Hours: 3
Title: Intro to Computer Theory

Course Description:
Preliminary review/introduction of the mathematics and logic for the course. Ƶs and computable functions, primitive recursive functions, the universal program, Turing machines and regular languages.

Course Number: 3304
Credit Hours: 3
Title: Algorithms Design and Analysis

Course Description:
This course is intended as an intermediate course to the design and analysis of algorithms for some of the most frequently encountered combinatorial problems. The course aims to provide familiarity with general algorithmic techniques, performance measures, analysis tools and problem areas. In this course, we will focus on developing an understanding of the algorithmic design process: how to identify the algorithmic needs of an application and apply algorithmic design techniques to solve those problems. The students will also learn how to identify problems for which no exact, efficient algorithm is known. More specifically, topics include: Fundamentals (Basic Ƶming Model, Data Abstraction, Bags, Queues, and Stacks, Analysis of Algorithms), Sorting (Elementary Sorts, Mergesort, Quicksort, Priority Queues, applications), Searching (Symbol Tables, Binary Search Trees, Balanced Search Trees, Hash Tables, applications), Graphs (Undirected Graphs, Directed Graphs, Minimum Spanning Trees, Shortest Paths), Strings (String Sorts, Tries, Substring Search, Regular Expressions, Data Compression), Context (applications).

Course Number: 3306
Credit Hours: 3
Title: UNIX/C++

Course Description:
Ƶming in C ++ in a UNIX environment.

Course Number: 3307
Credit Hours: 3
Title: Data Analytics in Python

Course Description:
This course covers data science, analytics, visualization in Python by including the foundations of Python programming in machine learning. The primary focus is on hands-on experience and working knowledge of Python for data representation, manipulation, visualization, regression, convolutional and recurrent neural networks.

Course Number: 3308
Credit Hours: 3
Title: Design Ƶming Languages

Course Description:
The organization of programming languages, especially run-time behavior of programs; the formal study of programming language specification and analysis, and the continued development of problem solution and programming skills.

Course Number: 3320
Credit Hours: 3
Title: Web Design/XHTML

Course Description:
Web design with XHTML. The course emphasizes coding at the XHTML level rather than using a WYS/WYG editor. The course also covers information related to WEB design, intellectual property, and the internet. The course may NOT be used as a computer science or computer information sciences elective.

Course Number: 3323
Credit Hours: 3
Title: Fundamentals of Digital Media

Course Description:
This is a course for students from all disciplines interested in learning the foundational concepts and basic techniques in digital media production. Topic areas: capturing and editing digital images, capturing and editing digital audio, capturing and editing digital video and interactive multimedia. The course will consist of project based assignments, quizzes and a portfolio project to showcase student work.

Course Number: 3325
Credit Hours: 3
Title: Computer Law and Ethics

Course Description:
This course introduces the ethical style of good writing in computer science and presents the social, legal, philosophical, and economic issues related to computers.

Course Number: 4272
Credit Hours: 2
Title: Senior Assessment

Course Description:
The one credit hour version of this course called COSC 4172 (Senior Assessment). The objective of COSC 4272 is to assist students in their preparation for searching a permanent position after graduation or in their application for a more advanced graduate degree. It will survey students completing their degrees as part of its assessment obligations by ABET.

Course Number: 4301
Credit Hours: 3
Title: Special Topics

Course Description:
An investigation into specialized areas of computer science under the guidance of a faculty member. This course may be repeated for credit when topics of investigation differ.

Course Number: 4302
Credit Hours: 3
Title: Operating Systems

Course Description:
To introduce the major concept areas of operating systems principles develop an understanding of the organization and architecture of computer systems at the register-transfer and programming levels of system description and the inter-relationships between the operating system and the architecture of computer systems.

Course Number: 4304
Credit Hours: 3
Title: Foundations of Ƶming

Course Description:
This is an accelerated introductory computer programming course using a high-level programming language. Topics include algorithms, pseudocode, structured techniques of problem solving and program design, data structures, sorting, searching and object-oriented design. Prior programming experience is not needed but is highly recommended. The course is designed for graduate students who lack the necessary preparation necessary for graduate-level programming courses. A minimum grade of B is required in this course to meet degree requirements

Course Number: 4305
Credit Hours: 3
Title: Internship-1

Course Description:
Student works off-campus for at least 20 hours per week for an entire semester. Work must be similar to work done in industry by computer science graduates. Requires approval of department chair.

Course Number: 4306
Credit Hours: 3
Title: Internship-2

Course Description:
Student works off-campus for at least 20 hours per week for an entire semester. Work must be similar to work done in industry by computer science graduates. Requires approval of department chair.

Course Number: 4310
Credit Hours: 3
Title: Introduction to Computer Architecture

Course Description:
This course describes in-depth understanding of the inner workings of modern digital computer systems and trade-offs present at the hardware-software interface. (Organization and Assembly language)

Course Number: 4319
Credit Hours: 3
Title: Computer Graphics

Course Description:
This is an introductory course in graphics programming using C++ and Microsoft Windows.

Course Number: 4320
Credit Hours: 3
Title: Advanced Web Design

Course Description:
This course will build off of the fundamentals of HTML and CSS to teach the student how to build dynamic and engaging websites. The course will cover the standards associated with web technologies including HTML, CSS, JavaScript, PHP, and Python. The course will also cover how to implement these technologies in applicable “real-world” situations. The course will consist of projects, quizzes, discussions and a portfolio project. This is a project-based course and will require several hours of a student’s time each week.

Course Number: 4324
Credit Hours: 3
Title: Computer Game Development I

Course Description:
This is an introductory course in game programming using the PC platform.

Course Number: 4325
Credit Hours: 3
Title: Computer Game Development II

Course Description:
Continuation of COSC 4324. Advanced game programming techniques, including 3.D graphics, 3-D audio, game physics and networking for multi-player games.

Course Number: 4332
Credit Hours: 3
Title: Ƶming Mobile Devices

Course Description:
This course will cover the beginning topics of Android, and teach basic Android application development using Eclipse Development Environment. It is designed to get the student up to writing apps for Android devices. By the end of the course, the student will be able to write simple GU applications, use built-in widgets and components.

Course Number: 4333
Credit Hours: 3
Title: Distributed Systems

Course Description:
This course will explore the fundamental issues in designing and implementing distributed systems, such as the architectures of distributed systems, processes and threads, interprocess communication and synchronization, name solution, data consistency and replication, fault tolerance, representative distributed computing systems, and file systems.

Course Number: 4334
Credit Hours: 3
Title: Computer Vision

Course Description:
This course is an introduction in image segmentation, image representation and description, feature detection and matching, machine learning, and object recognition. The goal of this course is to give students the understanding of how computer vision algorithms work and what algorithms can be used to solve given problems, as well as the necessary foundation to develop new computer vision algorithms.

Course Number: 4345
Credit Hours: 3
Title: Cybersecurity Networks

Course Description:
This course provides a hands-on study of various network attacks and defending techniques, including main vulnerabilities of TCP/IP protocols, attacks on DNS servers, DoS attacks, Firewalls, VPN's, TLS and Blockchain. Basics of TCP/IP protocols and cryptography will also be covered.

Course Number: 4350
Credit Hours: 3
Title: Parallel Ƶming and Algorithms

Course Description:
This course focuses on scalable parallelism, that is, the ability of a parallel program to run well on any number of processors focusing on algorithm design techniques that are hardware independent. The course describes the principles that underlie effective and efficient parallel programs that will remain true even as the state of the art changes with an emphasis on fundamental principles of computer science such as algorithms for parallel computation.

Course Number: 4360
Credit Hours: 3
Title: Career Development V

Course Description:
Student works full-time during the semester for an off-campus enterprise in work that exposes the student to a work environment similar to that which will be encountered upon graduation.

Course Number: 4365
Credit Hours: 3
Title: Computer Crime Analysis

Course Description:
This course analyzes the phases, processes and challenges of cybercrime investigations, and it examines technical, legal and social issues relating to the search and seizure of digital evidence and computer forensics.

Computer Information Science (CPSC)

Course Number: 2350
Credit Hours: 3
Title: Cyber Science Fundamentals

Course Description:
This is an introductory course for upper-division courses in Cyber Science. The course provides an overview of five key modules that construct the cyber world: data, networking, computing, applications, and security. Corresponding mathematics, languages, and tools involved in each component will be taught in a preliminary way, such as Python, C++/Unix, SQL, HTML/CSS, JavaScript, SVM, image processing, cryptography, etc. The course also studies how cutting-edge technologies (AI, 5G, IoT, blockchain, VR/AR, quantum computing, etc.) will impact and form the future cyber world in economics, sociology, and ethics.

Course Number: 4315
Credit Hours: 3
Title: Network System Administration

Course Description:
Topics include system security, shell programming, setting up user accounts, system configuration, system startup, management of file systems and disks, and backup and restore operations.

Course Number: 4317
Credit Hours: 3
Title: Computer Networks

Course Description:
This course is about principles and applications of computer communication, networking communication protocols, the internet, LANs, packet-switching networks, network architecture.

Course Number: 4324
Credit Hours: 3
Title: Big Data Computer Systems

Course Description:
This course provides an overview of the state-of-the-art Big Data Computer Systems and explores the current trends and future challenges for big data related issues. The goal of this course is to allow you to gain an in-depth understanding of big data concepts, various big data sources and systems, technology platforms for big data analytics, analytical data environments and algorithms for data analytics.

Course Number: 4326
Credit Hours: 3
Title: Android Ƶming

Course Description:
This is an introductory course in Android programming. Topics include history of Android, hardware, development tools, text-based applications, multi-media applications, accessing the Internet from an application, and user interface design.

Course Number: 4327
Credit Hours: 3
Title: Advanced Android Ƶming

Course Description:
This is an advanced course in Android programming. Topics include design, marketing, custom Views, 3D graphics, SMS, text-to-speech, advanced application preferences, View animation, background processing and network programming.

Course Number: 4330
Credit Hours: 3
Title: Multimedia Processing

Course Description:
Television style viewing and sound interfacing to computer systems. Software and architectural interconnection requirements of digital interactive video and audio technology, graphical user interface. Definition, examples, application, review of major implementations, and architecture of hypertext systems. Voice technology: synthesis, recognition and response. Student projects.

Course Number: 4335
Credit Hours: 3
Title: Image Processing

Course Description:
This course introduces the basic algorithms of image processing, including image enhancement, image filtering, feature detection, Fourier transform, geometric transforms, color processing and image compression. the goal of this course is to give students an understanding of how image processing algorithms work and what algorithms to apply for solving a given problem, as well as the necessary foundation to develop new image processing algorithms.

Course Number: 4340
Credit Hours: 3
Title: Database Design

Course Description:
Logical and physical database system organization; logical models; design issues; secondary storage considerations. Design issues emphasizing the normal decomposition theory of the n-ary relational data model, the RM/T model and an introduction to logical implementations of databases.

Course Number: 4345
Credit Hours: 3
Title: Big Data Warehousing

Course Description:
This is an introductory course on bug data warehousing and the general objective of the course is to provide a thorough understanding of data warehouse architecture, conceptual, logical and physical design of data warehouse, data cube computation, indexing and query processing. It also provides the fundamental knowledge for the processes by which a data warehouse system is designed and developed and understanding the importance of multidimensional data modeling and its differences with other data modeling.

Course Number: 4355
Credit Hours: 3
Title: Data Mining

Course Description:
This is an introductory course on data mining and the general objective of the course is to teach students fundamental concepts in data mining and study various analytical techniques of data mining to extract information from a variety of datasets. the curse covers various techniques including data cleaning, integration, transformation, classification, prediction, clustering, association rules and application of data mining tools for discovering new knowledge from large datasets.

Course Number: 4360
Credit Hours: 3
Title: Software Engineering

Course Description:
Systems analysis, software requirements analysis and definition, specification techniques, software design methodologies, performance measurement, validation and verification and quality assurance techniques.

Course Number: 4361
Credit Hours: 3
Title: Secure Software Engineering

Course Description:
This course covers five main secure software engineering topics, such as security, defensive programming, reliability, program understandability and programmer misconception.

Course Number: 4363
Credit Hours: 3
Title: Cybersecurity: Systems

Course Description:
This course provides a hands-on study of various attacks and defending techniques on computer software and hardware, including malware, OS security, web security, smartphone security and hardware security. Basics of C programming, OS and HTML will also be covered.

Course Number: 4364
Credit Hours: 3
Title: Internet of Things

Course Description:
This is an introductory course to the Internet of Things (IoT). The course provides an overview of three key modules for IoT: sensing, networking, and applications. It involves the study of the impact of existing wireless and mobile network architectures on different IoT designs and further focuses on those distinct characteristics that require a fundamental redesign. Protocols for medium access control, routing, and reliable transport, in addition to middleware and applications custom-made for IoT, will be dealt with.

Course Number: 4365
Credit Hours: 3
Title: Data Science and Big Data Aalysis

Course Description:
This course is intended for students who are interested in data science and big data analysis. It includes an introduction to data science, data analytic methods, big data, and R programming language. The course focuses on concepts, principles, methods, tools and practical applications.

Course Number: 4370
Credit Hours: 3
Title: Artificial Intelligence

Course Description:
Introduction to concepts and ideas in artificial intelligence. Topics include search techniques, knowledge representation, control strategies and advanced problem-solving architecture.

Course Number: 4375
Credit Hours: 3
Title: Machine Learning

Course Description:
This course is an introduction to machine learning, the study of how to make a machine change its actions automatically to improve its performance.

Course Number: 4380
Credit Hours: 3
Title: 3D Modeling for Computer Graphics

Course Description:
This introductory course in three-dimensional (3D) modeling covers techniques for creating content designed for use in real-time computer graphics applications using appropriate software with particular emphasis on computer games. Topics include mathematical foundations, 3D file formats, creation and modification of 3D geometric shapes, surface texturing, lighting, rendering and a survey of current software tools and techniques.

Course Number: 4381
Credit Hours: 3
Title: 3D Animation for Computer Graphics

Course Description:
This introductory course in three-dimensional (3D) animation covers techniques for programming in C++ and creating content designed for use in real-time computer graphics applications using appropriate software with particular emphasis on computer games and character animation. Topics include rigid versus non-rigid body animation, skeletal techniques, morphing, kinematics, animation blending, key framing, time coding, motion capture, lip sync, synchronization methods, file formats and a survey of current software tools and techniques. It is recommended that students complete CPSC 4380 prior to taking this course