2022-2023 Course List

2022-2023


CS

This class provides MAX scholars with an opportunity to explore a set of topics related to achieving success in academic, professional and personal realms. Speakers will include faculty, graduate students, visiting researchers and industry members as well as student participants.Fall, SpringRereq: 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

Provides students interested in a computer science major or minor an opportunity to explore topics not normally covered in the curriculum. Speakers will include faculty, graduate students, undergraduate students admitted to the Computer Science major, visiting researchers and industry members.Fall, Spring

Special topics not covered in other 100 or 200-level courses. May be repeated for each new topic.Variable

A team-based capstone experience for the mid-point of the CS program. Students are introduced to principles and methodologies of large-scale software development and engineering by working on a full life-cycle software project solving a substantial problem using multiple CS concepts.Spring

Prerequisites:
CS 210 and CS 220

This course introduces the foundational concepts of operating systems including operating systems principles, concurrency, scheduling, dispatch, and memory management and prepares students for advanced topics in operating systems.

Prerequisites:
CIS 223, CIS 224 or EE 234, and admission to major.

This course introduces the foundational concepts of software engineering, and parallel and distributed computing and prepares students for advanced topics in these areas.

Prerequisites:
CIS 223, CIS 224, and admission to major.

This course introduces the foundational concepts of programming languages, including the principles of language design, language constructs, and comparison of major languages. Topics include formal methods of examining syntax and semantics of languages and lexical analysis of language components and constructs, and propositional and predicate calculi.

Prerequisites:
CIS 223, CIS 224, and admission to major.

This course introduces the foundational concepts of Information Management, Database Systems, Data Modeling, Data Security, Secure Design, Defensive Programming, Security and Cryptography.

Prerequisites:
CIS 223, CIS 224, and admission to major.

An introduction to data communications and networks. The field encompasses local area networks, wide area networks, and wireless communication. Topics include digital signals, transmission techniques, error detection and correction, OSI model, TCP/IP model, network topologies, network protocols, and communications hardware.

Prerequisites:
CIS 223 and CIS 224 or EE 234

Algorithm design and analysis is central to much of computer science. This course exposes students to fundamental algorithm design and analysis techniques. Topics include many of the basic topic areas of computer science: searching, sorting, numeric computation, data representation, communication.Fall

Prerequisites:
CS 210

An introduction to methods, algorithms, and tools of cryptography. We will study the algorithmic and mathematical aspects of cryptographic methods and protocols. We will experiment with how they can be used to solve particular data and communication security problems. Prerequisite: CS 305 or permission of instructor.

Prerequisites:
CS 305 or permission of instructor.

This course presents historical and current concepts and implementations of computer organization. Topics include instruction set design, digital storage, performance metrics, processor datapath and control, pipelining, memory hierarchy, busses and I/O interfacing, and parallel processors.Spring

Prerequisites:
CS 111 and CS 220, or EE 334

This course provides an introduction to the theory and practice of neural computation. The goal is to familiarize students with the major models, techniques, and problems of neural network computation and to provide hands-on experience using these things. Topics include neural network models, supervised and unsupervised learning, associative memory models, and data representation.

Prerequisites:
CS 230

This course covers the fundamentals of database management focusing on the relational data model. Topics include database organization, file organization, query processing, concurrency control, recovery, data integrity, optimization and view implementation. Fall

Prerequisites:
CS 210 and CS 320

An introduction to data communications and networks. The field encompasses local area networks, wide area networks, and wireless communication. Topics include digital signals, transmission techniques, error detection and correction, OSI model, TCP/IP model, network topologies, network protocols, and communications hardware.Spring

Prerequisites:
CIS 223, EE 234

A laboratory in conjunction with CS 350.

Prerequisites:
CS 305 or EE 234. Permission of instructor

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 391