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 |
CSCI 2113 |
Tech Track* |
|
CSCI 3907-81 |
MATH 1232, CSCI 3212 |
Tech Track |
|
CSCI 3907-84 |
CSCI 3212 and CSCI 2441/2541 (Open to primary majors only) |
Tech Track |
|
CSCI 3907-88 |
See comments on schedule of classes |
Tech Track |
|
CSCI 3907-89 |
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 |
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.