Notes on CS Courses Offered for Undergraduate CS majors

Fall 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, visit the Course Registration Information page.

CSCI courses numbered 4000 or above in Fall 2023 all have CSCI 2113 in the prerequisite chain.

As a reminder, be sure you are reviewing your program requirements for your designated Curriculum Year. The Curriculum Year is based on the semester you started at GW and can be viewed on Degree Map. For example, if you began in Computer Science in your first semester at GW, and this was in Fall 2020, you will be following the Curriculum Year 2020-2021. If you are a second major or a transfer student from another department/school/institution, it is a little more complicated, and you should check DegreeMap.

CS Technical/ Advanced Elective Course Requirements

CS BA

  • Curriculum Years: CY 2019-2020, CY 2020-2021, CY 2021-2022
    • 3 Technical Track courses required
      • All 4000-level CSCI courses can apply towards the Tech Track, except CSCI 4243W and CSCI 4244.
      • Chosen 6000-level courses listed below may also be applied.
  • Curriculum Year 2022-2023
    • 4 Advanced CS Electives
      • Four CSCI courses numbered 2400 and above. Of these, at least two (for a minimum of 6 credits) must be at the 4000 level or above. (CSCI 4243, CSCI 4243W, CSCI 4244 may not be used toward this requirement.) Note that CSCI 2410 is one of our harder classes and is not advised towards this requirement unless you have a deep interest in Systems.
      • Undergraduate students are allowed into 6000-level courses listed below and these may also be applied towards the 4000 level or above requirement.  

CS BS

  • Curriculum Years: CY 2019-2020, CY 2020-2021, CY 2021-2022
    • 4 Technical Track courses required
      • All 4000-level CSCI courses offered in Fall 2023 can apply towards the Tech Track; additionally, the 6000-level courses noted below may also be used.
      • 2 courses of the 4 Tech Track courses must be from this specific list* and are denoted by an asterisk below.
      • CSCI 3908 is also allowed towards the tech track, but only 1 of the 4 courses may be CSCI 3908**, if applicable. See note below.
  • Curriculum Year: CY 2022-23
    • 3 Technical Electives required
      • All 4000-level CSCI courses offered in Fall 2023 can apply towards this requirement. The 6000-level courses noted below are also open to undergraduates and may be used towards this requirement.  

Technical Track/Advanced CS Elective/Technical Elective classes (BA and BS)

Course No.

Course Title

Prerequisites

Requirement

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

CSCI 4331

Cryptography

One of the following: CSCI 2312, CSCI 3212, CSCI 3313, MATH 2971

Tech Track*

CSCI 4342 Computational Linear Algebra and Applications CSCI 2113 Tech Track
CSCI 4364 Machine Learning CSCI 3212; and CSCI 3362 or CSCI 4341 or CSCI 6362 or APSC 3115
or DNSC 2001 or STAT 4157 and CSCI 4342 or EMSE 2705
or MATH 2184 or MATH 2185
Tech Track*
CSCI 4366 Neural Networks and Deep Learning CSCI 3212 and Dept Approval, preference given to Primary CS Majors Tech Track*
CSCI 4431 Computer Networks I CSCI 2113 and CSCI 2461. Students who have taken CSCI 2460 but not CSCI 2461 may request department permission (see above) 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 Students who have taken CSCI 2113 but not CSCI 3411 may approach the department for permission (see above)  

Tech Track

CSCI 4541

Network Security

CSCI 4531

Tech Track

CSCI 4907

Big Data & Analytics

CSCI 2113

Tech Track*

CSCI 4907

Data Analytics in Baseball

B or higher in CSCI 2113; B- or higher in (APSC 3115 or CSCI 4341 or STAT 4157) and a B- or higher in MATH 2184 and Department Approval.

Tech Track

CSCI 6351

Data Compression

CSCI 3212 and Dept Approval

Tech Track

CSCI 6542 Computer Network Defense CSCI 4541 and Dept Approval Tech Track*
CSCI 6555 Computer Animation CSCI 4554 and Dept Approval Tech Track
CSCI 6561 Design of Human-Computer Interface CSCI 3212 or CSCI 3411 and Dept Approval Tech Track

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

Course No.

Course Title

Prerequisites

Requirement

CSCI 3907 Blockchain Tech and Applications CSCI 1111 or CSCI 1012 or MAE 1117 or ECE 1120. Restricted to SEAS Undergraduate students, CS Majors and Minors

General Elective for BA and BS programs.

For BA 22-23 program, can be used as one of the 2 CS Electives 2400 or above. For BS '18-19 program or earlier, it can be used as a CS Elective

CSCI 3908**

Research

 

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.


**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 and BS students from CY 2022-23 onwards are not allowed use of the research course towards the tech track/tech elective. This is because they are required to take fewer CS courses overall than the other curricula. 

To register for a Research course with instructor permission, go to the CS Course Registration page.