Computer Science (CSCI)
This course covers computer science topics including computer operating systems and architecture, algorithms, networks, ethics, cyber security, and databases. The course will be taught by applying a variety of tools and standards to illustrate these concepts.
The course introduces students to the concepts and practices of computational thinking, coding, and software development process using contemporary computer programming language. Credit hours from this course cannot be applied toward a degree in computer science or information technology.
The course includes an overview of computers and programming: problem-solving and algorithm development; simple data types; arithmetic and logical operators; selection structures; repetition structures; text files; arrays (one-and two-dimensional); procedural abstraction and software design; modular programming (including subprograms or the equivalent). A high level programming language will be used.
The course includes an overview of abstract data types (ADTs); arrays (multi-dimensional) and records; sets and strings; binary files; searching and sorting; introductory algorithm analysis (including Big-O); recursion; pointers and linked lists; software engineering concepts; dynamic data structures (stacks, queues, trees). A high level programming language will be used.
This course is designed to expose students to computer science concepts within the context of engineering disciplines, and includes the general principles of programmatic and data abstraction testing, debugging and problem solving. The course addresses variables and data types, logical expressions, arrays, strings, file I/O, conditional statements, repetition and recursion, functions and procedures, scoping issues plotting in two and three dimensions, manipulating media, data structures and sorting searching algorithms. A high-level language will be used.
This course offers exploration of digital security, aiming to teach students with the essential knowledge and skills to navigate the intricate digital world. It examines cybersecurity's basic principles, theories, threats and protective measures with practical real-world applications. Students will apply cybersecurity knowledge and critical thinking in safeguarding personal data, financial assets, and vital infrastructure.
This course covers basic terminology, genre, playability, and social issues related to computer games.
Prerequisites: CSCI 1302
This course covers terminology, genre, playability, and social issues related to computer games; compiling and executing sample programs written utilizing graphics Application Programming Interface (API) such as OpenGL and DirectX.
Prerequisites: CSCI 2101
This course is a systematic study of the main data structures of computer science: arrays, stacks, queues, linked lists, trees, graphs, hash tables. Implementation and analysis of the algorithms and programming techniques for searching, sorting, inserting into, and deleting from these structures; efficiency considerations.
This course is a study of the organization and architecture of computer systems, beginning with the standard von Neumann model to more recent architectural concepts. Topics include digital logic, data representation, assembly language, multiprocessor systems, and contemporary architectures.
This course focuses on the knowledge and skills students need to succeed in their careers and function competently in the workplace. Students will study theories and practices related to the social, ethical, and professional issues facing computing and computing professionals. Students will apply professional codes of ethics to case studies by investigating current issues. Students will also begin construction of a digital portfolio representing skills acquired and projects completed.
Prerequisites: CSCI 2302
This course covers modern computer game design and programming techniques including real-time event- driven and multimedia programming techniques.
This course introduces students to the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts. Topics include digital logic, data representation, assembly language, multi- processor systems, and contemporary architectures.
Prerequisites: CSCI 1302
This course is a conceptual and hands-on study of operating systems; operating system design and theory including process/processor, memory, file, I/O and networking management; evaluation of system requirements.
This course covers Network systems including transmission media, packet transmission, circuit / packet switching technology, LAN technology and network topology, TCP/IP, internetworking; Network applications and security issues are investigated. An overview of LANs, WANs, data communication, and routing methods will be provided using software simulation tools.
This course covers database modeling drawing distinctions between data modeling, process modeling, and implementation. Topics include Entity- Relationship Modeling, Relational Database Modeling to include Relational Algebra and Normalization and Object Modeling and Object Databases. Implementation topics include SQL, PL/SQL, and database access using Web interfaces.
Prerequisites: CSCI 2302
This course covers analysis of system requirements, software systems design techniques, software processes, software life-cycle models, software economics, configuration management, user interfaces, software testing, and software maintenance. Students gain experience in the team approach to medium-scale system development. Ethical issues related to software design are discussed.
This course covers the concepts of syntax and semantics of grammars and languages. It includes the study and comparison of the organization and major constructs of various programming language paradigms, with in-depth study of several specific languages. Language Implementation and compiler/interpreter-related issues are addressed.
Prerequisites: CSCI 2302
This course is a conceptual and hands-on study of operating systems. Major areas discussed include: operating system design and theory, applications and management issues, microcomputer and multi-user systems, including networks and min/mainframe systems. Also covered: files, I/O, memory and process/processor management, networking, evaluation, tuning and application execution.
Prerequisites: CSCI 3303 and MATH 3420 (may be taken concurrently)
This course covers software security analysis and quality assurance, emphasizing testing methodologies. Topics include: code analysis, static and dynamic analysis techniques, sandboxing, test strategies, test planning, functionality testing, stability testing, and debugging techniques.
The course covers advanced topics in databases such as data mining, data warehousing, parallel and distributed databases, Web and Cloud databases, NoSQL databases, and graph databases.
Prerequisites: CSCI 3310
The course introduces students to a broad range of concepts, techniques, and tools for analyzing and visualizing data at scale, emphasizing on combining computation and visualization to perform effective analysis. Both theory and applications will be covered including several practical case studies.
Prerequisites: CSCI 3310
This course covers advanced techniques in game programming, including graphics game engines, motion generation, and issues in multi-user interaction.
This course is an introduction to computer graphics and graphics systems, including: graphics hardware, 2D rendering, 2D and 3D transformations, animation, illumination, and modeling. Additional topics include user interface and interactive inputs.
This course covers UNIX (Linux) and C/C++ standards, file I/O, file access and attributes, directories, the standard I/O library, systems administration files, the process environment, process control, process relationships, signals, terminal I/O, daemon processes, interprocess communication, and pseudo terminals. Also included are relevant topics in Unix (Linux) system administration
Prerequisites: CSCI 3305
This course covers the design and implementation of protocols and the vulnerabilities and risk associated with these implementations. Other topics include Cryptographic techniques and algorithms. Design and implementation of network routing protocols and security architecture will be done using software simulation tools.
Prerequisites: CSCI 3306
This course is an introduction to artificial intelligence and machine learning. Topics include intelligent system design methodologies, search and problem solving, supervised and reinforced learning.
The course introduces students to contemporary parallel and distributed computing platforms, such as the Cloud, Automata Processors, and GPGPU. The topics include both concepts on computational models and programming skills required for harvesting computational powers.
This course is an advanced in-depth study of indexing, security, query processing, transactions; introduction to data warehousing; parallel and distributed databases.
Prerequisites: CSCI 3310
This course covers the acquisition, development and production of media elements such as graphics, animation, audio, video, virtual space and simulations. Students will integrate content with functional design criteria and organize the major and minor components of a multimedia production project. Cross-listed with ITMM 4404.
Prerequisites: (CSCI 3303 )) )
This course covers design and interfacing of computer input and output systems. Standard (mouse, keyboard, joystick, etc.) and new (head trackers, music controllers, gloves, etc.) input devices. Output mediums will include graphics, music, and 3-D sound. Hands-on laboratories and independent projects will be required.
Prerequisites: CSCI 3320
This course covers the concepts of cluster and grid computing. Topics include communication, application, and management of technologies that make cluster and Grid computing possible.
Prerequisites: CSCI 3305
This course covers computer operating systems, such as UNIX and Linux, systems programming, systems administration, and operating systems hardening.
This course covers software development methods for large-scale software systems, management of software development projects, and software engineering standards. Students are expected to complete a large-scale software project. This course is considered the capstone course. Ethical issues related to software development are discussed.
This course is a study of the main areas of theoretical computer science and their hierarchical interconnections. Basic results relating to formal models of computation are studied, with emphasis on grammars and languages, finite automata, Turning machines, and computational complexity.
Prerequisites: CSCI 3333
This course covers analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.
Prerequisites: CSCI 3333
This course is designed for students who want to carry out special research and investigations in CS at the senior level. Topic and method of procedure must have approval of the supervising faculty member.
Prerequisites: CSCI 3320
Students will work under supervision with industry to apply knowledge aligned to program outcomes in computer science. A minimum of 200 work hours is required and course deliverables will be aligned with the student experience. The internship project must be approved prior to beginning the internship.
Prerequisites: CSCI 3300
This is an advanced course in database modeling drawing distinctions between data modeling, process modeling and implementation. Topics include Entity-Relationship Modeling, Semantic-Object Modeling, Relational Algebra, Normalization and Relational Database Modeling, Object Databases and Object Modeling. Additional topics include SQL, PL/SQL, procedures functions, packages and triggers.
Prerequisites: CSCI 3503
This is an advanced course in the specification and development of complex data structures. Programming projects address the cross-platform nature required of today's business solutions, with emphasis on the graphical user interface and development of custom controls. Object oriented design and programming will be stressed. Project teams will manage a software development project using a variety of tools and techniques.
Prerequisites: CSCI 3503
This course introduces students to mobile computing and mobile application development. The course presents an overview of various mobile computing applications, technologies, and wireless communication. Additional topics include mobile application frameworks and development environments; mobile security; and mobile user interface, user experience and application development guidelines. Students will be expected to learn at least one mobile application development framework and use it to implement course assignments.
Prerequisites: CSCI 3306
This course is designed to cover current topics of interest in Computer Science. Prerequisite: permission of instructor and department.
This course provides students with an understanding of database technology and its application in managing data resources and business intelligence. Database design and data retrieval will be introduced. Fundamental concepts of business intelligence, such as classification, clustering, association analysis, and anomaly/novelty detection.Database management tools will be used to illustrate these concepts and their applications.
Prerequisites: MATH 1401 and BUSA 3101
The course covers data analytics to ensure that visualizations add to effective interpretation and explanation of underlying linked business data. By using a variety of tools, the course will demonstrate how effective visualization and design can detect trends and patterns connected to events leading to the discovery of otherwise abstruse relationships and interrelationships.
Prerequisites: MATH 1401 and BUSA 3101
Topics of interest in Computer Science not covered in currently listed courses.