2021-2022 Course List
2021-2022
CS
Emerging mobile and wireless data networks technologies covered include standard wireless protocols (e.g., Bluetooth, IEEE 802.11, RFID, and WAP), and development of mobile and wireless applications (e.g., J2ME, WML, Brew). Includes research, design and implementation of a wireless, mobile application.Variable
- Prerequisites:
- CS 320 and CS 350
This course studies the problems, methods, and algorithms of computational geometry. We will focus on the core problems and categories of the discipline: static problems, geometric query problems, and dynamic problems. Some additional attention will be given to numerical geometric problems (e.g., parametric surfaces). Prerequisite: CS 305 and Math 247 or permission of instructor.
- Prerequisites:
- CS 305 and Math 247 or permission of instructor.
This course studies historical and current concepts and implementations of computer operating systems. Basic operating systems topics include processes, interprocess communication, interprocess synchronization, deadlock, memory allocation, segmentation, paging, resource allocation, scheduling, file systems, storage, devices, protection, security, and privacy.Spring
- Prerequisites:
- CIS 223 or EE 395
A laboratory in conjunction with CS 460.
- Prerequisites:
- CS 305, EE 395. Permission of instructor
Study of theory and/or implementation topics related to graphics and visualization such as basic and advanced rendering, geometric modeling, computer animation and visualization. Topics include game programming with concentration on 3D graphics including modeling, rendering, and animation for computer games and graphic simulations. Programs are created using a current graphics and game development environment.
- Prerequisites:
- Admission to major or permission.
Study of theory and/or implementation topics related to human computer interaction such as designing interaction, programming interactive systems, user-centered design and testing, new interactive technologies, collaboration & communication, statistical methods for HCI, human factors and security, design-oriented HCI, and mixed, augmented and virtual reality. This course builds on the use of modern compilers. Related topics covered include lexical scanning, parsing, type checking, code generation and translation, optimization, and compile-time and run-time support for modern programming languages.
- Prerequisites:
- Admission to major or permission.
Study of theory and/or implementation topics related to software engineering such as software processes, project management, requirements engineering, software design, construction, verification and validation, reliability, and formal methods. These relate to advanced programming for general-purpose software development. Topics include tools and processes appropriate for employing object-oriented designs and programming within a significant software development environment and advanced data structures and algorithms, graphical user interfaces, and software development processes.
- Prerequisites:
- Admission to major or permission.
Building upon the introduction provided in CS 300, provides a formal presentation of software engineering concepts. Additional topics include alternative design methods, software metrics, software project management, reuse and re-engineering.Variable
- Prerequisites:
- CS 300, CS 380 and MATH 121
Provides an introduction to software quality assurance with focus on software testing processes, methods, techniques and tools. Topics include formal verification and validation techniques; black box and white box testing; integration, regression, performance, stress, and acceptance testing of software.Variable
- Prerequisites:
- CS 300, CS 380 and MATH 354
Study of topics theory and/or implementation related to the fundamental differences that Platform-Based Development has over traditional software development addressing topics such as Web Platforms, Mobile Platforms, Industrial Platforms, and Game Platforms. Prerequisite: Admission to Major or Permission
Students gain experience working with a team to solve a substantial problem in the field of computer science using concepts that span several topic areas in computer science. Class time focuses primarily on project design and implementation.SpringPrereq: Senior standing and successful completion of all core requirements
- Prerequisites:
- Senior standing and successful completion of all core requirements.
The first in a two-semester sequence of capstone design. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 301, CS 302, CS 303, CS 304, CS 392
The first in a two-semester sequence of capstone design. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 301, CS 302, CS 303, CS 304, CS 392W
The second in a two-semester sequence of capstone design and the fourth project class overall. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Expectations include public presentation of project work, patent applications, and/or plan for commercialization of project. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 491W and (CS 306, CS 401, CS 403, CS 406, CS 410, CS 420, CS 435, CS 440, CS 445, CS 450, CS 465, CS 470, CS 480, or CS 485)
The second in a two-semester sequence of capstone design and the fourth project class overall. Students build on the experience gained in CS 391W/392W to bring their research or project implementation and leadership to that expected of contributing computer scientists in industry or research. Expectations include public presentation of project work, patent applications, and/or plan for commercialization of project. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 491 and (CS 306, CS 401, CS 403, CS 406, CS 410, CS 420, CS 435, CS 440, CS 445, CS 450, CS 465, CS 470, CS 480, or CS 485)
This class is for MAX scholars and covers topics related to achieving success in academic, professional and personal realms. Speakers will include faculty, graduate students, visiting researchers and industry members. Students will mentor lower division scholars and do presentations.Fall, SpringPrereq: Recipient of a MAX scholarship or instructor consent
- Prerequisites:
- Recipient of a MAX scholarship or instructor consent
Workshop topics will be announced. Workshops on different topics may be taken for credit.
- Prerequisites:
- Consent of Instructor
Students learn about computer science practice through seminars with faculty, graduate students, undergraduate students admitted to the CS major, visiting researchers, and industry members. CS students are assisted in their development as learners and professional citizens through workshops. This course is repeated by upper-division Computer Science students every semester.
- Prerequisites:
- Admission to major.
Special topics not covered in other courses. May be repeated for credit on each new topic. VariablePrereq: Consent
- Prerequisites:
- Consent
This course is designed to provide students with an opportunity to utilize their training in a real-world environment. Participants work under the guidance and direction of a full-time staff member. (At most 4 hours towards the CS major.)Prereq: Permanent admission to the CS major, CS 300, consent
- Prerequisites:
- Permanent admission to the CS major, CS 300, consent.
Advanced study and research required. Topic of the senior thesis determined jointly by the student and the faculty advisor.Fall, Spring Prereq: Senior standing and consent
- Prerequisites:
- Senior standing and consent
Problems in the field of computer science are studied on an individual basis under the guidance of a faculty mentor.Fall, Spring Prereq: Consent
- Prerequisites:
- Consent
Current processes, methods, and tools related to formal methods for modeling and designing software systems. Topics include software architectures, methodologies, model representations, component-based designs, patterns, frameworks, CASE-based designs, and case studies.
This course studies the theoretical underpinnings of modern computer science, focusing on three main models of computation: DFA, PDA, and Turing Machines. Students determine model capabilities and limitations are: what is and is not computable by each of them. Pre: With permission by the instructor.
This course covers High Performance Computing (HPC) techniques used to address problems in Computational Science. Topics include the application areas and basic concepts of parallel computing, hardware design of modern HPC platforms and parallel programming models, methods of measuring and characterizing serial and parallel performance, and computational grid technologies. Pre: With permission by the instructor.
