Computer Science (CS)

CS 300. Data Modeling using R. 3 Hours.

This undergraduate course introduces students to data modeling techniques using R, focusing on regression analysis, classification, and clustering methods. Students will learn to preprocess data, build models, evaluate performance, and interpret results. Practical applications are emphasized through hands-on projects and case studies. Topics include data cleaning, exploratory data analysis, linear and logistic regression, decision trees, k-nearest neighbors, k-means clustering, and model evaluation metrics. The course also covers advanced topics such as principal component analysis and time series forecasting. Students will utilize R and RStudio for data analysis and visualization, culminating in a final project. Math requisites should be completed before signing up for this course.

CS 305. Data Structures. 3 Hours.

This course emphasizes the organization of information; the implementation of common data structures such as lists, stacks, queues, trees, and graphs; and techniques of data abstraction, including encapsulation and inheritance. Instructors administer mini-labs and programming assignments. Assignments will focus on the design, implementation, testing, and evaluation of various data structures. Prerequisite: CS 332.

CS 310. Analysis of Algorithms. 3 Hours.

This course introduces basic elements of the design and analysis of computer algorithms. Topics include methods of algorithms description, proving of their correctness, asymptotic notations and analysis, recursion, divide and conquer, and examples of the efficient algorithms design in signal processing. For each topic, besides in-depth coverage, students will discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students must gain substantial discrete mathematics problem-solving skills essential for computer engineers. Prerequisite: COSC 1321 or MATH 2305.

CS 316. Web and UI Design. 3 Hours.

The course provides the student with an understanding of web page creation using HTML5, CSS, JavaScript, and Ajax. Students will learn how to create hyperlinks, headings, lists, tables, formatting, and images using HTML5 and CSS. Students also learn how to validate form, control cookies, make special effects using JavaScript, and apply Ajax technology to create user interaction. Prerequisite: COSC 1315.

CS 332. C++ Programming. 3 Hours.

This course introduces students to C++ programming language, a dominant language in the industry today. Students will be taught the fundamentals of programming. These concepts are applicable to programming in any language. Topics covered include basic principles of programming using C++, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers, and introduction to classes for programmer-defined data types. Frequent homework and lab assignments will be given during class.

CS 352. Java Programming I. 3 Hours.

This course teaches the basics of Java programming, the foundations of object-oriented programming, and the process of building a project in a modular fashion. Java programming provides an overview of programming concepts, design, and an introduction to coding using the Java language. This course has a focus on creating working computer programs in Java. It will address fundamental concepts of analysis, design, and testing and code development. These include flowcharts, Boolean logic, control flow, data types and structures, variable arrays, functions, and pointers. This course will prepare students for focused studies in any programming language. The student will also learn how to enter, compile, link, and run a computer program using the Java language in a Windows or equivalent environment. Instructors will introduce structured programming through techniques for solving business, engineering and scientific problems. Laboratory exercises will provide practice in writing programs and will reinforce basic programming concepts, logic flow, and structured design.

CS 353. Java Programming II. 3 Hours.

This course teaches the advanced concepts in Java programming, building further upon the foundations of object-oriented programming in CS 352. The focus will be on systems development and deployment using Java platform and the advanced concepts in analysis, design, and testing will be addressed in the course, which includes Strings and Characters, File handling, Input/Output Streams, Java Generics in detail, Lambdas and streams, Recursion, Searching and sorting, Concurrency issues, and accessing databases using JDBC. Prerequisite: CS 352.

CS 355. Python Programming. 3 Hours.

This course will provide a broad introduction to Python's major built-in object types such as numbers, lists, and dictionaries. Creating and processing objects with Python statements, and Python's general syntax model. Using functions to avoid code redundancy and package code for reuse. Organizing statements, functions, and other tools into larger components with modules. An introduction to classes, Python's object-oriented programming tool for structuring code. Writing large programs with Python's exception-handling model and development tools, and learning advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing.

CS 360. Artificial Intelligence. 3 Hours.

This course will introduce the basic principles of artificial intelligence (AI) and its applications. The class will begin by discussing ways to represent knowledge about the world through logic and how to reason logically with that knowledge. The students will learn general principles of rule-based expert systems. Instructors will introduce and analyze techniques, which allow reasoning under uncertainty. Students will consider Bayesion networks and other probabilistic reasoning models. Students will observe basic principles of the learning theory and consider real world applicaitons of AI, such as expert-based systems and natural-language representation. Prerequisite: COSC 1315.

CS 361. Database Systems and Design. 3 Hours.

This course provides the basic concepts of management of database systems. The cousre emphasizes understanding the various database management functions and providing database support for the organization. Topics include types of database models, database design, entity-relationship diagrams, normalization, database-management systems, administration of database security, error recovery, concurrency control, and distributed-database systems. This course focuses on the design of a database starting from the conceptual design to the implementation of a database schema and user interfaces to the database. The course is heavily design oriented. In most of the projects, students have to design and implement a database using a commercial database management system and associated development tools. Students will learn the database query language SQL and the development of applications using PL/SQL. Students use Oracle 10g (SQL, PL/SQL) and SQL Server 2005 database software in this course. Laboratory exercises provide practice in writing programs and reinforce concepts. Cross-listed with MIS 361. Credit for both MIS 361 and CS 361 cannot be awarded.

CS 362. Systems Analysis and Design. 3 Hours.

Study of the methodology for analysis and design of a business information system. Emphasis on critical analysis of existing systems and design of computer based systems. A systems analysis project is required. Cross-listed with MIS 362. Credit for both CS 362 and MIS 362 cannot be awarded. Prerequisite: Computer Literacy, or consent of instructor.

CS 363. Data Mining Using AI & Machine Learning. 3 Hours.

This course provides the basic concepts of neural networks and machine learning including but not limited to biological foundations of neuronal morphology, machine learning concept and its fundamentals, basics of neural information processing, artificial neuron and its activation functions, multilayer feed forward neural networks and back propagation learning, Hopfield neural networks and associative memories, neuro-fuzzy and kernel-based networks, and support vector machines. Laboratory exercises provide experience with design and utilization neural and other machine-learning algorithms using MATLAB and solving real-world classification, prediction, and pattern recognition problems. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315 or ENGR 1201.

CS 367. Systems Design & Software Engineering. 3 Hours.

This course will offer a wide perspective on software design, stages of software development, design of software documentation, and development including requirements analysis, technical design, estimating, programming style, testing and quality, management, and maintenance. A part of the course is a software project, which students shall design.

CS 370. Programming Language Design. 3 Hours.

This course explores the design of high-level languages, criteria for language selection, specification techniques for syntax and semantics, trends in high-level language design, and introduction to programming in LISP. Prerequisite: CS 332.

CS 380. Automata Theory. 3 Hours.

This course is a study of the basic types of abstract languages and their acceptors, the Chomsky hierarchy, solvability and recursive function theory, and application of theoretical results to practical problems. Prerequisite: COSC 1321.

CS 390. Ethics in Technology. 3 Hours.

This course examines ethical issues and moral problems that engineers, computer scientists, and information technology professionals face. This course covers issues such as moral and ethical relevance, professional responsibilities, privacy, intellectual property, risks, and liabilities. Students review case studies of ethical conflicts in work environment and resolve theoretical situations through the application of ethical codes.

CS 400. Advances in Artificial Intelligence. 3 Hours.

This course explores advanced topics in artificial intelligence, building upon foundational knowledge to examine cutting-edge techniques and their real-world applications. Students will delve into areas such as deep learning architectures, reinforcement learning, natural language processing, and computer vision. Emphasis is placed on practical applications through hands-on projects, enabling students to develop AI solutions for real-world problems. By the end of the course, students will have a comprehensive understanding of advanced AI methodologies and their ethical considerations, preparing them for careers in AI development and research.

CS 401. Artificial Neutral Networks. 3 Hours.

This undergraduate course introduces students to the fundamentals of neural networks, covering topics such as perceptrons, multi-layer networks, and backpropagation. Students will explore various architectures and their applications. The course emphasizes hands-on experience with deep learning frameworks like TensorFlow or PyTorch, enabling students to implement and train models. Assessment includes quizzes, coding assignments, exams, and a final project, providing a comprehensive understanding of neural network theory and practical implementation. Prerequisite: CS 355.

CS 410. Operating Systems. 3 Hours.

This course covers the principles and concepts that govern the design of modern computer operating systems. This course covers managing computing resources such as the memory, the processor, and the Input/Output devices. The course also covers algorithms for CPU scheduling, memory and general resource allocation, process coordination and management, and case studies of several operating systems. Operating systems also manage the authentication, accounting, and authorization aspects in a multi-user system. Students will explore issues and limitations imposed on a computing environment by the choice of different operating systems. Prerequisite: CS 332.

CS 420. Computer Networks. 3 Hours.

Students learn the basic computer networking concepts including ISO/OSI and TCP/IP reference model for networking protocols. The topic covers network architectures, communication protocols, physical media, error control, data link control, medium access control, local area networks, network layer, congestion control, and introduction to virtual circuit and datagram network. The course will also include the case studies and lab assignments for existing networks and network architecture. Prerequisite: COSC 1315 or ENGR 1201.

CS 430. Mobile App Development. 3 Hours.

The course provides the student with a strong foundation in Java programming and the confidence to build successful mobile applications. Students will learn how to use the basic functionalities including user input, variables, operations, decision-making controls, lists, arrays, and Web Browsers. Students also learn how to implement audio, display pictures, and create animation and graphics in Android apps.

CS 431. Internship in Computer Science. 3 Hours.

The internship is a work experience that will allow the student to develop skills, gain hands-on business experience, and test career choices and options. The internship will complement and validate the student's academic training.

CS 465. Computer Security. 3 Hours.

This course will provide a broad introduction to host-based and Internet-based computer security. Topics covered include an introduction to cryptography, authentication protocols, access control, database security, intrusion detection, malicious software such as worms and virus propagation, and techniques to secure the Internet such as firewalls, intrusion detection systems, and Web and IP security.

CS 467. Image Processing and Computer Vision. 3 Hours.

This course provides the basic concepts of image processing and computer vision including but not limited to image sensing and acquisition, visual perception, image enhancement (mostly spatial domain image enhancement, but some essential elements of the frequency domain enhancement will be considered), image filtering in spatial and frequency domain, edge detection and image segmentation, elements of morphological image processing, elements of image restoration, image understanding and recognition, elements of color image processing. Laboratory exercises provide experience with design and utilization image processing algorithms using MATLAB and solving real-world problems in medical and satellite image processing, in old images restoration and in digital photography. Students will program different algorithms and use their programs for processing real images. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315 or ENGR 1201.

CS 471. Network Security and Policy. 3 Hours.

This course will provide a broad introduction to attack strategies in the cyber security kill chain, learning how to enhance defensive strategies by improving security policies, hardening networks, implementing active sensors, and leveraging threat intelligence. Learning how to perform an incident investigation, gaining an in-depth understanding of the recovery process, understanding continuous security monitoring and how to implement a vulnerability management strategy. Learning how to perform log analysis to identify suspicious activities.

CS 472. Digital Forensics, Law, and Ethics. 3 Hours.

This course will provide a broad introduction to a comprehensive and integrative introduction to cybercrime. It provides an authoritative synthesis of the disparate literature on the various types of cybercrime, the global investigation and detection of cybercrime and the role of digital information, and the wider role of technology as a facilitator for social relationships between deviants and criminals.

CS 474. Computer Game Programming. 3 Hours.

An introduction to game development for students interested in the technical aspects of making computer games. This course provides the technical and mathematical background to develop a 2D and 3D style games using JavaScript and HTML5, with brief introduction to other high-level languages and their applicability to game development. During the course, students will be introduced to modern game platforms, and the effect of their differences, evolution, and limitations, on game programming. In addition, students will learn the rudiments of game design and the common work flow practices within the industry. Prerequisites: COSC 1315 and CS 310.

CS 480. Innovation Lab. 1 Hour.

This lab course explores the creative approaches of recent and historic innovations in computer science, business, and technology. Through a case study approach, this course cultivates intentional and systematic competencies in students in order to develop innovation leaders capable of solving problems in technology and business settings. Students will draw insights from the most innovative and successful organizations to explore their approaches. Students will also examine the role of failure in innovations throughout history using foundational creative-thinking concepts.

CS 481. Software Project Management. 3 Hours.

This course will provide a broad introduction to basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk. Also covered are relevant topics from CMMI-DEV-v1.2, IEEE/ISO Standards 12207, IEEE Standard 1058, and the PMI Body of Knowledge.

CS 482. Parallel Modeling and Simulation. 3 Hours.

This course will provide a broad introduction to mathematical/computational modeling and analysis developed in the emerging interdisciplinary field of Complex Systems Science. Complex systems are systems made of a large number of microscopic components interacting with each other in nontrivial ways. Many real-world systems can be understood as complex systems, where critically important information resides in the relationships between the parts and not necessarily within the parts themselves.

CS 483. User Design Methodology. 3 Hours.

This course will provide a broad introduction to principles, techniques, and best practices needed to build user experiences for the web, mobile devices, and desktop environments. Coverage includes the entire process, from user personas and stories through wireframes, layouts, and execution. Also addressed are key issues such as telemetry and security implicit in User Design. Resources and artifacts covered include case studies, sample design documents, and UX testing plans.

CS 484. DevOps and Software Testing. 3 Hours.

This course will provide a broad introduction to software metrics. The course will cover material relevant to object-oriented design, design patterns, model-driven development, and agile development processes. It includes coverage of causal models and Bayesian networks and their application to software engineering. Recent research incorporating findings relevant to the latest software metrics activities, industrial case studies, and standards will be covered.

CS 485. Capstone in CS. 4 Hours.

The aim of the capstone project in the senior year of Computer Science majors is to familiarize them with the process of solving real-world computational problems as practiced in industry. This course requires students to develop a project based on the knowledge and skills acquired in earlier coursework and integrate their technical knowledge through practical design effort. The work can be performed as a team work or can be performed as an individual project design.

CS 489. Individual Study. 3 Hours.

This course provides individual instruction. Students may repeat the course when topics vary.

CS 490. CS Senior Design I. 3 Hours.

This course is taken by seniors as the first part of the senior design experience in the semester before CS 491. Projects may involve the design of an algorithm, or a software and/or hardware system and topics covered may include the design process, project planning and management, and project costs, and includes aspects of ethics in computer science design, safety, environmental considerations, economic constraints, liability, manufacturing, and marketing. Projects are carried out using a team-based approach and selection and analysis of a design project to be continued in CS 491 is carried out. Written progress reports, a proposal, a final report, and oral presentations are required. Cross-listed with EE 490 and MGT 490. Credit can only be awarded for one course. Prerequisite: Junior or Senior classification.

CS 491. CS Senior Design II. 3 Hours.

Projects involving the design of a device, circuit system, process, or algorithm that have started in the previous semester will be completed. Team solution to an computer science design problem as formulated and initiated in CS 490 will continue to take place. Written progress reports, a final report, design manuals, and oral presentations are required. Cross-listed with MGT 491 and EE 491. Credit can only be awarded for one course. Prerequisite: CS 490; open only to Computer Science majors.

CS 495. Computer Science Capstone. 3 Hours.

The goal of the CS capstone course is to produce noteworthy projects and research worthy of, and leading to, academic and commercial publications, projects, grants and funding, employment opportunities, as well as subsequent development of the original idea for further academic study. Individual or group projects are possible, however individual efforts are encouraged. Students embark by formulating a project or research idea by applying brainstorming techniques. The project is then executed following the five section research model with includes: idea draft, literature review, methodology description, results explanation, and conclusion/future work sections. Each section area must be executed, completed and submitted successfully for the project effort to receive a satisfactory grade. However, projects can and do fail, or turn out to be infeasible. Project failure or infeasibility is an acceptable outcome while still receiving credit. Further, students also are required to study and learn about computer science technical writing and presentation techniques, as elaborated on in the required textbook. Periodic student presentations and instructor reviews are required during the course timeline, as well as agreed upon milestones for project completion. Prerequisite: Senior Classification.

CS 497. Special Topics. 3 Hours.

Instructors will provide an organized class designed to cover areas of specific interest. Students may repeat the course when topics vary. Prerequisite: Instructor permission.

CS 499. Independent Research. 1-6 Hours.

Independent research in Computer Science conducted by a student under the guidance of a faculty member of his or her choice. The student is required to maintain a research journal and submit a project report by the end of the semester and potentially make an oral presentation on the project. SCH and hours are by arrangement and, with a change in content, this course may be repeated for credit. Prerequisite: Consent of instructor.

CS 501. Computer Science - Theory and Foundations. 3 Hours.

This course explores the mathematical underpinnings of computing, focusing on formal languages, automata theory, and the limits of computability. Students analyze complexity classes such as P vs. NP, state machines, and the theoretical efficiency of algorithms to understand what can be solved computationally and what remains intractable. The curriculum dives deep into the Church-Turing thesis and explores the role of logic and set theory in defining modern programming paradigms. By investigating Gödel’s incompleteness theorems and decidability, students develop a rigorous framework for evaluating the foundational constraints of any information system.

CS 508. Technical Writing and Presentation. 3 Hours.

This course develops advanced written, oral, and visual communication skills essential for computing, information systems, data analytics, and technology professionals. Students learn to prepare technical reports, research papers, proposals, project documentation, and professional presentations for diverse audiences. Emphasis is placed on clear communication of complex technical concepts, data-driven storytelling, scholarly writing, and effective presentation techniques for academic, industry, and executive settings.

CS 510. Advanced Operating Systems. 3 Hours.

Moving beyond the basics, this course covers internal OS mechanisms such as distributed scheduling, file system design, and virtualization. It includes studying research papers on kernel design, high-performance concurrency, and hardware resource management in a multi-tenant cloud environment. Students explore the intricacies of inter-process communication (IPC), deadlock prevention, and memory virtualization techniques like paging and segmentation. The course also addresses modern security concerns at the kernel level, such as protection rings and isolation, ensuring students can design systems that are both fast and secure against low-level exploits.

CS 512. Information Systems & Data Analytics. 3 Hours.

Designed for business analysts, this course introduces logic and structured programming to automate repetitive data tasks and streamline workflows. It bridges the gap between raw business requirements and technical execution by teaching foundational concepts like variables, loops, and conditional branching. Students learn to script basic automation tools and manipulate spreadsheets or CSV files programmatically. The syllabus emphasizes readable code and logical problem-solving, enabling non-technical managers to communicate effectively with development teams and build their own "citizen developer" solutions.

CS 515. Foundations of AI/ML. 3 Hours.

An introduction to the core mathematical and philosophical concepts of AI, including search algorithms, knowledge representation, and the mechanics of neural networks. It provides the "why" behind modern machine learning models by exploring probability theory, linear algebra, and optimization techniques like gradient descent. Students build a strong theoretical foundation in how machines "learn" from data and explore the history of AI from symbolic logic to modern deep learning. The course also addresses the ethical implications of AI, including transparency, accountability, and the impact of automation on the future of work.

CS 520. Computer Networks and Security. 3 Hours.

This course offers a comprehensive, graduate-level treatment of computer networks, with a strong emphasis on security principles, protocols, and practices. Students will explore the fundamental architectures, protocols, and algorithms of modern wired and wireless networks, from the physical layer to advanced application-level services. Building on this foundation, the course will dive into a variety of advanced security topics, including applied cryptography, threat modeling, and defensive strategies for securing networks, systems, and applications.

CS 540. Computer Architecture. 3 Hours.

This course examines the design of modern computer systems, including instruction set architectures, pipelining, memory hierarchies, and I/O subsystems. Students learn how hardware configurations impact software performance and system scalability, with a focus on CPU design, cache coherence, and parallel processing. The syllabus often covers the evolution from RISC to CISC architectures and explores how multicore systems handle instruction-level parallelism. Through performance benchmarking and Amdahl's Law, learners gain a quantitative perspective on how architectural bottlenecks in the motherboard and bus system can limit even the most efficient software.

CS 550. Data Structures and Search Algorithms. 3 Hours.

A deep dive into organized data storage and retrieval, covering advanced structures like balanced trees (AVL, Red-Black), hash tables, and complex graphs. It emphasizes the algorithmic complexity and performance trade-offs of searching and sorting in large-scale data environments, teaching students how to optimize for both time and space constraints. Beyond basic lists, the course explores priority queues, heaps, and advanced graph traversal techniques such as Dijkstra’s algorithm and A* search. Students also practice implementation details such as memory management and recursion to build robust, high-performance data processing engines.

CS 561. Advanced RDBMS and Data Warehousing. 3 Hours.

Students master advanced SQL, query optimization, and the design of dimensional models for data warehouses. The curriculum covers ETL (Extract, Transform, Load) processes, OLAP vs. OLTP, and emerging NoSQL technologies for handling high-velocity big data. Key concepts include star and snowflake schemas, indexing strategies, and materialized views to accelerate complex business intelligence queries. The course also addresses data governance and quality, ensuring that the central data repository serves as a "single source of truth" for organizational decision-making and long-term historical analysis.

CS 584. Agile Methodologies and DevOps. 3 Hours.

This course covers modern software delivery, focusing on the Agile manifesto—including Scrum and Kanban—and the technical DevOps pipeline (CI/CD). It emphasizes the cultural and technical shift required for rapid system deployment, automated testing, and infrastructure-as-code. Students learn to use project management tools such as Jira and deployment tools such as Jenkins or GitLab CI. The syllabus highlights the importance of collaboration between development and operations teams to reduce "time-to-market" while maintaining high system uptime and security in a continuous delivery environment.

CS 588. Distributed Systems and Cloud Computing. 3 Hours.

This course investigates the architecture of systems that span multiple networked computers, focusing on consistency, fault tolerance, and global scalability. It explores cloud paradigms such as IaaS, PaaS, and SaaS, as well as distributed frameworks such as Spark and Hadoop. Students grapple with the CAP theorem and learn to implement distributed consensus algorithms such as Paxos and Raft. The curriculum also covers containerization with Docker and orchestration with Kubernetes, providing a modern toolkit for deploying elastic applications that can handle millions of concurrent users across geographically dispersed data centers.

CS 595. Capstone Project. 3 Hours.

The final synthesis of the degree is where students apply their complete set of analytical and technical skills to a real-world business or research problem. This involves the full project lifecycle: data acquisition, cleaning, model building, and presenting a final working solution to faculty or industry stakeholders. Students must document their process, justify their architectural choices, and demonstrate the business value of their findings. The project serves as a professional portfolio piece, showcasing the student's ability to manage a complex, multi-month initiative from conception to successful deployment.

CS 599. Independent Research. 1-6 Hours.

Independent research in Computer Science conducted by a student under the guidance of a faculty member of his or her choice. Credits and hours are by arrangement and, with a change in content, this course may be repeated for credit. Prerequisite: Consent of instructor.