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.
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 focuses on essential ethics and critical thinking skills in the age of artificial intelligence (AI). It covers core themes such as identifying and mitigating bias, applying ethical frameworks to AI development, using critical thinking to combat AI-driven disinformation, and discussing how AI impacts cultures and societies.
This course introduces students to the fundamentals of Artificial Intelligence (AI) and its practical applications in enhancing creativity and productivity across various domains. Students will learn how AI tools and techniques can be leveraged for critical thinking, problem-solving, content creation, automation, and innovation. The course emphasizes hands-on experience with accessible AI technologies, ethical considerations, and real-world use cases.
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 introduces general concepts and techniques in software design and application development. Students will learn and practice several techniques in top-down and bottom-up design along with modulization, integration and deployment of applications.
Prerequisites: CSCI 1301
This course provides an exploration of Generative AI(GenAI) and their applications. The course covers how to effectively use GenAI for content generation, automation, customer interaction, creative assistance, and more. Through practical, hands-on learning, students will gain the ability to apply GenAI such as ChatGPT, Gemini, etc. to real-world challenges from content generation and problem-solving to enhancing business operations and creative processes. Current and future AI applications will be covered in topical seminars.
This course is about the applications of machine learning in artificial intelligence. Focused on using machine learning tools to solve real world problems in fields such as healthcare, business, engineering, and cybersecurity. Topics include data preparation, model selection, model learning, and model evaluation and validation. The students will have hand-on experience with practical machine learning tools and libraries. Current and future AI applications will be covered in topical seminars.
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 aims to provide students with fundamentals of cloud computing concepts, technologies, and applications. Through a combination of theoretical lectures, hands-on exercises, and case studies, students will be able to apply the foundational knowledge and practical skills of cloud computing to configure and deploy cloud computing infrastructures.
Prerequisites: CSCI 1301
This course introduces core knowledge and skills required to develop and design IoT solutions. Through a combination of theoretical lectures, hands-on exercises, and case studies, students will gain exposure to various smart IoT applications, architecture, communication, and protocols.
Prerequisites: CSCI 1301
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.
Prerequisites: CSCI 2302
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.
Prerequisites: CSCI 2302
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 covers the concepts of syntax and semantics of grammars and languages, including the theoretical basis of these constructs. It includes the study and comparison of the organization and major elements 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.
This course covers the fields of enterprise security and privacy. The course deals with the
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 introduces students to the full-stack framework of application development. Students will learn methodologies and technologies for front-end development, back-end development, and management of infrastructure such as database management systems, access authentication and control, deployment platforms and post development operations. Students design, develop and deploy applications using various software architecture patterns, such as Model View Controller (MVC), and relevant frameworks.
This course covers advanced techniques in game programming, including graphics game engines, motion generation, and issues in multi-user interaction.
Prerequisites: CSCI 3301
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.
The course blends deep learning with foundational theory and hands-on practice. Students learn skills needed to design, implement, and critically evaluate modern neural networks. The course progresses through cutting-edge architectures like Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs), Transformers, and Generative Adversarial Networks (GANs), while addressing real-world challenges such as overfitting, bias, and computational efficiency.
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 introduces students to the Cloud concepts and capabilities across the
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
The objective of this course is to introduce students to the problems that system engineers must resolve when integrating systems. In addition, the course will cover some of the solutions to these problems. Topics include information theory; knowledge management; system integration tools and solutions; legal and policy, cultural, social, and ethical issues. Students will integrate various systems applying current solutions.
This course equips students with the knowledge, skills, and insights needed to transform information technologies into innovations and startups. The course emphasizes a blend of theoretical frameworks, practical case studies, and hands-on projects. Students will learn the key concepts, trends, and strategies driving IT innovations and startups.
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.
This course addresses network and web-based security issues in general: network intruders (hackers), security policies and procedures, firewall, encryption, authentication and access control, and viruses. In addition, security issues applied to various LAN and WAN environments are covered. Some cybersecurity topics, such as encryption techniques, electronic payments, secure transactions, secure sockets layer, digital signatures, and auditing, are also covered.
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
This course introduces students to theory and skills in data science. Students will learn data processing, analysis, visualization, and machine-learning. Data science programming languages such as Python and their associated data analysis and machine learning libraries will be covered through hands-on practice. In addition, students will learn to develop products via programming, research, and communicating results.
Prerequisites: CSCI 3310
Topics of interest in Computer Science not covered in currently listed courses.
