Computer Science (CS)

CS 100 Computer Information Technologies (3 crs)

• No credit toward computer science major or minor. Not applicable for satisfying B.S. GE-IB requirement in College of Arts and Sciences.

Development and application of appropriate processes and tools to access, organize, evaluate, and communicate information using spreadsheets (MS Excel), word processors (MS Word), databases (MS Access), presentation software (MS PowerPoint), and web-based/internet utilities. Appropriate for students seeking a broader or deeper preparation for efficiently using computer information technologies.

Lecture/Discussion Hours: 2.5

Lab/Studio Hours: 1

CS 140 Introduction to Computer Science (4 crs)

Prerequisite: MATH 109 or concurrent, or placement into MATH 111, MATH 112, MATH 113, MATH 114 or MATH 215.

A comprehensive introduction to the fundamental concepts and principles of computer science. Students will explore key topics such as programming languages, algorithm design, simple data structures, and the software development lifecycle.

Lecture/Discussion Hours: 4

Lab/Studio Hours: 0

CS 150 Object-Oriented Programming (4 crs)

Prerequisite: CS 140. MATH 112 or concurrent enrollment, MATH 113 or concurrent enrollment, or placement into MATH 114 or MATH 215.

Students will explore fundamental object-oriented programming (OOP) principles, including abstraction, encapsulation, inheritance, aggregation/composition, and polymorphism. Through hands-on programming projects and collaborative exercises, students will enhance their skills in creating efficient, scalable, and maintainable software.

Lecture/Discussion Hours: 4

Lab/Studio Hours: 0

CS 163 Introduction to Programming in C++ (3 crs)

• Three years of high school, college preparatory mathematics. No credit for CS majors if taken after or concurrently with CS 140.

A general introduction to the design of computer software. Object-oriented design and implementation techniques including abstraction, encapsulation, and inheritance are emphasized. Applications chosen from mathematics, science, and business are used to demonstrate and motivate understanding of object-oriented programming.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 170 Computing for the Sciences and Mathematics (3 crs)

Prerequisite: MATH 112, or MATH 113, or placement into MATH 114 or MATH 215.

Aspects of computation that are particularly relevant to scientific computation. Discussion of numeric processing, symbolic processing, data management, data representation, and scientific visualization. Students design and implement computer programs.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 255 Data Structures and Algorithms (4 crs)

Prerequisite: CS 150; MATH 314 or may be taken concurrently.

An in-depth study of fundamental data structures and algorithms, focusing on both theoretical foundations and practical applications.

Lecture/Discussion Hours: 4

Lab/Studio Hours: 0

CS 262 Database Systems (3 crs)

Prerequisite: CS 140 or DS 150. No credit if taken after CS 260.

A study of fundamental database concepts including: SQL, database design and normalization, transactions and concurrency, embedded SQL, and stored procedures.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 268 Web Systems (3 crs)

Prerequisite: CS 140

Introduction to programming Web-based applications. Multiple modern Web technologies are covered in depth and compared. Web frameworks, server configurations, and security issues are discussed.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 278 Digital System Design (4 crs)

Prerequisite: Either CS 150 or CS 163, or consent of instructor.

Logic components, Boolean algebra and algorithmic logic simplification, combinational logic analysis and synthesis, synchronous and asynchronous sequential logic analysis and synthesis, finite state machine design, programmable logic and FPGAs, Verilog programming for synthesis.

Lecture/Discussion Hours: 4

Lab/Studio Hours: 0

CS 285 Computer Organization (4 crs)

Prerequisite: CS 150

Provides a foundational understanding of the architecture and organization of computer systems.

Lecture/Discussion Hours: 4

Lab/Studio Hours: 0

CS 291 Special Topics (1-3 crs)

• See current Class Schedule.

An examination of current topical material of special interest to students and faculty.

Repeat: Course may be repeated

CS 318 Fundamentals of Web Page Design (3 crs)

Basic concepts, coding standards, accessibility guidelines, and technologies of client-side Web page design. Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), and techniques for controlling page layout, animations, and user interactions.

Lecture/Discussion Hours: 2

Lab/Studio Hours: 2

CS 319 Introduction to Web Programming (3 crs)

Prerequisite: CS 318. No credit if taken after CS 268.

• No credit toward computer science major requirements.

Introduction to client and server side Web programming. Includes basic programming concepts, user input validation, dynamic Web pages, and data retrieval and display.

Lecture/Discussion Hours: 2

Lab/Studio Hours: 2

CS 320 Web Database Design and Implementation (3 crs)

Prerequisite: CS 318 or concurrent enrollment; CS 319 or concurrent enrollment.

• No credit toward computer science major requirements.

Introduction to databases for Web applications. Architecture, design considerations, and implementation of relational database systems. Web/database application development.

Lecture/Discussion Hours: 2

Lab/Studio Hours: 2

CS 321 Web Design and Development (3 crs)

Prerequisite: CS 320

Analysis, design, and implementation techniques for Web site development. Includes preparation of design documents development, deployment, and testing. Students complete and deploy a comprehensive Web site working with clients and end-users.

Attributes: Service-Learning, Full 30 Hours

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 322 Animation Programming (3 crs)

Introduction to current technical and creative trends in digital animation principles, including real-time, interactive animations, gestural interfaces, and basic motion capture for use in animation and game development.

Lecture/Discussion Hours: 0

Lab/Studio Hours: 3

CS 330 Programming Languages (3 crs)

Prerequisite: CS 150

Study building blocks of modern programming and programming paradigms including functional, imperative, object-oriented, and logical. Emphasis on teaching students how to learn new programming languages. In-depth study of C++ and memory management techniques.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 355 Software Engineering I (3 crs)

Prerequisite: CS 255, CS 262, and CS 268. Credit cannot be earned in both CS 321 and CS 355.

A hands-on experience in software engineering with key aspects of the software development life cycle. Focus is on the application of a high-level development environment to the fulfillment of an object-oriented software design specification. An introduction to modern design patterns.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 370 Computer Security (3 crs)

Prerequisite: CS 285

Study of system, network, database, application and web security. Practical experience with tools for information gathering, vulnerability analysis, system hardening and intrusion detection as used for defending computer systems, culminating in a cyberwar exercise.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 376 Cryptography and Network Security (3 crs)

Prerequisite: CS 255 or DS 250

Basic and advanced cryptographic protocols and techniques. Block and stream ciphers, one-way hash functions, public-key and public-key digital signature algorithms, and key-exchange protocols. Network authentication, secure email, IP SEC, and web security.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 388 UNIX Systems Programming (3 crs)

CS 285 or programming experience in C or C++.

In-depth coverage of the UNIX command shell, file manipulation, process control, file system utilities, mail, pipes and filters, I/O redirection, process management, UNIX editors, scripting language, and shell scripting.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 399 Independent Study - Juniors (1-3 crs)

Prerequisite: Minimum junior standing.

Consent: Department Consent Required

Individual project under the direction of a faculty member.

Repeat: Course may be repeated

CS 425 Machine Learning (3 crs)

Prerequisite: MATH 246; CS 255 or DS 250

This course introduces students to the field of machine learning. Students will learn about the theoretical foundations of machine learning and how to apply machine learning to solve new problems. The course focuses on three major paradigms in machine learning which are supervised learning, unsupervised learning and data visualization.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 426 Deep Learning (3 crs)

Prerequisite: CS 255 or DS 250

This course will introduce students to the foundations of deep learning and how it can be used for a variety of tasks ranging from feature extraction, supervised and unsupervised learning, and sequence modelling. Students will get an opportunity to create state-of-the-art deep learning models using Python programming and TensorFlow framework to make machines think and interpret big data with remarkable precision.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 436 Mobile Software Development (3 crs)

Prerequisite: CS 245

Developing software for mobile devices, designing for interruptions, creating service-oriented architectures, and sensing the physical world.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 450 Theory of Computation (3 crs)

Prerequisite: CS 255

A study of finite automata and regular languages, pushdown automata and context-free languages, Turing machines and recursively enumerable sets, linear-bounded automata and context-sensitive languages, computability and the halting problem, undecidable problems, and the Chomsky hierarchy.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 452 Operating Systems (3 crs)

Prerequisite: CS 285

A study of modern operating system concepts, process/thread structure, process management, scheduling, synchronization. Memory management, virtual memory, caching. Storage and I/O device management. Distributed operating systems and distributed computation.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 455 Computer Graphics (3 crs)

Prerequisite: CS 255

A study of 3-D modeling, rendering, and animation. Modeling includes constructive solids geometry, NURBS, and scene graphs. Rendering includes lighting models, raytracing, radiosity, mapping, and real-time issues. Animation includes keyframing, kinematics, dynamics, collision detection, and AI.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 462 Computer Networks (3 crs)

Prerequisite: CS 255

Fundamental concepts of data transmission, network architecture, data security, error control, routing, switching, and congestion control. Study of network protocols: IEEE 802.x, TCP/IP, ATM, Wireless Internet and Mobile Computing.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 485 Software Engineering II (3 crs)

Prerequisite: CS 355

An application of software engineering principles to a software project developed throughout the semester. Students will work in groups to describe, design, implement, test, and deliver a software product for a client.

Attributes: LE-S3 Creativity, Service-Learning, Full 30 Hours, Capstone Course

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 491 Special Topics (3 crs)

Prerequisite: CS 255

• See current Class Schedule.

An examination of current topical material of special interest to students and faculty. Topics that have been offered include: Analysis of Algorithms, Cryptography and Data Security, Computer Animation, Fuzzy Logic, Advanced Internet Applications, Data Mining, and Computational Biology.

Repeat: Course may be repeated

CS 497 Capstone Project (3 crs)

Prerequisite: CS 355

This course serves as the culminating experience for students in the computer science program, allowing them to apply their accumulated knowledge and skills to real-world problems.

Lecture/Discussion Hours: 3

Lab/Studio Hours: 0

CS 498 Computer Science Internship (1-6 crs)

Consent: Department Consent Required

• A maximum of three credits can be counted as a CS elective.

Practical work experience that extends knowledge gained in prior courses.

Attributes: Capstone Course, Internship

Repeat: Course may be repeated for a maximum of 6 credits

CS 499 Independent Study - Seniors (1-3 crs)

Prerequisite: Minimum senior standing.

Consent: Department Consent Required

Individual project under the direction of a faculty member.

Repeat: Course may be repeated

CS 793 Special Topics in Computer Science (1-3 crs)

Consent: Department Consent Required

Permits groups of graduate students to study topics in the field of computer science.

Repeat: Course may be repeated

Grading Basis: No S/U Grade Option

CS 797 Independent Study (1-3 crs)

Consent: Department Consent Required

Individual project under the direction of a faculty member.

Repeat: Course may be repeated

Grading Basis: No S/U Grade Option