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.
- 3 Technical Track courses required
- 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.
- 4 Advanced CS Electives
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.
- 4 Technical Track courses required
- 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.
- 3 Technical Electives required
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 A or DNSC 2001 or STAT 4157 and 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 |
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.