Notes on CS Courses Offered for Undergraduate CS majors

Spring 2023

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 Spring 2023 Registration Issues Form

Registration for CS research courses require a completed and signed RTF and SEAS Research Course Registration Form. Please have your advisor email the forms to [email protected] after they sign them.

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 Year 2018-2019 or earlier: 3 Tech Track courses required
  • Curriculum Year 2019-2020 or later: 3 Tech Track courses required

CS BS

  • Curriculum Year 2018-2019 or earlier: 3 Tech Track courses required
  • Curriculum Year 2019-2020 or later: 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.

Technical Track classes (BA and BS)

Course No.

Course Title

Prerequisites

Requirement

CSCI 3907-14 IOT using Raspberry Pi CSCI 2113 Tech Track

CSCI 3907-80

Big Data & Analytics

CSCI 2113

Tech Track*

CSCI 3907-81

Game Theory in Computer Science

MATH 1232, CSCI 3212

Tech Track

CSCI 3907-84

Data Mgt Sys for DataAnalytics

CSCI 3212 and CSCI 2441/2541 (Open to primary majors only)

Tech Track

CSCI 3907-88

Introduction to Quantum Computing

See comments on schedule of classes

Tech Track

CSCI 3907-89

Usable Security and Privacy

CSCI 2113

Tech Track*

CSCI 4237 Software Design for Handheld Devices CSCI 2113 Tech Track*

CSCI 4364*

Machine Learning

CSCI 3212 and MATH 2184/Linear Algebra

Tech Track*

CSCI 4454

Augmented and Virtual Reality

CSCI 2113

Tech Track

CSCI 4455

Computer Game Design and Programming

CSCI 2113

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*

MATH 6720

Topics in Logic

 

Tech Track; may be used only once

CSCI 6421-90 Distributed and Cluster Computing CSCI 3411 with A- or better Tech Track*
CSCI 6442 Database Systems II CSCI 2441 or 2541 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.

CSCI 4244

Capstone Design Project II

CSCI 4243

Tech Track for BA only (in CY 2019 or later).

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

 

Unrestricted Elective

CSCI 4417

UNIX System Programming

Senior status or 1 year of C Programming or UNIX user experience

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 unrestricted elective slots in the entire program. For information on which non-CS courses may count towards unrestricted slots, see CS-BS curriculum or CS-BA curriculum.

All CS courses that qualify for unrestricted electives (thus also all courses that qualify as tech track) qualify for CS Elective for BS students in Curricular Year 2018 or earlier. Note that, except for the MATH and EMSE courses listed in the tech track, non-CS courses may not count here.

CS Elective classes for BA CS majors 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.

Registration for CS research courses does require a completed and signed RTF and SEAS Research Course Registration Form. Please have your advisor email the forms to [email protected] after they sign them.