Notes on CS Courses Offered for Undergraduate CS majors - Spring 2024

Spring 2024

Registration

For help with classes requiring department permission, or if students believe their previous education qualifies them for a prerequisite override, or if students have any other issues requiring department permission, they should complete the CSCI Registration Issues Form

Technical Track Requirements

A rule of thumb for tech track courses is that they must be sufficiently advanced, which is generally something students can check by checking if CSCI 2113 is a prerequisite.

As a reminder, be sure you are reviewing your program requirements for your designated Curriculum Year. This Curriculum Year is based on the semester you started at GW. If your first semester at GW was in Fall 2019, you will be following the Curriculum Year 2019-2020.

CS BA

  • Curriculum Years 2019-2020, 2020-2021, 2021-2022: 3 Tech Track courses required
  • Curriculum Years 2022-2023, 2023-2024: 4 CS Advanced Technical Electives
    • Of the 4 required courses, 2 courses must be CSCI 2400-level or above and 2 courses must be CSCI 4000-level or above 

CS BS

  • Curriculum Years 2019-2020, 2020-2021, 2021-2022: 4 Tech Track courses required
    • 2 courses of the 4 Tech Track courses must be from this specific list
    • Specific list courses indicated by asterisk *
    • Only 1 of the 4 courses may be CSCI 3908**, if applicable. See note below.
  • Curriculum Years 2022-2023, 2023-2024: 3 CS Technical Elective courses are required. Courses must be CSCI 4000-level or above.

Technical Track classes (BA and BS)

Course No.

Course Title

Prerequisites

Requirement

CSCI 4237* Software Design for Handheld Devices CSCI 2113 Tech Track*
CSCI 4345 Introduction to Quantum Computing CSCI 4342, EMSE 2705, MATH 2184 or MATH 2185; and CSCI 4312, ECE 3220, MATH 2971, or PHYS 2023. Instructor approval required. Email [email protected] to register for this course. Tech Track

CSCI 4364*

Machine Learning

CSCI 3212 and MATH 2184/Linear Algebra

Tech Track*

CSCI 4366* Neural Networks and Deep Learning MATH 1231; and CSCI 3212; and CSCI 4342, EMSE 2705, MATH 2184, or MATH 2185 Tech Track*

CSCI 4454

Augmented and Virtual Reality

CSCI 2113

Tech Track

CSCI 4455

Computer Game Design and Programming

CSCI 2113

Tech Track

CSCI 4527* Introduction to Computer Vision MATH 1232; and MATH 2184; and CSCI 3362 or CSCI 4341 Tech Track*

CSCI 4531

Computer Security

CSCI 3411 (Corequisite CSCI 4331 not enforced)

Tech Track

CSCI 4541

Network Security

CSCI 4531

Tech Track

CSCI 4554*

Computer Graphics I

CSCI 2113 or 6221

Tech Track*

EMSE 6575*

Applied Machine Learning for Analytics

EMSE 6574

Tech Track*

CSCI 4907-14 Intro IoT & Eduge Comp Applications CSCI 2113 Tech Track
CSCI 4907-80* Big Data and Analytics CSCI 2113 Tech Track*
CSCI 4907-82 Natural Language Understanding Students in Junior or Senior status Tech Track
CSCI 4907-83 Convex Optimization CSCI 3212 and Linear Algebra Tech Track
CSCI 4907-84 Data Mgt Sys for Data Analytics Use CS Registration Issues Form to request access Tech Track
CSCI 6418 Unix Systems Administration CSCI 2113 Tech Track
CSCI 6421-80* Distributed and Cluster Computing CSCI 3411 with A- or better Tech Track*
CSCI 6443 Data Mining CSCI 2541W. Registration restricted to CS Majors. Tech Track
CSCI 6542 Computer Network Defense CSCI 4541 Tech Track

CSCI 6548

E-Commerce Security

CSCI 4531 or 6531

Tech Track

CSCI 6562 Design of Interactive Multimedia CSCI 2113 or 6221 Tech Track
CSCI 3908** Research Tech Track for BS only (in CY 2019 or later). Advisor and Department Permission required.
Must be taken for 3 credits to count toward program requirement.

Unrestricted Elective CS classes for Primary BA and BS majors (in addition to Tech Track classes)

Course No.

Course Title

Prerequisites

Requirement

CSCI 3908**

Research

CS Department and Faculty Approval Required.

Unrestricted Elective

Secondary BA majors (not in SEAS) do not require unrestricted electives.

Note that Primary BA students (SEAS) may use no more than two CS courses in General elective slots in the entire program. 

CS Elective classes for BA CS majors ONLY 

CS Electives for BA CS Majors in Curriculum Years 2021-2022 and earlier only.

Course No.

Course Title

Prerequisites

Requirement

CSCI 3313

Foundations of Computing

CSCI 2113 and CSCI 2312 or 2460 or 2461

CS Elective

CSCI 3410

Systems Programming

CSCI 2113 and CSCI 2460 or 2461

CS Elective

 

**Notes about CSCI 3908: Research for CS BS students only

Requires adviser and department permission, and must be taken 3 credits at a time to count towards a program requirement.

Generally only three credits of research may be used towards a curriculum, in any slot. In the event that a student has a paper from the first use of the course, they may use another one for a maximum of 6 credits. When 6 credits are used towards the curriculum, only 3 credits may be used towards the tech track, the other three must be towards unrestricted slots. Thus a minimum of 9 credits of tech track courses must be from non-research courses

Any use of credits towards a program, even the first three credits of research, must be supported by documentation describing the output of the course (such as a paper or poster presentation, or links to code developed).

BA students are not allowed use of the research course towards the tech track because BA students take a total of 34-36 credits of computer science, while BS students take 55.