2021-2022 Course List
2021-2022
CS
This course focuses on machine level I/O and operating system file processing. Structure of systems programs including assemblers, linkers, and object-oriented utilities and interfaces. Students will gain experience in writing utility programs and extensions to operating systems.Fall
- Prerequisites:
- CS 111 or EE 107, and CS 320
This course introduces the student to Windows programming in C++ using the Application Programming Interface. Windows programs are created in a visual development environment which includes editing and code generating facilities. Hands-on programming skills are developed in the lab.Variable
- Prerequisites:
- CS 210
The course introduces the student to graphics and game programming. Graphics programming topics addressed include modeling, rendering, and animation of vector-based components and bitmaps. Programs are created using a current graphics and game development environment.
- Prerequisites:
- CS 210, CS 220, MATH 121
Fundamental concepts of programming languages, including the principles of language design, language constructs, and comparison of major languages. Topics: formal methods of examining syntax and semantics of languages and lexical analysis of language components and constructs, and propositional and predicate calculi.Fall
- Prerequisites:
- CS 210
Students are introduced to techniques used in the analysis and design of software systems. Traditional techniques are reviewed and current methodologies for both object-oriented and procedural systems are studied. Standard notations used to document software requirements and designs are presented.Spring
- Prerequisites:
- CS 300
Students learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.
- Prerequisites:
- CIS 223 and MATH 280
Students learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.
- Prerequisites:
- CIS 223 and MATH 280
Students further learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students continue to learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 391W
Students further learn and practice the essential elements of computer science through research, classical problem or industry project implementation: scoping, modeling, experimentation, analysis, modern tools, creativity, business plans, and global/societal/environmental impacts. Students continue to learn and develop the elements of professionalism while operating in project teams. Topics include leadership, metacognition, teamwork, written and oral communication, ethics and professional and personal responsibility. Course must be taken concurrently with CS 495.
- Prerequisites:
- CS 391
Current processes, methods, and tools related to formal methods for modeling and designing software systems. Topics include software architectures, methodologies, model representations, component-based design, patterns, frameworks, CASE-based designs, and case studies.Variable
- Prerequisites:
- CS 300 and MATH 121
Study of theory and/or implementation topics related to operating systems such as security and protection, virtual machines, device management, file systems, real time and embedded systems, fault tolerance and system performance evaluation. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to programming languages such as syntax analysis, semantic analysis, code generation, runtime systems, static analysis, advanced programming constructs, concurrency and parallelism, type systems, formal semantics, language pragmatics, and logic programming. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to networking and computation such as mobility and social networking and expansion of topics covered in CS 306. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to algorithms and computing such as advanced computational complexity, automata theory and computability, and advanced data structures algorithms and analysis. This includes 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: what is and is not computable by each of them.
- Prerequisites:
- Admission to major or permission.
Study of theory and/or implementation topics related to parallel and distributed computing such as parallel algorithms, architecture, and performance, distributed systems, cloud computing, and formal models and semantics. These have been called techniques for High Performance Computing. Topics also include 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.
- Prerequisites:
- Admission to major or permission.
Study of theory and/or implementation topics related to computer architecture and organization such as functional organization, multiprocessing and alternative architectures, and performance enhancements. This includes topics in computer architecture including a major emphasis on measuring and improving computer performance. Topics include advances in pipelining and analysis and optimization of storage systems and networks, multiprocessor challenges and trends.
- Prerequisites:
- Admission to major or permission.
This course provides an overview of embedded and real-time systems including design principles, methodologies, design tools and problem solving techniques. Students design and build a real-time operation system with a microprocessor to host real-time service data processing using sensor/actuator devices.Variable
- Prerequisites:
- CS 210 and CS 320
Basic introductory concepts and a history of the field of Artificial Intelligence (AI) are covered. Emphasis is placed on the knowledge representation and reasoning strategies used for AI problem solving. Solutions are found using the LISP programming language.Fall (ALT)
- Prerequisites:
- CIS 223 or CS 230
Computational linguistics topics covered include regular expressions, finite state automata, information theory, context free grammars, hidden Markov models and Viterbi algorithms. Students will work on problems within the field including parsing, machine translation, speech recognition, information extraction and parsing.Fall (Alt)
- Prerequisites:
- CIS 223 or CS 230
A blend of Computer Science, Information Science, and Statistics for storing, accessing, modeling, and understanding large data sets. Topics include fundamental data mining algorithms: decision trees, classification, regression, association rules, statistical models, neural networks, and support vector machines.Spring-Alt
- Prerequisites:
- CS 210 and STAT 354
Study of theory and/or implementation topics related to intelligent systems such as Basic Search Strategies, Basic Knowledge Representation and Reasoning, Basic Machine Learning, Advanced Search, Advanced Representation and Reasoning, Reasoning Under Uncertainty, Agents, Natural Language Processing, Advanced Machine Learning, Robotics, and Perception and Computer Vision. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to information management such as indexing, relational databases, query languages, transaction processing, distributed databases, physical database design, data mining, information storage and retrieval and multimedia systems. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to information assurance and security, such as defensive programming, threats and attacks, network security, cryptography, web security, platform security, security policy and governance, digital forensics, and secure software engineering. Prerequisite: Admission to Major or Permission
Study of theory and/or implementation topics related to computational science such as modeling and simulation, processing, interactive visualization, data, information and knowledge, and numerical analysis. Prerequisite: Admission to Major or Permission
As an advanced coverage of data communication, this course explores principles, protocols, and performance evaluation techniques of advanced networking technologies. Topics include error detection and recovery, flow control, routing, data throughput, and performance analysis of existing and emerging Internet protocols. Variable
- Prerequisites:
- CS 350 and STAT 354
