Computer Science (CSCI)

CSCI 1100. Applied Computing (3) 

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.

CSCI 1300. Computational Thinking& Coding (3) 

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.

Prerequisites: ENGL 1101 (may be taken concurrently) and MATH 1101 (may be taken concurrently)

CSCI 1301. Computer Science I (3) 

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.

Prerequisites: MATH 1101 or MATH 1111 or MATH 1113 or MATH 1501 or (CPTE with a score of 095 and CPTC with a score of 050)

CSCI 1302. Computer Science II (3) 

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.

Prerequisites: CSCI 1301 or CSCI 1371 or ITFN 1303 or WBIT 1310

CSCI 1371. Computing for Engineers (3) 

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.

Prerequisites: MATH 1112A or MATH 1112 or MATH 1113 or MATH 1501

CSCI 2101. Game Analysis I (1) 

This course covers basic terminology, genre, playability, and social issues related to computer games.

Prerequisites: CSCI 1302

CSCI 2102. Gaming Analysis II (1) 

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

CSCI 2302. Data Structures and Algorithms (3) 

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.

Prerequisites: CSCI 1302 and MATH 2020

CSCI 2305. Computer Org. & Architecture (3) 

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.

Prerequisites: (CSCI 1302 and MATH 2020)

CSCI 3300. Professional Dev and Ethics (3) 

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

CSCI 3301. Game Design & Programming (3) 

This course covers modern computer game design and programming techniques including real-time event- driven and multimedia programming techniques.

Prerequisites: CSCI 1100 and CSCI 2302 and MATH 2140

CSCI 3303. Comp.Organization/Architecture (3) 

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

CSCI 3305. Operating Systems (3) 

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.

Prerequisites: CSCI 2302 and CSCI 2305

CSCI 3306. Computer Networks & Security (3) 

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.

Prerequisites: CSCI 2302 and CSCI 2305

CSCI 3310. Databases Design & Implement. (3) 

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

CSCI 3320. Software Engineering Design (3) 

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.

Prerequisites: CSCI 3310 and CSCI 3306

CSCI 3333. Programming Languages (3) 

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

CSCI 3503. Operating Systems (3) 

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)

CSCI 3601. SW Security, Testing, and QA (3) 

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.

Prerequisites: (CSCI 1302 or WBIT 2311 or ITFN 2313 or ITFN 2314) and (ITFN 3112 or CSCI 3320)

CSCI 4201. Advanced Topics in Databases (3) 

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

CSCI 4202. Data and Visual Analytics (3) 

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

CSCI 4301. Game Design & Programming II (3) 

This course covers advanced techniques in game programming, including graphics game engines, motion generation, and issues in multi-user interaction.

Prerequisites: CSCI 3301 and MATH 2502 (may be taken concurrently)

CSCI 4304. Computer Graphics (3) 

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.

Prerequisites: CSCI 3301 and MATH 2502 (may be taken concurrently)

CSCI 4305. Unix (Linux) Sys Prog & Admin (3) 

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

CSCI 4306. Comp. Networks & Security II (3) 

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

CSCI 4307. Artificial Intelligence (3) 

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.

Prerequisites: CSCI 2302 and MATH 2502

CSCI 4308. Adv Topics in Par & Dist Comp (3) 

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.

Prerequisites: CSCI 3305 and CSCI 3306

CSCI 4310. Advanced Issues in Databases (3) 

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

CSCI 4314. Multimedia Production & Dev. (3) 

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 )) )

CSCI 4315. Human Computer Interface (3) 

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

CSCI 4316. Cluster and Grid Computing (3) 

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

CSCI 4317. OS Security, Prog, & Admin (3) 

This course covers computer operating systems, such as UNIX and Linux, systems programming, systems administration, and operating systems hardening.

Prerequisites: (CSCI 3305 and CSCI 3306) or (ITFN 3601 and ITFN 2512)

CSCI 4320. Software Engineering Practicum (3) 

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.

Prerequisites: CSCI 3300 and CSCI 3320

CSCI 4333. Theory of Computation (3) 

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

CSCI 4334. Algorithm Design & Analysis (3) 

This course covers analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.

Prerequisites: CSCI 3333

CSCI 4360. Computer Science Research (3) 

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

CSCI 4370. Internship in Computer Science (3) 

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

CSCI 4450. Databases (3) 

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

CSCI 4550. Algorithm Design and Analysis (3) 

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

CSCI 4601. Mobile Software Development (3) 

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

CSCI 4800. Special Topics in Computer Sci (1-6) 

This course is designed to cover current topics of interest in Computer Science. Prerequisite: permission of instructor and department.

CSCI 4810. Bus Data Mgmt & Intelligence (3) 

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

CSCI 4811. Data Analytics & Visual Bus (3) 

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

CSCI 4898. Special Topics in Computer Sci (1-3) 

Topics of interest in Computer Science not covered in currently listed courses.