Department of Computer Science | School of Engineering & Applied Science site logo

Department of Computer Science

School of Engineering & Applied Science

  • Quick Facts
  • Women in Engineering
  • Justice, Equity, Diversity, and Inclusion Resources
  • JEDI Faculty Instructional Resources
  • Second Major in Computer Science
  • Minor in Computer Science
  • Non-CS Majors
  • Admission to Computer Science as a Second Major or a Minor 
  • Frequently Asked Questions
  • Curriculum Sheets
  • Combined Programs
  • MS in Computer Science
  • MS in Cybersecurity in Computer Science
  • MS in Data Analytics
  • MS in Applied Computer Science
  • Certificate: Gateway to Computer Science (Hybrid)
  • Certificate: Computer Security & Information Assurance

PhD in Computer Science

  • MS Frequently Asked Questions 
  • Academic Policies & Schedules
  • Study Abroad
  • Student Organizations
  • Sarah Morin & Grant McClearn
  • Monica Kavathekar & Caitlin Carfano
  • Graduate Students
  • Admissions & Financial Aid
  • About Advising
  • Meet Your Advisor
  • Incoming Students
  • Graduating Seniors
  • Pre-Professional Advising
  • Academic Support Services
  • Undergraduate Ambassadors
  • New Student Experience
  • Diversity and Inclusion
  • Career Services
  • Undergraduate Research
  • National Professional Studies
  • GW Innovation Center
  • Student Resources
  • Academic Integrity Policy
  • Course Registration Information
  • Faculty Directory
  • AI/Machine Learning
  • Algorithms and Theory
  • Computer Security, Privacy and Cryptography
  • Operating and Distributed Systems
  • Multi-Disciplinary and Collaborative Research
  • News Archives
  • Event Archives
  • Closed: Professor of Practice faculty position
  • Closed: Two tenure-track faculty positions

Department of Computer Science | School of Engineering & Applied Science

The Ph.D. in Computer Science aims to build the next generation of scholars in computer science research. At GW, doctoral students can expect to work closely with a faculty advisor in their chosen research area to create a curriculum plan and guidance for the doctoral dissertation. Students have the opportunities to teach introductory-level courses to undergraduates, present conference papers, and work with faculty on research grant applications.

With its unique location of Washington, D.C., GW maintains access and connections to one of the highest concentrations of tech companies in the country, as well as research-granting federal institutes, including the National Institutes of Health (NIH), NASA , National Institute of Standards and Technology and the Naval Research Laboratory . 

For Prospective Students:

Admissions requirements.

  • If an applicant has obtained a master’s degree, a minimum grade point average of 3.5 (on a scale of 4.0) is required.
  • If an applicant has only obtained a bachelor’s degree, the minimum grade point average must be a 3.3 (on a scale of 4.0).
  • Completion of two math courses beyond pre-calculus.
  • Strong academic background that includes courses in structured programming language, discrete structures and data structures.
  • Successful submission of online application form, exam scores and other documents as outlined in the admissions requirements .

Faculty Advisor & Research Area

We strongly recommend that prospective doctoral students determine a faculty member in the department with whom they would like to work, as well as the research area of interest.

Top research areas of the department:

  • Algorithms and theory
  • Computer architecture, networks, parallel and distributed computing
  • Computer security and information assurance
  • Database and information retrieval systems
  • Machine intelligence and cognition
  • Multimedia, animation, graphics and user interface
  • Software engineering and systems

Download Faculty & Research Factsheet (PDF)

For Current Students: 

The general requirements are stated under School of Engineering, Doctoral Program Regulations . 

Program Requirements

Relevant Forms

  • Preliminary examination form
  • Proposal defense report form
  • Final examination approval form
  • Dissertation completion form
  • Additional forms and resources from SEAS

PhD Course Guidelines:

PhD students must work with their advisors to develop a program of study that meets the following requirements.

  • For direct Ph.D. degree students: 54 credit hours (minimum of 42 credit hours of course work available for graduate credit and minimum of 12 credit hours of dissertation research credits (CSCI 8999)) are required. Additionally, a student should continue to enroll in Continuing Research - Doctoral (SEAS 0940) until their dissertation is completed.
  • For post-Master’s Ph.D. students: 18 credit hours of course work available for graduate credit and 12 credit hours of dissertation research credits (CSCI 8999) are required. Additionally, a student should continue to enroll in Continuing Research - Doctoral  (SEAS 0940) until their dissertation is completed. 
  • A maximum of 15 credits outside of the department for direct Ph.D. students; a maximum of 9 credits outside of the department for post-Master’s Ph.D. students.
  • Algorithms and theory;
  • Software and systems
  • See details in the Preliminary Examination section below. 

Preliminary Examination

Failure of full-time students to pass the preliminary examination by the end of the fourth semester will lead to dismissal from the program.

Students who register for 6 credits or fewer in three consecutive semesters are part-time. Part-time students are required to pass the preliminary examination within their first three years, or 30 credits, of enrollment in the PhD program. Failure to do so will result in dismissal from the program.

To demonstrate competency, students may take one course in each of the following areas:

  • Algorithms and theory: CSCI 6212 Design and Analysis of Algorithms or CSCI 6311 Theory of Computation
  • Software and systems: CSCI 6221 Advanced Software Paradigms, or CSCI 6431 Computer Networks, or CSCI 6461 Computer System Architecture

Competency is demonstrated in one of two ways:

  • By completing the course with a minimum grade of A-; or,
  • By taking only the written, in-class examinations in the course. With this option, students must pass all exams given during a semester, earning a minimum grade of A- in each. 

Students who prove, via their official transcript, that they earned the requisite grades as part of their master’s degree may apply that result to the preliminary exam requirement. 

Students must submit a Preliminary Examination Form to the Department of Computer Science after completing the requirements for the preliminary exam. 

Publication Requirements

Students must have at least one peer-reviewed conference or journal paper accepted for publication at the time of the dissertation defense.

As a guideline, students are expected to have at least two or three conference or journal papers accepted for publication by the time of their dissertation defense, and the material from those papers should be the core of the dissertation.

Dissertation

Dissertation advisor and co-advisor(s).

Every PhD dissertation must be supervised by a faculty advisor who must be (1) a regular full-time faculty member of GW with a primary or secondary appointment in the CS Department, or (2) a research faculty member of the CS Department. Besides the dissertation advisor, a PhD student may have one or more co-advisor(s), who may be full-time or part-time faculty at GW, or professionals from outside the university. Co-advisors are expected to hold a terminal degree.

Forming a dissertation committee

  • The dissertation committee must consist of at least three members, including the major advisor. Additional advisor(s) and co-advisors are optional and additional to the three members.
  • The committee must have a presiding chair who is a regular full-time faculty member whose primary appointment is in the Department of Computer Science. The committee chair may not be the student's research advisor or co-advisor.
  • Faculty with secondary appointments in the Department of Computer Science are not considered regular full-time faculty members in the Department.
  • At least one member of the committee must be an external reviewer. The external reviewer must hold a doctoral degree. They may not be a research advisor or co-advisor of the student. They should have a primary appointment in another GW department or outside the University.
  • The dissertation committee must be approved by the Chair of the Department of Computer Science.
  • The committee membership is normally the same for the dissertation proposal examination and the dissertation defense. However, the membership may change with the approval of the advisor and department chair.

Dissertation proposal defense

  • The defense may not take place before the student has passed the preliminary examination.
  • The student’s advisor must approve the scheduling of the dissertation proposal defense.
  • The student submits a written proposal, in the style of a dissertation, to the members of the dissertation committee. The proposal should contain preliminary results.
  • The dissertation committee evaluates the proposal and conduct an oral examination of the student. The committee conveys its recommendation of pass/fail to the Department of Computer Science.
  • A proposal defense report should be filed.  

Dissertation defense

  • The dissertation defense may not be scheduled before the student has passed the dissertation proposal defense.
  • The student’s advisor must approve the scheduling of the dissertation defense.
  • The student submits a written dissertation to the members of the dissertation committee, normally two or more weeks in advance of the defense. The writing should follow the dissertation writing guidelines .
  • The committee evaluates the dissertation and conducts an oral examination of the student. The committee conveys its recommendation to pass or fail to the Department of Computer Science.
  • The final examination approval form and the dissertation completion form should be filed.

University Graduation and Scholarship Requirements

Students are responsible for knowing the University’s graduation and scholarships requirements. Consult the University Regulations section of this Bulletin. Students should consult the department for additional information and requirements.

GW Online Engineering Programs site logo

GW Online Engineering Programs

  • Artificial Intelligence and Machine Learning
  • Cloud Computing Management
  • Cybersecurity Analytics
  • Cybersecurity Policy & Compliance
  • Electrical Engineering
  • Engineering Management
  • Systems Engineering
  • Policies & Procedures
  • On-Site International Programs
  • Artificial Intelligence & Machine Learning
  • Degrees Offered
  • Tuition & Financial Aid
  • Student Resources
  • Application Process

Apply for Admission

GW Online Engineering Programs

Online Doctor of Engineering in Artificial Intelligence & Machine Learning

We are now accepting applications for the cohort beginning in January 2025.

The application deadline is November 1, 2024

Program Description

The online Doctor of Engineering in Artificial Intelligence & Machine Learning is a research-based doctoral program. The program is designed to provide graduates with a solid understanding of the latest AI&ML techniques, as well as hands-on experience in applying these techniques to real-world problems. Graduates of this program are equipped to lead AI&ML projects and teams in a wide range of industries, including healthcare, finance, and manufacturing. Having developed advanced research skills, graduates are also well-prepared for academic research and teaching roles.

The degree requires completion of eight graduate-level courses (listed below) and a minimum of 24 credit hours of Praxis Research (SEAS 8588). During the research phase, the student writes and defends a research praxis on a topic related to AI&ML. The topic is selected by the student and approved by the research advising committee.

SEAS 6414 Python Application for Data Analytics:  Introduction to Python programming tailored for Data Analytics. This course covers Python’s applications in automating data cleaning, feature engineering, outlier detection, implementing machine learning algorithms, conducting text mining, and performing time series analysis. (3 credit hours)

SEAS 8500 Fundamentals of AI-Enabled Systems:  Operational decomposition for AI solutions, engineering data for algorithm development, and deployment strategies. Systems perspective in designing AI systems. Full-lifecycle of creating AI-enabled systems. Ethics and biases in AI systems (3 credit hours)

SEAS 8505 Applied Machine Intelligence and Reinforcement Learning:  Theory and practice of machine learning leveraging open-source tools, algorithms and techniques. Topics include intelligent model training, support vector machines, deep learning, transformer methods, GANs, and reinforcement learning (3 credit hours)

SEAS 8510 Analytical Methods for Machine Learning:  Mathematical tools for building machine learning algorithms: linear algebra, analytical geometry, matrix decompositions, optimization, probability and statistics (3 credit hours)

SEAS 8515 Data Engineering for AI:  Developing Python scripts to automate data pipelines, data ingestion, data processing, and data warehousing. Machine learning applications with Python including text mining and time series analysis (3 credit hours)

SEAS 8520 Deep Learning and Natural Language Processing:  Fundamentals of deep learning and Natural Language Processing (NLP). Techniques for designing modern deep learning networks using Keras and TensorFlow. NLP topics include sentiment analysis, bag of words, TFIDF, and Large Language Models (3 credit hours)

SEAS 8525 Computer Vision and Generative AI: Explore AI's visual realm. Learn image processing object detection, and models in generative adversarial networks and neural networks. Master tools for creating AI applications in art, design, ethical considerations, and societal impacts of generative AI technology (3 credit hours)

SEAS 8599 Praxis Development for AI & Machine Learning:  Overview of research methods. Aims and purpose of the praxis. Development of praxis research strategies, formulation, and defense of a praxis proposal (3 credit hours)

SEAS 8588 Praxis Research for D.Eng. in AI & Machine Learning:  Research leading to the degree of Doctor of Engineering in AI and Machine Learning (24 Credit Hours)  

Classroom courses last 10 weeks each and meet on Saturday mornings from 9:00 AM—12:10 PM and afternoons from 1:00—4:10 PM (all times Eastern). All classes meet live online through synchronous distance learning technologies (Zoom). All classes are recorded and available for viewing within two hours of the lecture. This program is taught in a cohort format in which students take all courses in lockstep. Courses cannot be taken out of sequence, live attendance at all class meetings is expected, and students must remain continuously enrolled. Leaves of absence are permitted only in the case of a medical or family emergency, or deployment to active military duty.  Please see below for the dates of our upcoming cohort.

Semester Session #Credit Hours Tentative Dates
Spring 2025 1 6 January 4 — March 8, 2025
Spring 2025 2 6 March 22 — May 31, 2025
Summer 2025 - 6 June 14 — August 23, 2025
Fall 2025 1 6 September 6 — November 8, 2025

No classes on Thanksgiving, Christmas, New Year, Fourth of July,  and Memorial Day Weekends 

To proceed to the research phase, students must earn a grade point average of at least 3.2 in the eight classroom courses, and no grade below B-. Students are then registered for a minimum of 24 credit hours of SEAS 8588 Praxis Research: 3 ch in Fall 2025 (Session 2), 9 ch in Spring 2026, 3 ch in Summer 2026, and 9 ch in Fall 2026. Throughout the research phase, students develop the praxis under the guidance of a designated faculty advisor. Faculty research advisors are assigned by the program office and meet individually with students every two weeks.

Sample research areas are listed below:

•    Developing algorithms and methods that can explain how AI systems reach their decisions or predictions, making them more transparent and trustworthy •    Investigating how reinforcement learning can improve robotic performance and control, particularly in complex environments •    Examining how to ensure that AI systems are fair and unbiased in their decision-making, particularly in areas such as hiring, lending, and criminal justice •    Developing more advanced natural language processing models and algorithms that can understand and interpret human language more accurately and effectively •    Investigating how to apply transfer learning techniques to improve the performance of AI systems in new and different domains, with less data and less training time 

Tuition is $1,750 per credit hour for the 2024-2025 year and is billed at the beginning of each semester for the courses registered during that semester. A non-refundable tuition deposit of $995, which is applied to tuition due the first semester, is required when the applicant accepts the offer of admission.

Admissions Process

  • Bachelor’s and master’s degrees in engineering, applied science, business, computer science, or a related field from accredited institutions.
  • A minimum graduate-level GPA of 3.2
  • Capacity for original scholarship.
  • TOEFL, IELTS, Duolingo, or PTE scores are required of all applicants who are not citizens of countries where English is the official language.  Check our  International Students Page  to learn about the SEAS English language requirements and exemption policy. Test scores may not be more than two years old.

Note: GRE and GMAT scores are not required

Please note that our doctoral programs are highly selective; meeting minimum admissions requirements does not guarantee admission.  

  • Attach up-to-date Resume 
  • Attach Statement of Purpose – In an essay of 250 words or less, state your purpose in undertaking graduate study at The George Washington University. Describe your academic objectives, research interests, and career plans. Discuss your qualifications including collegiate, professional, and community activities, and any other substantial accomplishments not mentioned.
  • Online Engineering Programs The George Washington University 170 Newport Center Drive Suite 260 Newport Beach, CA 92660

Normally, all transcripts must be received before an admission decision is rendered for the Doctor of Engineering program. 

Register for the next Information Session

Live via Zoom Tue. August 13th, 7:00 pm Eastern Register and Join the Webinar

Register and Join the Webinar

Subscribe to our Mailing List

Sign up to receive notifications about upcoming information sessions for the GW Online Doctor of Engineering in Artificial Intelligence and Machine Learning program.

Subscribe Today

  • Featured Events
  • Undergraduate Students
  • Graduate Students
  • Career Center Policies
  • Recruiting & Policy Guide
  • Employer Resources
  • Faculty and Staff
  • Applied Science & Technology (B.A.)
  • Biomedical Engineering (B.S., M.S., Ph.D.)
  • Civil & Environmental Engineering (B.S., M.S., Ph.D.)
  • Computer Engineering (B.S., M.S., Ph.D.)

Computer Science (B.S., M.S., Ph.D.)

  • Cybersecurity (M.S.)
  • Data Analytics (M.S.)
  • Electrical Engineering (B.S., M.S., Ph.D.)
  • Engineering Management (M.S. Ph.D.)
  • Mechanical & Aerospace Engineering (B.S., M.S., Ph.D.)
  • Regulatory Biomedical Engineering (M.Eng.)
  • Systems Engineering (B.S., M.S., Ph.D.)
  • Telecommunications Engineering (M.S.)
  • Featured Jobs & Internships

Resume & Cover Letter Preparation

Job/internship search, interview preparation, funding & scholarships, international student resources.

  • PRAXIS Application
  • Meet the Team
  • Our Mission

Computer Science is the science of using computers to solve problems. Mostly, this involves designing software, computer programs and addressing fundamental scientific questions about the nature of computation. It also involves many aspects of hardware and architecting the large computer systems that form the infrastructure of commercial  and government enterprises. Computer scientists work in many different ways: pen-and-paper theoretical work on foundations and fundamentals of coding, designing software and computer programs, programming work using a computer, and collaborative teamwork to complete research and solve software and programming issues.

gwu phd computer science

Program Guide

See a  snapshot of career information  for this program.

gwu phd computer science

See what you can do with a GW degree

Undergraduate career and education outcomes

Graduate student career outcomes

gwu phd computer science

Search for internships and jobs, schedule career advising appointments, and more by signing in to GW’s career hub.

https://gwu.joinhandshake.com/

Learn about Careers Paths

Technical architect, daybreak game company.

Watch more interviews with industry professionals on CandidCareer – sign in via Handshake.

Professional Development

Get the latest industry knowledge, access to mentoring, and find job opportunities through professionals organizations:

  • American Association for Artificial Intelligence (AAAI) – aaai.org
  • Association for Computing Machinery (ACM) – acm.org
  • Association for Women in Computing (AWC) – awc-hq.org
  • Computing Research Association (CRA) – cra.org
  • International Association of Computer Science & IT (IACSIT) – iacsit.org
for more STEM professional organizations.

Industry-Specific Job Sites

  • Computer Work – computerwork.com
  • Dice.com – www.dice.com
  • EngineerJobs – engineerjobs.com
  • iHireEngineering –  ihireengineering.com
Find more sites on our page.

Featured Jobs

  • Fall Photography Intern The O Museum in The Mansion

State Water Resources Control Board logo

  • Fall Events Intern The O Museum in The Mansion

Vanguard logo

Career Resources

  • How to Apply for CPT
  • How to Get an Employer’s Attention with Your Handshake Profile
  • How to Find Remote Jobs on Handshake
  • How To Find a Job by Location
  • Career Services Brochure
  • Graduate Resume and Cover letter Guide
  • Graduate Resume Check list
  • Graduate CV Check List
  • Graduate CV Guide
  • SEAS Graduate Resume & Cover Letter Guide
  • STEM Undergraduate Resume Writing Guide
  • Undergraduate Cover Letter Guide
  • SEAS CV Template
  • Writing Diversity Statements
  • Top 5 Cover Letter Tips (VIDEO)
  • Top 5 Resume Tips (VIDEO)
  • Jobscan Guide

PRAXIS Application Materials

  • Student Application
  • SEAS Networking Guide
  • Professional Organizations
  • GW Alumni Industry Networks
  • LinkedIn – GW SEAS Career Services Group
  • GW Career Connect
  • Tips for Starting a New Job
  • LinkedIn Profile Tips (VIDEO)
  • Elevator Pitch (VIDEO)
  • Professional Branding Guide
  • LinkedIn Mastery Checklist for Profile Brilliance.
  • LinkedIn Cheatsheet
  • Career Resources for Students with Disabilities
  • On-Campus Jobs
  • SEAS Job & Internship Search Guide
  • Salary Negotiation Guide
  • Global Job & Internship Search
  • Postdoctoral Opportunities
  • Internships.com
  • Engineering Central
  • Engineer Jobs
  • GW Professional Competencies
  • Micro-Internships at GW
  • Internship Safety Guidelines
  • Job & Internship Search Sites (VIDEO)
  • Handshake Tips (VIDEO)
  • Finding Jobs in China
  • Career Exploration Guide
  • SEAS Interviewing Guide
  • Video Interviewing Guide
  • Interview Stream
  • Top 5 Interview Tips (VIDEO)
  • Career Growth Challenge
  • GW Campus Resources for International Students
  • GW International Students’ Welcome Guide
  • International Student Career Outcomes
  • On-Campus Employment for International Students
  • FAQs for Incoming Students – SEAS Careers
  • Knowledge in Action Career Internship Fund (KACIF)
  • Engineering Scholarships
  • Peterson’s Scholarship Search Engine
  • SEAS Graduate Student Professional Development Fund
  • Scholarships.com
  • Graduate Student Assistanceships & Fellowships

Career Skills Series

  • Level Up with LinkedIn
  • Stress-Less Job Search
  • Work Better Not Harder
  • Communication Skills Series
  • Networking & Connecting Series
  • Managing Remote Work Series
  • Mastering Presentations

Career Guides

  • Computer Science Career Guide

Campus Resources

  • A Guide to Online Resources
  • LinkedIn Learning – Free Online Training and Courses
  • Title IX Resources

LinkedIn Learning Classes

gwu phd computer science

JavaScript: Events

gwu phd computer science

Microsoft Azure Administrator Associate (AZ-104) Cert Prep by Microsoft Press

gwu phd computer science

Web Motion: Create a Parallax Effect

gwu phd computer science

Web Motion: Animate a CSS Sprite Sheet

gwu phd computer science

Web Motion: Create a Preloader

gwu phd computer science

Creative Insights: Local Projects Interactive Media Designers

gwu phd computer science

PHP for Web Designers

gwu phd computer science

UX Foundations: Logic and Content

gwu phd computer science

Creating a Responsive Web Experience

gwu phd computer science

CSS: Advanced Typographic Techniques

gwu phd computer science

UX Foundations: Making the Case for Usability Testing

gwu phd computer science

Creative Inspirations: Hot Studio, Experience Design

gwu phd computer science

reveal.js: Online Presentations

gwu phd computer science

UX Foundations: Information Architecture

gwu phd computer science

The Creative Spark: Beeple, Everyday Artist

gwu phd computer science

Dreamweaver CS6 Essential Training

gwu phd computer science

View Source

gwu phd computer science

HTML5: Geolocation

gwu phd computer science

Creative Inspirations: Ze Frank, Comedic Digital Savant

gwu phd computer science

CSS Positioning Best Practices

W. scott amey career services center.

800 22nd St. NW Suite 2730 Washington, DC 20052

Phone: (202) 994-4205 seascareers@gwu.edu

George Washington University PhD in Computer Science

Featured programs, how much does a doctorate in computer science from gwu cost, gwu graduate tuition and fees.

In StateOut of State
Tuition$31,770$31,770
Fees$54$54

Related Programs

Does gwu offer an online phd in computer science, gwu doctorate student diversity for computer science, male-to-female ratio.

Of the students who received their doctor’s degree in computer science in 2019-2020, 50.0% of them were women. This is higher than the nationwide number of 19.1%.

Racial-Ethnic Diversity

Racial-ethnic minority graduates* made up 5.0% of the computer science doctor’s degrees at GWU in 2019-2020. This is lower than the nationwide number of 10%.

Race/EthnicityNumber of Students
Asian1
Black or African American0
Hispanic or Latino0
Native American or Alaska Native0
Native Hawaiian or Pacific Islander0
White3
International Students15
Other Races/Ethnicities1

Popular Reports

Compare your school options.

Department of Electrical and Computer Engineering | School of Engineering & Applied Science site logo

Department of Electrical & Computer Engineering

School of Engineering & Applied Science

  • Quick Facts
  • Advisory Board
  • Women in Engineering
  • Hall of Fame
  • B.S. in Computer Engineering
  • B.S. in Electrical Engineering
  • Undergraduate Curriculum Sheets
  • M.S. in Computer Engineering
  • M.S. in Electrical Engineering
  • M.S. in Electrical Engineering (online)

Ph.D. in Computer Engineering

  • Ph.D. in Electrical Engineering
  • Certificate in High-Performance Computing
  • Certificate in Machine Intelligence
  • Graduate Certificate in 5G and Beyond
  • Areas of Focus
  • Academic Policies & Schedules
  • Rounding Out Your Education
  • Senior Design
  • Graduate Students
  • Admissions & Financial Aid
  • Undergraduate Tutoring
  • Student Resources
  • Faculty Directory
  • Communications and Networks
  • Computer Architecture and High-Performance Computing
  • Electrical Power and Energy
  • MEMS, Electronics, and Photonics
  • Signal and Image Processing, Systems, and Controls
  • Labs, Centers, & Institutes
  • Research Highlights Archives
  • News Archives
  • Department Newsletter
  • Distinguished Lectures
  • Recorded Talks
  • Announcements
  • ECE@GWU PhD Recruiting

Department of Electrical and Computer Engineering | School of Engineering & Applied Science

Program Overview

The Ph.D. in Computer Engineering prepares aspiring scholars and researchers to explore key areas within the computer engineering field, including computer architecture, integrated circuit design, photonic computing, high-performance computing, and network computing.

Students can expect to work closely with a faculty advisor in their chosen research area to create a curriculum plan and guidance for the doctoral dissertation. Students may also be expected to teach introductory-level courses to undergraduates, present conference papers, and work with faculty on research grant applications.

Program Requirements

Faculty advisor & research focus.

We strongly recommended that prospective doctoral students determine a faculty member in the department with whom they would like to work and a research area of interest. 

Download Faculty & Research Factsheet (PDF)

Please visit the  GW Bulletin  to see a description of the program requirements.

Program Entry

The department offers a Fall, Spring, or Summer semester program entry for its Ph.D. program. To apply for Summer semester entry for the Ph.D. program, the deadline is March 1. (By faculty advisor invitation only)

Admissions Requirements

  • If the applicant has obtained a master’s, a minimum grade point average of 3.4 (on a scale of 4.0) is required.
  • If the applicant has only obtained a bachelor’s degree, the minimum grade point average must be a 3.3 (on a scale of 4.0).
  • Demonstrated capacity for original research in the form of published research articles or conference papers.

Successful submission of online application form, exam scores and other documents as outlined in the  admissions requirements .

GW University Bulletin. Provisonal Edition. 2024-2025.  Opens new window

Computer Science

Mission statement.

The mission of the Department of Computer Science is to serve the global community by providing high-quality computer science education, research, and professional services and to advance computer technology in selective areas while upholding standards of excellence.

Educational Objectives

The undergraduate program of study is designed to prepare graduates to earn an advanced degree in computer science or related disciplines; for a professional degree such as law, business, or medicine; or for employment in the computer or IT industry, where they apply the skills and knowledge learned in the program. Graduates conduct themselves professionally and ethically, work effectively in teams, and communicate effectively with both technical and non-technical audiences.

Educational Outcomes

A graduate in computer science has the ability to do the following:

  • Apply knowledge of computing and mathematics appropriate to the discipline;
  • Analyze a problem and identify and define the computing requirements appropriate to its solution;
  • Design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs;
  • Function effectively on teams to accomplish a common goal;
  • Understand professional, ethical, legal, security, and social issues and responsibilities;
  • Communicate effectively with a range of audiences;
  • Analyze the local and global impact of computing on individuals, organizations, and society;
  • Recognize the need to engage in continuing professional development;
  • Use current techniques, skills, and tools necessary for computing practice;
  • Apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices; and
  • Apply design and development principles in the construction of software systems of varying complexity.

Bachelor's programs

  • Bachelor of Arts with a major in computer science
  • Bachelor of Science with a major in computer science

Combined programs

  • Dual Bachelor of Arts with a major in computer science and Master of Science in the field of computer science
  • Dual Bachelor of Arts with a major in computer science and Master of Science in the field of cybersecurity in computer science
  • Dual Bachelor of Science with a major in computer science and Master of Science in the field of computer science
  • Dual Bachelor of Science with a major in computer science and Master of Science in the field of cybersecurity in computer science
  • Minor in computer science

Master's programs

  • Master of Science in the field of applied computer science
  • Master of Science in the field of computer science
  • Master of Science in the field of cybersecurity in computer science

Doctoral program

  • Doctor of Philosophy in the field of computer science

Graduate certificate programs

  • Computer security and information assurance
  • Trustworthy AI for decision making systems

Professors:  H.A. Choi, J.K. Hahn, B. Narahari, R. Pless ( Chair ), R. Simha, P. Vora, A. Youssef

Associate Professors: A. Aviv, K. Bulusu (Teaching), K. Dobolyi (Teaching), S. Mohan, G. Parmer, T. Wood

Assistant Professors:  Y. Açar, J. Taylor (Teaching), A. Yerukhimovich

Explanation of Course Numbers

  • Courses in the 1000s are primarily introductory undergraduate courses
  • Those in the 2000-4000s are upper-division undergraduate courses; computer science courses in this numerical range may only be taken for graduate credit with permission of the course instructor, permission of the student's academic advisor, and by completing additional work in the course
  • Those in the 6000s and 8000s are for master’s, doctoral, and professional-level students
  • The 6000s are open to advanced undergraduate students with approval of the instructor and the dean or advising office

Note: With the exception of CSCI 1010 , CSCI courses numbered CSCI 1041 and below normally may not be counted toward degree requirements for computer science majors, unless approved by a departmental advisor.

CSCI 1010. Computer Science Orientation. 1 Credit.

Introduction to the field of computer science. Basic and emerging concepts and applications of computer science. Hands-on experiments and team projects. Technical resources, professional ethics, writing, and presentation.

CSCI 1011. Introduction to Programming with Java. 3 Credits.

An introductory course in programming a computer, using the Java language. Object-oriented programming, classes, applets, methods, control structures, inheritance, overriding, GUI widgets, containers, and exceptions.

CSCI 1012. Introduction to Programming with Python. 3 Credits.

Introduction to programming a computer using the Python language; variables, types, assignment, conditionals, loops, lists, and program units. (Fall, spring, and summer, Every year)

CSCI 1013. Computational Problem-Solving Across Disciplines. 3 Credits.

Data structures, data types, visualizations relevant to interdisciplinary computing and data science applications. Computational problem-solving with applications in humanities, social sciences, and STEM. Prerequisites: CSCI 1012 .

CSCI 1020. Applications Software. 3 Credits.

Introduction to the use of microcomputer hardware and software for word processing (e.g., Word), spreadsheets (e.g., Excel), and database management (e.g., Access), with emphasis on the use of computers to solve typical problems in academia and business.

CSCI 1021. Introduction to Computers and the Internet. 3 Credits.

Survey of computers and languages. Introduction to computer programming. History of computing and networking. The effects of computing and the Internet on our lives. E-commerce and new technologies. Concepts of web page design.

CSCI 1022. Introduction to Internet Technology. 3 Credits.

An introductory course for non-technical students who wish to obtain a better understanding of the hardware and software that comprise the Internet. Information transfer over fiber, routing and switching of packets, methods of information transfer, protocols, software, ISP, web pages and multimedia.

CSCI 1023. Introduction to Web Software Development. 3 Credits.

Introduction to the Internet. Topics include address and URL to find your way, linking to a URL, HTML and web programming, building a web page, building a home page, client-server techniques.

CSCI 1099. Variable Topics. 1-36 Credits.

CSCI 1111. Introduction to Software Development. 3 Credits.

Introduction to problem solving on a digital computer using the Java language. Object-oriented programming concepts; documentation techniques; design of test data. Writing, debugging, and running programs in an interactive computing environment. (Spring, summer, and fall, Every year)

CSCI 1112. Algorithms and Data Structures. 3 Credits.

Object-oriented software. Inheritance, exceptions, development of classes, event-driven programming. Data structures such as trees, lists, stacks, queues, and strings. Sorting and searching. Introduction to algorithm performance prediction. Prerequisites: CSCI 1111 with a minimum grade of C; and MATH 1220 or MATH 1231 . (Spring, Every year)

CSCI 1121. Introduction to C Programming. 3 Credits.

Structured programming with the C language; control structures; data types; use of pointers; matrix manipulation to solve simultaneous equations; external subroutines for mathematical and graphical applications; introduction to C++; complex number representation. Co-requisites: MATH 1220 and MATH 1231 . Credit cannot be earned for this course and ECE 1120 . (Spring, Every year)

CSCI 1131. Introduction to Programming with C. 3 Credits.

Intensive introductory course for students with a science, mathematics, or other quantitative backgrounds. Solution of numerical and nonnumerical problems on a digital computer using C programming language in a Unix environment. Prerequisites: MATH 1232 .

CSCI 1132. Data Structures and Software Design. 3 Credits.

Data structures such as trees, lists, stacks, queues, and strings. Big-O notation and introduction to algorithm performance analysis. Solutions of numerical and non-numerical problems. Use of I/O libraries. Application development and software testing. Prerequisite: CSCI 1121 .

CSCI 1311. Discrete Structures I. 3 Credits.

Mathematics for computer science. Sets, functions, sequences. Propositional and predicate calculus, formal proofs, mathematical induction. Matrices, semigroups, groups, isomorphism. Relations, partitions, equivalence relations, trees, graphs. Prerequisites: MATH 1220 or MATH 1231 . (Spring, summer, and fall, Every year)

CSCI 2113. Software Engineering. 3 Credits.

Programming techniques and software development in one or more programming languages; application development using object oriented programming techniques, GUIs, threading, and networking while applying software engineering principles. Prerequisites: MATH 1221 or MATH 1231 ; and CSCI 1112 with a minimum grade of C. (Spring and fall, Every year)

CSCI 2211. Computing and the World. 3 Credits.

The role played by modern computing in the significant social, political, economic, and climate challenges the world faces, relying on perspective provided by other relevant fields. Restricted to students in the BS in computer science program. Prerequisites: CSCI 1112 ; and one of the following: APSC 3115 , CSCI 3362 , CSCI 6362 , CSCI 4341 , or STAT 4157 , prior coursework in programming and data structures and sufficient knowledge of probability/statistics to understand the explanation of some estimation algorithms. (Spring, Every year)

CSCI 2312. Discrete Structures II. 3 Credits.

Basic discrete techniques in computer science; proofs, algebraic structures, number theory, graph theory, asymptotics. Prerequisites: MATH 1221 or MATH 1231 or MATH 1232 or MATH 2233 ; and CSCI 1311 with a minimum grade of C. (Fall, Every year)

CSCI 2410. System Programming. 3 Credits.

Systems programming on POSIX systems; C programming, programs, the command line, processes, input/output, file system access, inter-process communication, libraries, system calls, memory management, injection and overflow attacks, security. Restricted to students in the computer science program. Prerequisites: CSCI 1112 with a minimum grade of C. Credit cannot be earned for this course and CSCI 3410 . (Fall, Every year)

CSCI 2441. Database Systems and Team Projects. 3 Credits.

Design of relational database systems, relational query languages, normal forms, and design of database applications. Team software development, integration, and testing. Professional code of ethics, intellectual property, privacy, and software copyrights. Students cannot receive credit for both CSCI 2441 taken while an undergraduate and CSCI 6441 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 2541 and CSCI 6441 . (Fall and spring, Every year)

CSCI 2441W. Database Systems and Team Projects. 3 Credits.

Design of relational database systems, relational query languages, normal forms, and design of database applications. Team software development, integration, and testing. Professional code of ethics, intellectual property, privacy, and software copyrights. Students cannot receive credit for both CSCI 2441W taken while an undergraduate and CSCI 6441 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 2441W and CSCI 6441 . Includes a significant engagement in writing as a form of critical inquiry and scholarly expression to satisfy the WID requirement. Corequisite: CSCI 2113 . (Spring, Every year)

CSCI 2460. Introduction to Computer Systems. 3 Credits.

Introduction to computer organization and computer systems. Data representation; computer organization; processor instruction sets and assembly programming; language translation; memory; input/output; introduction to operating systems. Restricted to students in the BA and minor programs in computer science. Prerequisites: CSCI 1112 and CSCI 1311 with a minimum grade of C. Corequisites: CSCI 2113 . Recommended background: Introductory coursework and background in computer science, programming, and discrete mathematics. Credit cannot be earned for this course and CSCI 2461 . (Spring, Every year)

CSCI 2461. Computer Architecture I. 3 Credits.

Introduction to design and analysis of computer architectures. Number representation, digital logic and circuit design, computer organization, assembly programming, translating C programs, memory design, program performance. Restricted to students in the BS in computer science program. Prerequisites: CSCI 1112 and CSCI 1311 , both with a minimum grade of C. Corequisites: CSCI 2113 . Credit cannot be earned for this course and CSCI 2460 . (Fall, Every year)

CSCI 2501. Ethical Issues in Computing. 1 Credit.

Introduction and analysis of the ethical issues of the technological age; ethical principles and skills and social analysis skills needed to evaluate future consequences of the design and implementation of complex computer systems; application of professional ethics codes in decision-making in professional practice. Restricted to computer science majors. Prerequisites: CSCI 1010 and CSCI 1011 . (Fall and spring, Every year)

CSCI 2541W. Database Systems and Team Projects. 3 Credits.

Design of relational database systems, relational query languages, Introduction to Not just SQL (NoSQL) database systems, normal forms, and design of database applications. Team software development, integration, and testing. Students cannot receive credit for both CSCI 2541W taken while an undergraduate and CSCI 6441 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 2541 and CSCI 6441 . Includes a significant engagement in writing as a form of critical inquiry and scholarly expression to satisfy the WID requirement. Corequisite: CSCI 2113 . Prerequisite: CSCI 1311 . (Spring, Every year)

CSCI 3212. Algorithms. 4 Credits.

Core concepts in design and analysis of algorithms, data structures, and problem-solving techniques. Hashing, heaps, trees. Graph algorithms, searching, sorting, graph algorithms, dynamic programming, greedy algorithms, divide and conquer, backtracking. Combinatorial optimization techniques. NP-completeness. Prerequisites: CSCI 1311 and CSCI 2113 . (Fall and spring, Every year)

CSCI 3313. Foundations of Computing. 3 Credits.

Introduction to the theory of computing and automata theory. Finite state automata, regular expressions, context-free languages; pushdown automata; Turing machines and computability. Prerequisites: CSCI 2113 ; and CSCI 2312 or CSCI 2460 or CSCI 2461 or MATH 2971 or MATH 2971W . (Spring, Every year)

CSCI 3362. Probability for Computer Science. 3 Credits.

Introduction to probability and statistics for computer scientists; random variables; conditional probability, independence, correlation; applications to computer science, including information theory, data compression, coding, inference, Markov chains, randomized algorithms. Students cannot receive credit for both CSCI 3362 taken while an undergraduate and CSCI 6362 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 3362 and CSCI 6362 . Prerequisites: CSCI 1311 and MATH 1232 . (Spring, Every year)

CSCI 3401. Computer Architecture and Organization. 3 Credits.

Design and analysis of computer architectures. Digital logic and circuit design, computer organization, assembly programming, translation, memory design, pipelined and superscalar architectures, multiprocessing, program performance. Restricted to students in the BS in computer science program. Prerequisites: CSCI 1311 , CSCI 2113 , and CSCI 2410 . Credit cannot be earned for this course and CSCI 2461 . (Spring, Every year)

CSCI 3410. Systems Programming. 3 Credits.

Concepts underlying all computer systems. Processor operation, hierarchical memory systems, embedded boards, data acquisition, actuation, and systems software such as compilers, linkers, and operating systems from the programmer’s perspective. Use of embedded platforms to examine how programs interact with and are constrained by hardware. Prerequisites: CSCI 2461 and CSCI 2113 . (Fall and spring, Every year)

CSCI 3411. Operating Systems. 4 Credits.

Operating systems structure and associated trade-offs; process and thread management; concurrency, synchronization, and deadlock; memory management; scheduling; storage systems and I/O. Prerequisites: CSCI 2113 ; and CSCI 2461 or CSCI 2410 . (Fall, Every year)

CSCI 3414. Introduction to Blockchain Technology and Applications. 3 Credits.

Introduction to blockchain concepts. Illustrates applications in both technical and business contexts. May be taken for graduate credit. Prerequisites: One of the following: CSCI 1012 , CSCI 1111 , ECE 1120 , or MAE 1117 . Recommended background: Prior coursework and background in computer science disciplines, programming, security protocols, machine learning, and distributed systems is helpful. (Fall, Every year)

CSCI 3462. Computer Architecture II. 3 Credits.

Computer organization; design of computer components and of a simple computer. Instruction set and assembly language of a pipelined RISC processor; introduction to high-performance processors; design of cache, main memory, and virtual memory systems; program performance models and system performance; I/O structure and peripherals. Prerequisites: CSCI 2113 and CSCI 2461 . Credit cannot be earned for this course and ECE 3515 . (Spring, Every year)

CSCI 3532. Information Ethics and Policy. 3 Credits.

Ethical issues of new technologies viewed through ethical frameworks. Developing policy analysis skills to evaluate local, global impact of complex computer systems and applying professional ethics codes in decision making in professional practice. Restricted to students in the BS in computer science program. Prerequisites: CSCI 1010 , or CSCI 1011 , or CSCI 1111 . (Spring, Every year)

CSCI 3551. Concepts and Applications of Computer Graphics. 3 Credits.

Introduction to computer graphics without programming; building 3-D geometry and rendering; computer animation; virtual reality and computer games; hands-on projects in modeling, rendering, and animation using commercial software.

CSCI 3552. Design of Computer Animation I. 3 Credits.

Use of commercial 3-D computer animation packages to create digital artistic works. Principles of animation, including timing, exaggeration of motion, and anticipation; use of a storyboard; modeling; motion; rendering and editing. (Fall, Every year)

CSCI 3571. Introduction to Bioinformatics. 3 Credits.

The use of computational techniques in molecular biology, genetics, and evolution; techniques and software for database searching, sequence alignment, gene finding, phylogenetics, genomics, and proteomics. Prerequisites: BISC 1111 and BISC 1112 . Same As: BISC 2584 .

CSCI 3907. Special Topics. 1-3 Credits.

Topic to be announced in the Schedule of Classes.

CSCI 3908. Research. 1-3 Credits.

Applied research and experimentation projects, as arranged. Restricted to juniors and seniors. (Fall and spring, Every year)

CSCI 4223. Principles of Programming Languages. 3 Credits.

Fundamental concepts underlying design of programming languages. Detailed study of functional and object-oriented computational models. Types, evaluation, abstraction, control flow, modules, mutation, laziness, polymorphism, subtyping, inheritance. Practice learning new languages. Students cannot receive credit for both CSCI 4223 taken while an undergraduate and CSCI 6223 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4223 and CSCI 6223 . Prerequisites: CSCI 1311 and CSCI 2113 . (Spring, Odd years)

CSCI 4235. Development of Open-Source Software. 3 Credits.

Design, process, tools, and culture of open-source software development. Cross-platform development and testing. Geographic dispersal, social and team dynamics, licenses (GPL, BSD, other); code reuse (modular code, shared libraries); very-large-scale distributed development techniques (CVS, Bugzilla, release-management, mailing-lists). May be taken for graduate credit. Prerequisite: CSCI 2113 or CSCI 6221 .

CSCI 4237. Software Design for Handheld Devices. 3 Credits.

Design of interactive software for handheld devices. Event driven programming, user interface design practices, memory management, handheld debugging techniques. May be taken for graduate credit. Prerequisites: CSCI 2113 or CSCI 6221 .

CSCI 4243. Capstone Design Project I. 3 Credits.

Planning, design, and construction of the capstone project. Economic analysis of the project. Application of software engineering principles, including software requirements, specification, requirements engineering, reuse, documentation, verification/validation, testing, configuration management. Report writing and presentations. Prerequisite: senior status.

CSCI 4243W. Capstone Design Project I. 4 Credits.

Planning, design, and construction of the capstone project; economic analysis of the project; application of software engineering principles, including software requirements, specification, requirements engineering, reuse, documentation, verification/validation, testing, configuration management. Includes a significant engagement in writing as a form of critical inquiry and scholarly expression to satisfy the WID requirement. Prerequisites: CSCI 3212 and CSCI 3411 . (Fall, Every year)

CSCI 4244. Capstone Design Project II. 4 Credits.

Continuation of CSCI 4243 . ​Planning, design, and construction of the capstone project. Economic analysis of the project. Application of software engineering principles. Restricted to seniors. Prerequisites: CSCI 4243 or CSCI 4243W . (Spring, Every year)

CSCI 4331. Cryptography. 3 Credits.

Introduction to modern cryptography with a focus on formal definitions and provably-secure constructions. Topics include secret-key and public-key encryption, message-authentication codes, digital signatures, and advanced topics. Prerequisites: One of the following: CSCI 2312 , CSCI 3212 , CSCI 3313 , MATH 2971 , or MATH 2971W . Credit cannot be earned for this course and CSCI 6331 . (Fall, Every year)

CSCI 4341. Continuous Algorithms. 3 Credits.

Structures in continuous mathematics from a computational viewpoint; continuous system simulation, computational modeling, probability, statistical techniques, next-event simulation, algorithms for continuous optimization, machine learning, neural networks, statistical language processing, robot control algorithms. Students cannot receive credit for both CSCI 4341 taken while an undergraduate and CSCI 6341 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4341 and CSCI 6341 . Prerequisites: CSCI 1311 and CSCI 2113 . (Spring, Every year)

CSCI 4342. Computational Linear Algebra and Applications. 3 Credits.

Application of linear algebra to computer science and engineering, with a computational perspective; points, vectors, matrices, and their programming repreentations; algorithms for 3D transformations, pose and viewpoint estimation; linear equations, independence, rank; algorithms for matrix decompositions, reduction of dimension; computation with large matrices, under and over-determined systems; applications to large data, computer vision, text processing. Students cannot receive credit for both CSCI 4342 taken while an undergraduate and CSCI 6342 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4342 and CSCI 6342 . Prerequisite: CSCI 2113 . (Spring, Every year)

CSCI 4345. Introduction to Quantum Computing. 3 Credits.

Foundations of quantum computing, Dirac notation, complex vector spaces, state representation, operators. Single and multiple qubits, entanglement, measurement. Standard circuit model. Quantum algorithms and protocols, EPR paradox, Bell’s theorem. Prerequisite: CSCI 4342 , or EMSE 2705 , or MATH 2184 , or MATH 2185 ; and CSCI 3212 , or ECE 3220 , or MATH 2971 , or MATH 2971W , or PHYS 2023 . Credit cannot be earned for this course and CSCI 6345 . (Spring, Every year)

CSCI 4364. Machine Learning. 3 Credits.

Supervised and unsupervised learning, regression, classification, linear models, perceptrons, ensemble methods, non-parametrics, online learning, active learning, feature selection, parameter tuning, and model evaluation. Prerequisites: 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 . Recommended background: Algorithms, probability and statistics, and linear algebra. Credit cannot be earned for this course and CSCI 6364 . (Spring and fall, Every year)

CSCI 4366. Neural Networks and Deep Learning. 3 Credits.

Introduction to deep learning with neural networks: theory and practice. Creating from scratch, simplification with software packages, regression and classification problems for both simple (numerical, etc.) and complex (images, etc.) datasets. Restricted to Computer science majors. Prerequisites: MATH 1231 and CSCI 3212 ; and MATH 2184 or MATH 2185 or CSCI 4342 or EMSE 2705 . Recommended background: Calculus, linear algebra, programming, and algorithms. Credit cannot be earned for this course and CSCI 6366 . (Fall, Every year)

CSCI 4414. Introduction to Blockchain Technology and Applications. 3 Credits.

Introduction to blockchain concepts. Illustrates applications in both technical and business contexts. May be taken for graduate credit. Recommended background: prior coursework and background in computer science disciplines, programming, security protocols, machine learning, and distributed systems is helpful. (Fall and spring, Every year)

CSCI 4415. Real-Time and Embedded Systems. 3 Credits.

Development of software for real-time control of physical systems; reliability and fault tolerance, exceptions and exception handling, reliability and concurrent processes, timeouts, deadline scheduling, shared-memory and message-based device drivers. May be taken for graduate credit. Prerequisite: CSCI 2113 . (Spring, Every year)

CSCI 4431. Computer Networks I. 3 Credits.

Fundamental concepts in the design and implementation of computer networks, the Internet, and protocols – transport, routing, physical layer, management and security; network programming interfaces. Prerequisites: CSCI 2113 . Credit cannot be earned for this course and CSCI 6431 . (Fall, Every year)

CSCI 4431W. Computer Networks I. 3 Credits.

Higher-layer protocols and network applications on the Internet, such as session layer, presentation layer, data encryption, directory services and reliable transfer services, telnet, network management, network measurements, e-mail systems, and error reporting. Includes a significant engagement in writing as a form of critical inquiry and scholarly expression to satisfy the WID requirement. Prerequisites: CSCI 2113 and CSCI 2461 . (Fall and spring, Every year)

CSCI 4454. Augmented and Virtual Reality. 3 Credits.

Principles and practice of augmented reality (AR) and virtual reality (VR); 3D UI/UX and user interaction for immersive experiences; design and implementation of VR and mobile AR applications. May be taken for graduate credit with extra work. Prerequisites: CSCI 2113 . (Spring and fall, Every year)

CSCI 4455. Computer Game Design and Programming. 3 Credits.

Principles, techniques, and design of computer games. Graphic game engines, modeling, motion, AI and interaction; sound design and synthesis; real-time software and hardware issues. May be taken for graduate credit with extra work assigned. Prerequisites: CSCI 2113 .   (Every Year)

CSCI 4511. Artificial Intelligence Algorithms. 3 Credits.

Knowledge representation and reasoning, propositional logic and predicate calculus. Logic programming; search, game trees, backtracking; planning. May be taken for graduate credit. Prerequisites: CSCI 3212 and CSCI 3221. (Spring, Every year)

CSCI 4521. Introduction to Mobile Robotics. 3 Credits.

Overview of autonomous mobile robotics. Sensing, localization, calibration, mapping, perception, decision making, planning, and control. Emphasis on algorithmic rather than hardware aspects of robotics. Development of algorithms that can operate autonomous mobile platforms in complex, real-world environments. Prerequisites: MATH 1232 and MATH 2184 ; and CSCI 3362 or CSCI 4341 . (Fall and spring, Every year)

CSCI 4525. Autonomous Robotics: Manipulation. 3 Credits.

Introduction to robot manipulation. Core principles necessary to program robots for autonomous operation in dynamic and typically human-centric environments. Transdisciplinary concepts from computer science (reinforcement learning, perception), mechanical engineering (kinematics, dynamics), and electrical engineering (control theory). Prerequisites: Permission of the instructor. (Fall and spring, Every year)

CSCI 4527. Introduction to Computer Vision. 3 Credits.

Introduction and overview of computer vision. Image-formation signal processing and filtering. Saliency, image features and feature extraction, tracking, stereo disparity estimation, structure form motion, photogrammetry, optic flow, homography estimation and warping, scene segmentation, place recognition, object recognition, robust estimation, and camera calibration. Prerequisites: MATH 1232 and MATH 2184 ; and CSCI 3362 or CSCI 4341 . Same As: CSCI 6527 . (Spring, Every year)

CSCI 4531. Computer Security. 3 Credits.

Risk analysis, cryptography, operating system security, identification and authentication systems, database security. Prerequisites: CSCI 2113 . Same As: CSCI 6531 . (Spring, Every year)

CSCI 4533. Introduction to Usable Security and Privacy. 3 Credits.

Introduction to concepts and research methods in human factors in computer security and privacy; reading, writing, reviewing scientific literature; developing research problems for exploration and presentation. Restricted to computer science majors and minors. Prerequisites: CSCI 2113 . (Spring, Every year)

CSCI 4541. Network Security. 3 Credits.

Security protocols and applications in networks; packet-level communication security systems; network authentication; intrusion detection systems and firewalls; network attacks. Prerequisites: CSCI 4431 . Same As: CSCI 6541 . (Spring, Every year)

CSCI 4551. Concepts and Applications of Computer Graphics. 3 Credits.

Introduction to computer graphics without programming; building 3-D geometry and rendering; computer animation; virtual reality and computer games; hands-on projects in modeling, rendering, and animation using commercial software; hands-on projects in photo and video manipulation.

CSCI 4552. Design of Computer Animation I. 3 Credits.

CSCI 4553. Design of Computer Animation II. 3 Credits.

Use of commercial 3-D animation packages to create artistic works and visualizations. Process-spanning concepts of development through pre-production, production, and post-production. Emphasis on developing original content and attaining high production values. Prerequisite: CSCI 4552 .

CSCI 4554. Computer Graphics I. 3 Credits.

Graphics primitives; 2D, 3D, and viewing transformations; hierarchical modeling and animation; illumination and shading; texture mapping; shaders; visibility and collision detection; sampling and anti-aliasing; global illumination; projects using OpenGL graphics API. May be taken for graduate credit. Prerequisites: CSCI 2113 or CSCI 6221 . (Spring, Every year)

CSCI 4561. Design of User–Interface Programs. 3 Credits.

Structure of interactive programs. Widgets, windows, and input devices. Client–server model, event-driven programming, and callbacks. Window systems (e.g., Xwindows) and dialog control. May be taken for graduate credit. Prerequisites: CSCI 2113 or CSCI 6221 .

CSCI 4572. Computational Biology. 3 Credits.

Pairwise alignment and scoring. Multiple sequence alignment. Fragment assembly, physical mapping of DNA. Phylogenetic trees. Molecular structure prediction and protein folding. Microarrays and microarray data, image comparison. Clustering. Overview of biological databases, PDB, MMDB, GenBank. Draft genomes and genome browsers. Pathway databases. May be taken for graduate credit. Prerequisite: CSCI 3571 and CSCI 3212 or CSCI 6212 .

CSCI 4576. Introduction to Biomedical Computing. 3 Credits.

A survey of the problems and solutions in biomedical computing. Application of computers in medicine. Patient care and monitoring systems, electronic medical records, digital imaging and analysis. Telemedicine, medical ethics, health care regulations and organizations.

CSCI 4577. Biomedical Computing. 3 Credits.

Computing issues in epidemiology and biosurveillance, decision support, medical imaging and visualization, image-guided surgery; medical databases, issues in system integration, mobile medical computing. May be taken for graduate credit. Restricted to graduate students. Prerequisites: CSCI 2113 and CSCI 4576 . Corequisites: CSCI 2441 . (Spring, Every year)

CSCI 4907. Advanced Topics. 3 Credits.

Topics vary by semester. May be repeated for credit provided topic differs. Consult the Schedule of Classes for more information. Restricted to computer science majors and minors. (Spring and fall, Every year)

CSCI 5099. Variable Topics. 1-99 Credits.

CSCI 6001. Introduction to Computer Programming and Software Development. 3 Credits.

Introduction to concepts and skill development in programming and software development, including problem solving on a digital computer and writing, debugging, and executing programs. Restricted to students in select programs; departmental permission is required. (Fall, spring, and summer, Every year)

CSCI 6002. Introduction to Data Structures and Their Applications. 3 Credits.

Introduction to core computer science data structures including: arrays, lists, linked structures, stacks, queues, and trees. Sorting, searching, and comparison of algorithmic performance. Restricted to students in select programs; departmental permission is required. (Fall, spring, and summer, Every year)

CSCI 6003. Introduction to Software Design and Engineering. 3 Credits.

Introduction to objects and object-oriented programming. Software development for applications including development with GUIs, database access, threads, web programming. Restricted to students in select programs; departmental permission is required. (Fall, spring, and summer, Every year)

CSCI 6004. Introduction to Web Development. 3 Credits.

Client-server programming, web development, front end design, back-end server development, database use for web services. Front and back-end languages, server administration and tools. Departmental permission required prior to enrollment. Prerequisites: CSCI 2113 or CSCI 6003 . Credit cannot be earned for this course and CSCI 2441 , CSCI 2441W , CSCI 2541W .

CSCI 6010. Introduction to Computer Science Fundamentals. 3 Credits.

Review of programming in a high-level language using Java or C++ Introduction to objects and object-oriented programming: static and dynamic objects, inheritance, dynamic method invocation. Data structures: 2D-arrays, linked-lists, stacks, queues, trees, hashing. Discrete structures: sets, graphs, permutations and combinations. Restricted to students whose letter of admission stated that the course is required. (Fall and spring, Every year)

CSCI 6011. Introduction to Computer Systems and Algorithm Analysis. 3 Credits.

Basics of computer systems and system usage: command line, containers, version control, and VMs. Basic data structures, and tools for the analysis of algorithms. Restricted to students whose letter of admission stated that the course is required. (Fall, Every year)

CSCI 6012. Cybersecurity and Privacy. 3 Credits.

Overview of cybersecurity and privacy, including cryptography, authentication, malware, viruses, network security, anonymity, privacy and online privacy, risk management; common cyberattacks and techniques for detection and defense; policy and legal perspectives for managing cybersecurity missions supporting private sector and government; cyber technologies as applied to the stability of global information and communications infrastructure; government cybersecurity policies. (Fall, spring, And summer)

CSCI 6013. Security in Mobile Computing. 3 Credits.

Relationship between security strategic plan and business strategic plan; mobile device solutions (MDS) to access enterprise corporate data; bring your own device (BYOD) paradigm; mobile device management (MDM) best practices, policies, network controls to identify countermeasures, and risk mitigation strategies against common threats. Overview of mobile security solutions for classified processing and communications. Prerequisites: CSCI 6012 . (Fall, spring, And summer)

CSCI 6015. Cyber Forensics. 3 Credits.

Acquiring, preserving and analyzing digitally stored information while ensuring that this information is admissible as evidence in a court of law. Principles and techniques for cyber forensics investigations using industry-standard forensic process. Restricted to SEAS online students.

CSCI 6016. Applied Network Defense. 3 Credits.

Computer security: protection aspects of the Internet. Cryptographic tools to provide security, such as shared key encryption (DES, 3DES, RC and more), public key encryption, key exchange, and digital signature. Internet protocols and applications. Restricted to SEAS online students.

CSCI 6018. Cloud Application Architecture. 3 Credits.

Cloud application design guidelines and software patterns. Survey of cloud services for scalable secure cloud applications. Trade-offs in cloud application design, container vs virtual machine deployments, and monolithic vs microservice. Restricted to SEAS online students.

CSCI 6114. Introduction to Computer Systems and Systems Programming. 3 Credits.

Introduction to basic concepts underlying all computer systems; processor operation, hierarchical memory systems, elementary logic circuits, and systems software such as compilers, linkers, and operating systems from the programmer’s perspective. Software development with the C programming language. Students cannot receive credit for this course and CSCI 6011 . Restricted to students in select programs; departmental permission is required. Prerequisites: CSCI 2113 or CSCI 6003 . (Fall, spring, and summer, Every year)

CSCI 6115. Application Development I. 3 Credits.

Client-server programming, web development, front end design, back-end server development, introduction to databases. Front and back-end languages, server administration and tools. Students cannot get credit for this course and CSCI 2441 , CSCI 2441W , CSCI 2541, or CSCI 2541W . Restricted to students in select programs; departmental permission is required. Prerequisites: CSCI 2113 or CSCI 6003 . (Fall, spring, and summer, Every year)

CSCI 6116. Advanced Application Development. 3 Credits.

Design of large software systems and installable applications, development frameworks, integration of components and services, cloud and web programming, and mobile device development; software specification and testing. Prerequisites: CSCI 6115 , CSCI 6431 and CSCI 6441 . (Fall, spring, and summer, Every year)

CSCI 6212. Design and Analysis of Algorithms. 3 Credits.

Design and analysis of algorithms; Turing machines; NP-complete theory; algorithmic techniques: divide-and-conquer, greedy, dynamic programming, graph traversal, backtracking, and branch-and-bound; applications include sorting and searching, graph algorithms, and optimization. Students are expected to know data structures and possess general programming skills in one or more procedural/OOP language such as C/C++/Java, and to have a good mathematical background such as discrete math and some calculus, prior to registration. (Fall, spring, and summer, Every year)

CSCI 6221. Advanced Software Paradigms. 3 Credits.

Object-oriented, procedural, functional, and concurrent software design paradigms; design patterns; software life cycle concepts; tadeoffs between compiled and interpreted languages; examples from Java, C, C++ and Perl. Restricted to graduate students. (Fall, spring, and summer, Every year)

CSCI 6223. Principles of Programming Languages. 3 Credits.

Fundamental concepts underlying design of programming languages; detailed study of functional and object-oriented computational models; types, evaluation, abstraction, control flow, modules, mutation, laziness, polymorphism, subtyping, inheritance. Students cannot receive credit for both CSCI 6223 taken while a graduate and CSCI 4223 taken while an undergraduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4223 and CSCI 6223 . (Spring, Odd years)

CSCI 6231. Software Engineering. 3 Credits.

The life-cycle model. Requirements and specifications. Design models, structured and object-oriented design. Program development, PDL’s tools, configuration control. Program, unit, and integration testing. Program verification. Other development models. Development metrics. Computer-aided software engineering (CASE). Prerequisites: CSCI 6221 and CSCI 6212 . (Fall and spring, Every year)

CSCI 6232. Software Engineering Development. 3 Credits.

Formal methods in software engineering. First-order logic, basic specification elements, rigorous proofs, formal development process, concurrency. Prerequisites: CSCI 6461 and CSCI 6212 . (Fall and spring, Every year)

CSCI 6233. Software Testing and Quality. 3 Credits.

Flow graphs and path testing, transaction flow testing, data flow testing, software metrics, system testing, test planning and documentation, reliability, statistical testing. Prerequisite: CSCI 6231 . (Fall and spring, Every year)

CSCI 6234. Object-Oriented Design. 3 Credits.

Object-oriented systems, software reusability, software modularity, top–down and bottom–up approaches, object classification, genericity, metaprogramming, concurrent object-oriented programming languages. Prerequisite: CSCI 6221 .

CSCI 6235. Component-Based Enterprise Software Development. 3 Credits.

Component-based software development for enterprise applications. Component models, multi-tier architecture. Specific case studies may include topics such as Enterprise Java Beans, DCOM, and COBRA. Prerequisite: CSCI 6221 .

CSCI 6311. Theory of Computation. 3 Credits.

Theoretical foundations of computer science. Formal languages and automata; regular expressions, context-free languages, parsing; Turing machines and complexity; partial recursive functions; undecidability; program correctness; fixed-point theory; formal specifications of software. Prerequisite: CSCI 6212 .

CSCI 6312. Graph Theory and Applications. 3 Credits.

Undirected and directed graphs. Connectivity, partitions, cycles and matchings. Edge and vertex coloring, chromatic polynomials, and the four-coloring problem. Planar graphs and Kuratowski’s theorem. Properties of random graphs. Applications to a variety of problems. Prerequisite: CSCI 6212 . (Fall and spring, Every year)

CSCI 6318. Complex Systems. 3 Credits.

The edge-of-chaos phenomenon, phase transitions, power laws, small-world networks, Boolean networks, cellular automata, and complex dynamics. Applications to networks and biological systems. Prerequisite: CSCI 6212 .

CSCI 6331. Cryptography. 3 Credits.

Introduction to modern cryptography with a focus on formal definitions and provably-secure constructions. Topics include secret-key and public-key encryption, message-authentication codes, digital signatures, and advanced topics. Prerequisites: CSCI 6212 . Credit cannot be earned for this course and CSCI 4331 . (Fall, Every year)

CSCI 6341. Continuous Algorithms. 3 Credits.

Structures in continuous mathematics from a computational viewpoint; continuous system simulation, computational modeling, probability, statistical techniques, next-event simulation, algorithms for continuous optimization, machine learning, neural networks, statistical language processing, robot control algorithms. Students cannot receive credit for both CSCI 4341 taken while an undergraduate and CSCI 6341 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4341 and CSCI 6341 . (Spring, Every year)

CSCI 6342. Computational Linear Algebra and Applications. 3 Credits.

Linear algebra applied to computational problems in computer science and engineering; points, vectors, matrices, and their programming abstractions; 3D transformations, pose and viewpoint estimation; linear equations; algorithms for matrix decompositions, dimension reduction, computation with large matrices, under- and over-determined systems; applications to big data, computer vision, text processing. Students cannot receive credit for both CSCI 4342 taken while an undergraduate and CSCI 6342 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4342 and CSCI 6342 . (Spring, Every year)

CSCI 6345. Introduction to Quantum Computing. 3 Credits.

Foundations of quantum computing, Dirac notation, complex vector spaces, state representation, operators. Single and multiple qubits, entanglement, measurement. Standard circuit model. Quantum algorithms and protocols, EPR paradox, Bell’s theorem. Recommended background: Linear algebra. Credit cannot be earned for this course and CSCI 4345 . (Spring, Every year)

CSCI 6351. Data Compression. 3 Credits.

Background on signals, information theory, transforms, human vision, and metrics. Lossless and lossy compression techniques. Video compression. Compression standards. Progressive transmission. Prerequisite: CSCI 6212 .

CSCI 6362. Probability for Computer Science. 3 Credits.

Concepts of probability and statistics used in computer science; random variables; conditional probability, independence, correlation; law of large numbers, central limit theorem; applications to computer science, including entropy, information theory, data compression, coding, inference, Markov chains, randomized algorithms. Students cannot receive credit for both CSCI 3362 taken while an undergraduate and CSCI 6362 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 3362 and CSCI 6362 . (Spring, Every year)

CSCI 6364. Machine Learning. 3 Credits.

Supervised and unsupervised learning, regression, classification, linear models, perceptrons, ensemble methods, non-parametrics, online learning, active learning, feature selection, parameter tuning, and model evaluation. Prerequisites: CSCI 6212 . Recommended background: Algorithms, Probability and Statistics and Linear Algebra. Credit cannot be earned for this course and CSCI 4364 . (Spring and fall, Every year)

CSCI 6365. Advanced Machine Learning. 3 Credits.

Theory and algorithms for machine learning research; in-depth focus on advanced machine learning topics such as clustering, learning from data streams, and climate informatics. Prerequisite: CSCI 6364 . (Spring, Every year)

CSCI 6366. Neural Networks and Deep Learning. 3 Credits.

Introduction to deep learning with neural networks: theory and practice. Creating from scratch, simplification with software packages, regression and classification problems for both simple (numerical, etc.) and complex (images, etc.) datasets. Restricted to computer science majors. Prerequisites: CSCI 6212 . Recommended background: Calculus, linear algebra, programming, and algorithms. Credit cannot be earned for this course and CSCI 4366 . (Fall, Every year)

CSCI 6411. Advanced Operating Systems. 3 Credits.

Fundamentals of operating system design and structure, resource management, and system support for multi-core. Topics include scheduling, synchronization, system structure, virtual address spaces, memory management, I/O management, and systems abstractions for modern multi-core architectures. The course involves an implementation component and requires substantial programming experience. This course can be taken for credit by undergraduates who have taken CSCI 3411 . Prerequisite: CSCI 6461 or CSCI 2461 .

CSCI 6412. OS Design and Implementation. 3 Credits.

Builds on CSCI 6411 to provide students with the knowledge to build parts of modern operating systems, which is studied and motivated from the viewpoint of practical design and implementation. Students learn how operating system’s components for resource management and abstraction are built from the ground up and integrated into working systems considering the challenges of reliability, multi-core, and security. The course has a significant implementation component; substantial low-level programming experience is required. Prerequisite: CSCI 6411 . (Fall and spring, Every year)

CSCI 6418. Unix Systems Administration. 3 Credits.

System administration for the stand-alone system or small networks; installation of two or more UNIX variants (Linux, FreeBSD, Solaris) hardware platforms; configuration of mail, name services, and other network utilities; backup and recovery, security and ethics. Students cannot receive credit for both CSCI 4418 taken while an undergraduate and CSCI 6418 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4418 and CSCI 6418 . Prerequisites: CSCI 6114 ; or CSCI 6010 and CSCI 6011 . (Fall, spring, and summer, Every year)

CSCI 6419. Advanced Systems Administration. 3 Credits.

Administration of large systems, non-Unix platforms, web document systems, website administration, cloud and web services, user and IT personnel components, and economics of IT support. Prerequisite: CSCI 6418 . (Fall, spring, and summer, Every year)

CSCI 6421. Distributed and Cluster Computing. 3 Credits.

Algorithmic and implementation challenges in building large scale distributed applications; distributed coordination, scheduling, consistency issues, and fault tolerance algorithms; fundamental distributed systems concepts applied to both high performance computing and cloud computing environments. Prerequisite: CSCI 6212 . Recommended background: Substantial programming experience. (Fall, Every year)

CSCI 6431. Computer Networks. 3 Credits.

Fundamental concepts in the design and implementation of computer networks, the Internet, and protocols; transport, routing, physical layer, management and security; network programming interfaces. Credit cannot be earned for this course and CSCI 4431 , CSCI 4431W . (Fall, Every year)

CSCI 6433. Internet Protocols. 3 Credits.

Understanding of the layered protocols for the Internet. Interconnection of networks. The IP protocol and routing algorithms, switches, bridges, and routers. The transmission control protocol (TCP). Addressing and names. Application-specific protocols, FTP, TELNET, SMTP, SNMP, HTTP. Domain name services. Prerequisites: CSCI 6221 and CSCI 6431 . (Fall and spring, Every year)

CSCI 6434. Design of Internet Protocols. 3 Credits.

Protocol specifications and formal description methods. Finite-state descriptions of Internet protocols. Specification and Description Language. Implementation of protocol specifications. Prerequisites: CSCI 6212 and CSCI 6433 . (Fall and spring, Every year)

CSCI 6441. Database Management Systems. 3 Credits.

Design and architecture of relational database management systems; query languages, data models, index structures, database application design. Students cannot receive credit for CSCI 2441W or 2541W taken while an undergraduate and CSCI 6441 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for CSCI 2441W or CSCI 2541W and CSCI 6441 . Prerequisites: CSCI 6221 and CSCI 6461 . (Spring, Every year)

CSCI 6442. Database Systems II. 3 Credits.

Concepts in database systems. Relational database design. Editing, report generation, updating, schema refinement, tuning. Construction of database management systems. Conceptual and logical design of a database. Prerequisite: CSCI 6441 .

CSCI 6443. Data Mining. 3 Credits.

Fundamental concepts of data mining. Algorithm techniques for data mining, including classification, clustering, association rules mining. Prerequisites: CSCI 6441 or permission of the instructor. (Fall and spring, Every year)

CSCI 6444. Introduction to Big Data and Analytics. 3 Credits.

Big data, its properties, technology and the types and classes of analytics that can be applied to it; associated storage and programming systems. Students gain practical experience through focused projects to apply different analytics to a data set. Prerequisites: CSCI 2113 , CSCI 6221 , or EMSE 6574 . Recommended background: Experience using programming tools SPSS, STATA, R, or SAS is advantageous but not required. (Spring, summer, and fall, Every year)

CSCI 6451. Information Retrieval Systems. 3 Credits.

Information organization and retrieval of natural language data by digital computer systems; statistical, syntactic, and logical analysis of natural language; dictionary and thesaurus systems; searching strategies and cataloging. Large-scale file structures. Prerequisites: CSCI 6221 and CSCI 6461 . (Fall and spring, Every year)

CSCI 6461. Computer System Architecture. 3 Credits.

Concepts in processor, system, and network architectures; architecture of pipeline, superscalar, and VLIW/EPIC processors; multiprocessors and interconnection networks; cache coherence and memory subsystem design for multiprocessor architectures; parallel and distributed system architecture; internetworking. Restricted to graduate students. (Fall, spring, and summer, Every year)

CSCI 6511. Artificial Intelligence. 3 Credits.

Representation and space search; heuristic search; predicate calculus; knowledge representation and knowledge engineering for expert systems; rule-based, hybrid, and O-O systems; semantic nets, frames, and natural language; theorem provers; planning, learning, neural nets; use of AI languages. Prerequisite: CSCI 6212 . (Spring, Every year)

CSCI 6515. Natural Language Understanding. 3 Credits.

The state of the art of natural language parsing and semantic understanding by computer systems. Review of formal, context-free, and transformational grammars and parsing. Augmented transition networks: problems of complexity, semantics, and context. Deterministic parsing and semantic parsing. Prerequisite: CSCI 6511 .

CSCI 6521. Introduction to Mobile Robotics. 3 Credits.

Concepts of autonomous mobile robotics with emphasis on algorithmic aspects. Sensing, sensor fusion, localization, calibration, mapping, perception, decision making, planning, behavior-based control, world modeling, and navigation. Development of algorithms that can operate autonomous mobile platforms in complex, real-world environments. Prerequisites: MATH 1232 and MATH 2184 ; and CSCI 6362 or CSCI 4341 . (Fall and spring, Every year)

CSCI 6525. Autonomous Robotics: Manipulation. 3 Credits.

Manipulation and autonomous operation in dynamic, human-centric environments. Reinforcement learning, perception, optimization algorithms, kinematics, dynamics, control theory. Prerequisites: CSCI 6362 and MATH 2184 ; or permission of the instructor. (Fall and spring, Every year)

CSCI 6527. Introduction to Computer Vision. 3 Credits.

Image signal processing and filtering. Saliency, features and feature extraction, tracking, stereo disparity estimation, structure form motion, photogrammetry, optic flow, homography estimation and warping, scene segmentation, place recognition, object recognition, robust estimation, and camera calibration. Current research topics. Prerequisites: MATH 1232 and MATH 2184 ; and CSCI 6362 or CSCI 6341 . (Fall and spring, Every year)

CSCI 6531. Computer Security. 3 Credits.

Functional description of cryptographic primitives; risk analysis; policy models; design principles; assurance; malicious logic. Restricted to graduate students. Same As: CSCI 4531 . (Spring, Every year)

CSCI 6532. Information Policy. 3 Credits.

Roles, issues, and impacts of computer-based information systems in national and international arenas, focusing on privacy, equity, freedom of speech, intellectual property, and access to personal and governmental information. Professional responsibilities, ethics, and common and best practices in information use. Students cannot receive credit for both CSCI 4532 taken while an undergraduate and CSCI 6532 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4532 and CSCI 6532 . (Fall, Every year)

CSCI 6533. Intro to Usable Security & Privacy. 3 Credits.

Introduction to concepts and research methods in human factors in computer security and privacy; reading, writing, reviewing scientific literature; developing research problems for exploration and presentation. Restricted to computer science program. Corequisites: CSCI 6221 , or CSCI 6461 , or CSCI 6212 . Credit cannot be earned for this course and CSCI 4533 . (Spring, Every year)

CSCI 6534. Information Security in Government. 1-3 Credits.

Roles, issues, and governance of cyber security in the federal government. Overview of the technical aspects of cyber security including federally developed cybersecurity standards and frameworks and government and industry initiatives. Prerequisites: Permission of the instructor. (Spring and fall, Every year)

CSCI 6541. Network Security. 3 Credits.

Security protocols and applications in networks; packet-level communication security systems; network authentication; intrusion detection systems and firewalls; network attacks. Prerequisites: CSCI 6431 . Same As: CSCI 4541 . (Spring, Every year)

CSCI 6542. Computer Network Defense. 3 Credits.

Offensive and defensive information warfare operations. Simulation of various attacks on and defenses of computer systems. Laws related to information warfare. History and literature related to information warfare attacks. Prerequisite: CSCI 6541 .

CSCI 6545. Software Security. 3 Credits.

Security for software systems. Theory and practice of designing and implementing secure software. Security in the context of software engineering. Practical experience with building a software system and securing it, with emphasis on correctness and robustness. Requires substantial prior programming experience. Prerequisites: CSCI 6461 or CSCI 6411 ; and CSCI 6531 or EMSE 6540 ; or permission of the instructor. (Fall and spring, Every year)

CSCI 6547. Wireless and Mobile Security. 3 Credits.

Mobile agents, wireless Web, WAP, WEP, peer-to-peer computing; secure routing; intrusion detection and authentication on wireless networks; security for handheld devices; encryption and cryptographic measures for wireless; real-time wireless security; security measures for embedded devices. Prerequisites: CSCI 6431 and CSCI 6531 . (Spring, Every year)

CSCI 6548. E-Commerce Security. 3 Credits.

Advanced technical topics in e-commerce security. Key security threats. Authentication and authorization models, directory services, cloud based IAM, federated identity. Public key cryptography and PKI. Mobile payment methods, digital currencies, blockchain. Technologies and applications for securing web commerce. Web service security standards. Prerequisites: CS 4531 or CS 6531. (Fall and spring, Every year)

CSCI 6554. Computer Graphics II. 3 Credits.

Algorithmic aspects of computer graphics; 3D viewing transformation; shape modeling; shading and illumination models; visible-surface determination; curves and surfaces; sampling and aliasing; global illumination, ray tracing and radiosity; shadows; image manipulation and texture mapping; procedural models. (Spring, Every year)

CSCI 6555. Computer Animation. 3 Credits.

Euler angles and quaternions; articulated figure motion; forward and inverse kinematics; kinematic, physics based, and behavioral motion control; character animation; motion capture; temporal aliasing; sound synthesis and synchronization. (Fall, Every year)

CSCI 6561. Design of Human–Computer Interface. 3 Credits.

Design of dialogues for interactive systems. Psychological, physiological, linguistic, and perceptual factors. Advantages and disadvantages of various interaction techniques, command language syntaxes, and data presentations. Design methodology and guidelines. Case studies, research readings, and projects. Prerequisite: CSCI 6221 .

CSCI 6562. Design of Interactive Multimedia. 3 Credits.

History, theory, and development of multimedia concepts. Hardware components, platforms, and authoring tools. Scientific, technical, and cognitive foundations of various media including text, sound, graphics, and video. Interface design. Use of a media taxonomy as a design and evaluation tool. Completion of a multimedia portfolio required. Prerequisite: CSCI 6221 .

CSCI 6572. Computational Biology Algorithms. 3 Credits.

Algorithms and models for DNA and protein sequence alignments, gene finding, identification of gene regulatory regions, sequence evolution and phylogenetics, RNA and protein structure, microarray and/or proteomics data analysis. Prerequisites: CSCI 6212 ; and programming experience in C/C++ or Java. (Spring, Every year)

CSCI 6900. Colloquium. 0 Credits.

Lectures by outstanding authorities in computer science. PhD students in computer science must take the course for a number of different lecture topics determined by the department. Consult the Schedule of Classes for additional information.

CSCI 6907. Special Topics. 3 Credits.

Topics vary by semester. May be repeated for credit if the topic differs. See department for details. (Fall and spring, Every year)

CSCI 6908. Research. 1-12 Credits.

Applied research and experimentation projects, as arranged. May be repeated for credit.

CSCI 6917. Guided Research for Graduate Students I. 3 Credits.

Practice research methods, including validation of hypothesis, synthesis and problem solving, and validation methods. Synthesize scientific output including experimental results and theoretical analysis. Present outcomes. Prerequisites: CSCI 6212 and CSCI 6221 .

CSCI 6918. Guided Research for Graduate Students II. 3 Credits.

Adds depth to CSCI 6917 . Practice research methods, including validation of hypothesis, synthesis and problem solving, and validation methods. Synthesize scientific output including experimental results and theoretical analysis. Present outcomes. Prerequisites: CSCI 6212 and CSCI 6221 . Corequisites: CSCI 6917 .

CSCI 6998. Thesis Research. 3 Credits.

CSCI 6999. Thesis Research. 3 Credits.

CSCI 8211. Advanced Topics in Algorithms. 3 Credits.

Graph algorithms, strongly connected components, biconnected components, dominators in acyclic graphs, ordered trees, network flow, planarity testing, bipartite matching, theory of NP completeness, NP-complete problems. Design and analysis of approximation algorithms for NP-complete problems. Prerequisite: CSCI 6212 .

CSCI 8231. Advanced Topics in Software Engineering. 3 Credits.

Seminar on current research and developments in software engineering. Students develop a software package with the aid of available software tools such as requirement tool, design tool, code generators, testing tools, measurement tools, cost estimation tools. Prerequisites: CSCI 6232 and CSCI 6233 . (Fall and spring, Every year)

CSCI 8331. Advanced Cryptography. 3 Credits.

Introduction to secure multi-party computation (MPC) and related topics. Basic definitions and core MPC protocols and reading and presenting the latest research on the topic. Includes practical experience with MPC implementation. Prerequisites: One of the following: CSCI 2312 , CSCI 3212 , CSCI 3313 , CSCI 6212 , MATH 2971 , or MATH 2971W . Recommended background: Some experience with algorithms and cryptography. (Spring, Every year)

CSCI 8401. Advanced Topics in Systems. 3 Credits.

Seminar on current research and developments in computer operating systems. May be repeated for credit. (Spring, Even years)

CSCI 8431. Advanced Topics in Computer Networks and Networked Computing. 3 Credits.

Seminar on current research and developments in computer networks, Internet, networked computing, mobile computing and pervasive computing. May be repeated for credit. Prerequisites: CSCI 6461 , CSCI 6212 and CSCI 6433 . (Fall and spring, Every year)

CSCI 8440. Advanced Topics in Data Management. 3 Credits.

Seminar on current research and developments in computer database systems and information retrieval. May be repeated for credit. Prerequisite: CSCI 6442 or CSCI 6451 .

CSCI 8531. Advanced Topics in Security. 3 Credits.

Seminar on current research and developments in information assurance. May be repeated for credit. Prerequisite: CSCI 6531 .

CSCI 8554. Advanced Topics in Computer Graphics. 3 Credits.

Seminar on current research and developments in computer graphics. Spatial and temporal anti-aliasing: hidden-surface algorithms: illumination models, radiosity, textural mapping. May be repeated for credit. Prerequisite: CSCI 6554 .

CSCI 8900. Advanced Selected Topics. 3 Credits.

Topics announced in the Schedule of Classes.

CSCI 8901. Research and Evaluation Methods. 3 Credits.

Required for all computer science doctoral candidates. The scientific method; research/design requirements and objectives: qualitative, quantitative, and case studies; performance metrics; design procedures and control; sources of error and bias; evaluation tools; formal validation methods; documentation standards. Prerequisite: APSC 3115 .

CSCI 8998. Computer Science Research. 1-12 Credits.

May be repeated for credit. Restricted to doctoral candidates preparing for the qualifying examination. (Fall and spring, Every year)

CSCI 8999. Dissertation Research. 1-12 Credits.

Doctoral candidates performing dissertation research. Restricted to doctoral candidates. (Fall and spring, Every year)

Print Options

Send Page to Printer

Print this page.

Download Page (PDF)

The PDF will include all information unique to this page.

Download PDF of the 2023-2024 Bulletin

All pages in the 2023-2024 Bulletin.

Get the Reddit app

The unofficial subreddit of The George Washington University, based in Washington D.C. We welcome alumni, current students and even employees of the university to join!

Computer Science PhD at gwu?

Hi, I'm interested in applying to their phd program but don't have much info on where past phds have gone (aka job prospects) and how strong the program is overall. I've found some professors I really like and have talked to them. Any info on what experiences I can get overall? Also would help if you could mention stipend, support for grad students (conference trips, etc.), networking opportunities and others :)

By continuing, you agree to our User Agreement and acknowledge that you understand the Privacy Policy .

Enter the 6-digit code from your authenticator app

You’ve set up two-factor authentication for this account.

Enter a 6-digit backup code

Create your username and password.

Reddit is anonymous, so your username is what you’ll go by here. Choose wisely—because once you get a name, you can’t change it.

Reset your password

Enter your email address or username and we’ll send you a link to reset your password

Check your inbox

An email with a link to reset your password was sent to the email address associated with your account

Choose a Reddit account to continue

  • GW Engineering
  • Request Info

Graduate Admissions & Student Services | School of Engineering & Applied Sciences site logo

Graduate Admissions & Student Services

School of Engineering and Applied Science

  • Only at GW SEAS
  • Graduate Student Profile
  • Interactive Map of the Science and Engineering Hall
  • Applied Computer Science
  • Biomedical Engineering
  • Civil and Environmental Engineering
  • Computer Engineering
  • Computer Science
  • Cybersecurity in Computer Science
  • Data Analytics
  • Electrical Engineering
  • Engineering Management
  • Mechanical and Aerospace Engineering
  • Systems Engineering
  • 5G and Beyond
  • Computer-Integrated Design in Mechanical and Aerospace Engineering
  • Computer Security and Information Assurance
  • Emergency Management and Public Health
  • Energy Engineering and Management
  • Energy Systems Management
  • Engineering and Technology Management
  • Environmental and Energy Systems Management
  • Environmental Engineering
  • Environmental Systems Management
  • Geoenvironmental Engineering
  • High-Performance Computing
  • Homeland Security Emergency Preparedness and Response
  • Machine Intelligence
  • Smart Cities and Transportation
  • Structural Engineering
  • Trustworthy AI for Decision Making Systems
  • Five-Year Program
  • ADA & GW SEAS Partnership Program
  • NYU Tandon Bridge Program
  • NRT Doctoral Fellowship Program
  • Online Programs
  • Preferred International Partnership Program (PIP)
  • Master's Program Admissions Requirements
  • Doctoral Admissions Requirements
  • Certificate Program Admissions Requirements
  • TOEFL-exempt countries
  • Combined Five-Year Program Application Requirements
  • Transfer Admissions
  • Federal Academic Alliance
  • Military Members & Veterans
  • Frequently Asked Questions
  • Request More Information
  • Admissions Information Sessions
  • Recruiting Events
  • Graduate Ambassador Program
  • Schedule an Appointment
  • Tuition and Fees
  • Funding Opportunities
  • Admitted Students Checklist
  • Admitted Student Information Sessions
  • Summer English for Academic Purposes (EAP)
  • Official Transcript Policy
  • Welcome Events
  • Graduate Professional Advising

Program Requirements

  • Incomplete Policy & Process
  • Request OPT/CPT Letters
  • Career Services
  • Current Student Events

Graduate Admissions & Student Services | School of Engineering & Applied Sciences

Master of Science in Applied Computer Science

Program overview.

The Master of Science in Applied Computer Science is an online program designed for students looking to enter the field of computing coming from non-mathematical or non-engineering disciplines and who want a strong foundation in computer science in order to achieve their career goals. The program focuses on practical hands-on computational skills in demand such as: databases, networks, web development, security, systems administration and software development. Students complete their program with a portfolio project that showcases skills developed during the course of study.

Students can expect a rigorous curriculum culminating in a required capstone course at the end of the program (CSCI-6116: Advanced Application Development) where students showcase the skills they have developed during the program. Aside from the required course, the program offers students to select 9 elective courses that build the foundations of computer science while offering course options that address modern technological issues in the following areas:

  • Database Management Systems
  • Introduction to Computer Systems and Systems Programming
  • Introduction to Web Development
  • Computer Networks
  • Design of Human Computer Interfaces
  • Design of Interactive Multimedia
  • Software for Handheld Devices
  • Software Engineering

How is the Master of Science in Applied Computer Science different from the Master of Science in Computer Science program?

The regular Master of Science in Computer Science (MS-CS) is an on-campus program that requires mathematical prerequisites for admission. The MS-CS program has more theoretical content that requires students to have a mathematical background. For example, modern artificial intelligence requires students to have a sophisticated background in mathematics whereas the Applied Computer Science program is focused on hands-on, practical software development skills for the workplace.

  • Credit hours : 30
  • Required Capstone Course: CSCI-6116: Advanced Application Development must be taken at the end of the program
  • Duration : Two years (full-time) or three years (part-time)

Download Program Requirements

Admissions Requirements

  • Applicants must have a 4-year bachelor's degree in any field with a minimum of 3.0 GPA (on a 4.0 scale) or equivalent. An educational background in computer science is not required in order for a student to apply to this program.
  • Successful submission of online application form, exam scores, and other documents as outlined in the  admissions requirements .

Please note: Due to its online format, this program will not offer I-20 forms for F-1 visa-seeking students. Non-visa-seeking international students in the US, however, are eligible to apply to this program but must meet English language test score minimums listed under English Language Test Exam Requirements if they did not complete a bachelor’s degree from a US institution.

Deadline to Apply:

The deadline to apply for fall admission is July 1.

Please contact  [email protected]  for any questions about the admissions requirements for the MS in Applied Computer Science program.

Professional Outcomes

Get further insights into the career options and outcomes for students and alumni of SEAS.

Department of Computer Science | School of Engineering & Applied Science site logo

Department of Computer Science

School of Engineering & Applied Science

  • Quick Facts
  • Women in Engineering
  • Justice, Equity, Diversity, and Inclusion Resources
  • JEDI Faculty Instructional Resources
  • Second Major in Computer Science
  • Minor in Computer Science
  • Non-CS Majors
  • Admission to Computer Science as a Second Major or a Minor 
  • Frequently Asked Questions
  • Curriculum Sheets
  • Combined Programs
  • MS in Computer Science
  • MS in Cybersecurity in Computer Science
  • MS in Data Analytics
  • MS in Applied Computer Science
  • Certificate: Gateway to Computer Science (Hybrid)
  • Certificate: Computer Security & Information Assurance
  • PhD in Computer Science
  • MS Frequently Asked Questions 
  • Academic Policies & Schedules
  • Study Abroad
  • Student Organizations
  • Sarah Morin & Grant McClearn
  • Monica Kavathekar & Caitlin Carfano
  • Graduate Students
  • Admissions & Financial Aid
  • About Advising
  • Meet Your Advisor
  • Incoming Students
  • Graduating Seniors
  • Pre-Professional Advising
  • Academic Support Services
  • Undergraduate Ambassadors
  • New Student Experience
  • Diversity and Inclusion
  • Career Services
  • Undergraduate Research
  • National Professional Studies
  • GW Innovation Center
  • Student Resources
  • Academic Integrity Policy
  • Course Registration Information
  • Faculty Directory
  • AI/Machine Learning
  • Algorithms and Theory
  • Computer Security, Privacy and Cryptography
  • Operating and Distributed Systems
  • Multi-Disciplinary and Collaborative Research
  • News Archives
  • Event Archives
  • Closed: Professor of Practice faculty position
  • Closed: Two tenure-track faculty positions

Department of Computer Science | School of Engineering & Applied Science

Bachelor of Science Program

The bachelor of science (BS) program in computer science provides general education, strength in mathematics and science, communication, and an in-depth program in computer science, including an 8-credit senior design project that closely models "industrial-strength" project development.

As part of a residency requirement, all computer science majors must take a minimum of 30 credits in computer science at GW. These credits include courses that students might take in an approved study abroad program.

Detailed information concerning the program curriculum is available in this Bulletin, which is the definitive statement of degree requirements and is updated to reflect and  archive  the requirements for each entering class.

SEAS and non-SEAS students interested in pursuing the BS in computer science as a double major need to complete all the requirements below.

The program below is for students beginning in Fall 2022 or later. 

Students in academic years 2019-2020 through 2021-22 see the 2019-20 through 2021-22 curriculum ; those in 2013-14 through 2018-19 see the Fall 2013 - Fall 2019 curriculum  and those in earlier academic years see the Pre-Fall 2013 curriculum .

Residency requirement—As part of a residency requirement, all BS computer science majors, whether majors within SEAS or secondary majors in another school, must take a minimum of 30 upper-level credits in computer science courses at GW. Should a student pursue an approved study abroad program, credits earned in that program count toward this requirement.

Recommended program of study

Course List
Code Title Credits
First semester15
UW 1020University Writing 4
CSCI 1010Computer Science Orientation1
CSCI 1111Introduction to Software Development3
SEAS 1001Engineering Orientation1
Mathematics requirement 3
Humanities, social science, or non-technical elective 3
Second semester16
CSCI 1112Algorithms and Data Structures3
CSCI 1311Discrete Structures I3
Mathematics requirement 3
Science requirement 4
Humanities, social science, or non-technical elective 3
Third semester16
CSCI 2113Software Engineering3
CSCI 2312Discrete Structures II3
CSCI 2410System Programming3
Science requirement 4
Humanities, social science, or non-technical elective 3
Fourth semester15
CSCI 2541WDatabase Systems and Team Projects3
CSCI 3313Foundations of Computing3
CSCI 3401Computer Architecture and Organization3
Policy and Ethics requirement 3
Statistics or linear algebra requirement 3
Fifth semester14
CSCI 3212Algorithms4
CSCI 3411Operating Systems4
CS technical elective 3
Humanities, social science, or non-technical elective 3
Sixth semester15
CS technical elective 3
Statistics or linear algebra requirement 3
Humanities, social science, or non-technical elective 3
General elective 3
General elective 3
Seventh semester16
CSCI 4243WCapstone Design Project I4
CS technical elective 3
Humanities, social science, or non-technical elective 3
General elective 3
General elective 3
Eighth semester16
CSCI 4244Capstone Design Project II4
General elective 3
General elective 3
General elective 3
General elective 3

1 Course satisfies the University General Education Requirement in mathematics, science, or writing. UW 1020 must be completed prior to enrolling in any writing course in the major, including CSCI 2441W and CSCI 2541W .

2 H umanities, social science, and non-technical elective  requirements: All BS in computer science students must take one humanities course and two social science courses from the University General Education Course List  and three additional humanities, social science, and/or non-technical courses from the SEAS Humanities, Social Science, and Non-Technical Elective Requirement list . All courses selected to satisfy this requirement must be at least 3 credits and approved by the faculty advisor.

3 Mathematics requirement: Can be met by taking MATH 1220 and MATH 1221 and MATH 1232 or by taking MATH 1231 and MATH 1232 . All students must take two MATH courses not counting MATH 1220 ; students who take MATH 1220 must take it one of their general electives.

4 Science requirement: Can be met by choosing two courses from BISC 1111 , BISC 1112 , CHEM 1111 , CHEM 1112 , PHYS 1021 , or  PHYS 1022 .

5 Policy and Ethics Requirement: Can be met by taking one of the following: CSCI 2211 , PHIL 2135 , ANTH 3625 , or  CSCI 3532 .

6 Statistics or linear algebra requirement: Students must take both a statistics class, and a linear algebra class. The Statistics requirement can be met by choosing from APSC 3115 , CSCI 3362 , CSCI 6362 , CSCI 4341 , or STAT 4157 . The Linear algebra requirement can be met by taking one of the following: MATH 2184 , MATH 2185 , CSCI 4342 , or EMSE 2705 .

7 Computer science technical elective requirement:  All students in the BS in computer science program are required to take three technical courses (for a minimum of 9 credits) of computer science coursework. All courses must be numbered CSCI 4000 and above.

8 General elective requirement:  All students in the BS in computer science are required to complete 24 credits of general elective courses. All courses transferred to the University as Advanced Placement (AP) credit must have the explicit, documented approval from the faculty adviser. Both technical and non-technical courses from across the university can be taken to meet these requirements, however, they must meet the following guidelines:

  • Classes that provide any number of credits are allowed, and they can be combined toward the minimum of 24 credits. Note that LSPA classes cannot count toward SEAS degree requirements.
  • Variable Topics (typically 1099) and Special Topics courses outside of Computer Science require advisor approval. Credit cannot be given for internships.
  • Only a single Research class (e.g. CSCI 3908) for up to three credits can be taken a semester.
  • Courses from other departments that significantly overlap with, or are not as advanced as, the required content for the computer science degree program do not count toward this requirement. Such courses include, but are not limited to, basic programming classes and the following: BADM 2301 , EMSE 4197 , ISTM 3119 , ISTM 4120 , ISTM 4121 , ISTM 4123 , STAT 1051 , STAT 1053 ,  STAT 1129 ,  and classes from the PSIS and PSCS programs.
  • CSCI courses numbered below 3000 may not count toward this requirement. Exceptions may be granted for students who took such courses prior to transferring into a CS BS degree program.
  • Students taking MATH 1220 as a prerequisite for MATH 1221 may count MATH 1220 as a General Elective.
  • The foreign language studied may not be a native language of the student unless the courses taken are literature courses.
  • If a student has studied the language previously, the student must first take a placement test given by the language department and enroll in a course recommended by the respective language department.

Orientation for all incoming MS/PhD computer science students. 

gwu phd computer science

Find Info For

  • Become a Student
  • Current Students
  • Research and Partnerships

Quick Links

  • Graduate Students

Aniket Mohanty

  • Printable Faculty/Staff Directory

Graduate Student

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone: (765) 494-6010 • Fax: (765) 494-0739

Copyright © 2024 Purdue University | An equal access/equal opportunity university | Copyright Complaints | DOE Degree Scorecards

Trouble with this page? Accessibility issues ? Please contact the College of Science .

  • Penn Engineering Online Degrees
  • Penn Engineering Online Dual Dual Degree
  • Online Graduate Certificates
  • Take a Course
  • On-Demand Learning
  • Course Catalog
  • Computer Science Fundamentals Graduate Certificate
  • All Courses
  • MCIT Online
  • MSE-DS Online
  • MSE-AI Online
  • Graduate Certificates

Graduate Certificates Courses & Policies

The Online Graduate Certificate from Penn Engineering Online is a for-credit credential that will produce an academic transcript and paper certificate. To earn a certificate, students can take a maximum of four (4) course units. Two of these four course units may be double-counted from your Penn Engineering graduate degree program.

Students may earn a maximum of two certificates. No course may be triple counted, i.e., counted for more than two credentials.

While most individuals will complete the Online Graduate Certificate program within one year, students may choose to extend their studies. In this case, all Certificate requirements must be met within a maximum of two years.

*Note: Degree students will receive first priority for course registration.

Computer Science Fundamentals Graduate Certificate Courses

One (1) Required Course

Introduction to Software Development

This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Includes an introduction to programming using Python, where students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. Also provides an introduction to basic data science techniques using Python. The second half of this course is an introduction to object-oriented programming using Java, where students are introduced to polymorphism, inheritance, abstract classes, interfaces, and advanced data structures. Students will also learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.

Pre-Requisites

No Pre-Requisites

Three (3) courses from the following list:

Mathematical Foundations of Computer Science

This course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.

There are no college-level prerequisites for this class. However, reviewing the algebra learned in high school will be very useful. No prior programming background is expected nor will this course assign any programming exercises.

Introduction to Computer Systems

This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.

This course does not have prerequisites, but CIT 5910 Introduction to Software Development is a co-requisite.

Data Structures & Software Design

This course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.

Students in this course are expected to have completed or waived CIT 5910 Introduction to Software Development.

Computer Systems Programming

This course is a continuation of CIT 5930 and introduces students to fundamental concepts in computing systems. The course is divided into two parts. The first half of the course introduces important concepts in modern operating systems: processes, scheduling, caching, and virtual memory. The second half of the course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

Algorithms & Computation

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

CIT 5920 | Co-requisite: CIT 5940 (Taking concurrently is allowed but taking beforehand is preferred)

group of students with laptops working at a table

Bachelor's Programs

Each year, the School of Computer Science admits students to undergraduate programs ranging from a traditional B.S. in computer science to a bachelor of computer science and arts. 

Whatever option you choose, you’re guaranteed to find a rigorous program dedicated to the real-world training and practical problem solving that has been the hallmark of computer science education at CMU since its inception.

B.S. in Computer Science

Carnegie Mellon's undergraduate major in computer science combines a solid core of computer science courses with the ability to gain substantial depth in another area through a required minor in a second subject. The curriculum also gives you numerous choices for science and humanities courses. Computing is a discipline with strong links to many fields, and our program gives you unparalleled flexibility to pursue these fields. Our mathematics and probability component ensures that you'll have the formal tools to remain current as technologies and systems change, but at the same time you'll gain insight into the practical issues of building and maintaining systems by participating in intensive project-oriented courses.

Unlike other universities, where research rarely occurs at the undergraduate level, CMU CS students often have part-time or summer jobs — or receive independent study credit — working on research while pursuing their bachelor's degree. If you're interested in a research/graduate school career, we offer an intensive course of research, equivalent to four classroom courses, culminating in the preparation of a senior research honors thesis.

Requirements

Current Computer Science Undergraduate Curriculum  

Computer Science Undergraduate curriculum information for prior years are available on the Previous Course Catalogs webpage .

How to Apply

SCS Undergraduate Majors

Including the B.S. in CS, the School of Computer Science offers five bachelor's degrees.

Information on the other four degrees can be found on the respective websites for the degree:

  • Artificial Intelligence
  • Computational Biology
  • Human-Computer Interaction
  • Current Semester Courses
  • Upcoming Semester Courses
  • Schedule of Classes
  • Undergraduate Catalog
  • How to Apply as Incoming First-Year
  • Incoming Student Course Transfer
  • B.S. in CS Curriculum
  • B.S. in CS Concentrations
  • B.S. in CS External Course Transfer
  • B.S. in CS Program Contacts
  • Guidelines for Internal Transfer or Dual Degree
  • Minor and Additional Major in Computer Science
  • Other SCS Undergraduate Programs
  • Summer Research for International Students
  • Master's Programs
  • Doctoral Programs
  • Student Resources

COMMENTS

  1. PhD in Computer Science

    PhD in Computer Science The Ph.D. in Computer Science aims to build the next generation of scholars in computer science research. At GW, doctoral students can expect to work closely with a faculty advisor in their chosen research area to create a curriculum plan and guidance for the doctoral dissertation. Students have the opportunities to ...

  2. Ph.D. in Computer Science

    The Ph.D. in Computer Science aims to build the next generation of scholars in computer science research. At GW, doctoral students can expect to work closely with a faculty advisor in their chosen research area to create a curriculum plan and guidance for the doctoral dissertation. ... PhD Course Guidelines: PhD students must work with their ...

  3. Doctor of Philosophy in the Field of Computer Science

    Contact for questions: [email protected] 202-994-1802 (phone) 202-994-1651 (fax) Hours: 9:00 am to 5:00 pm, Monday through Friday. The following requirements must be fulfilled: The general requirements stated under School of Engineering, Doctoral Program Regulations.

  4. PhD in Computer Science

    The Ph.D. in Computer Science aims to build the next generation of scholars in computer science research.

  5. Department of Computer Science

    W. Scott Amey, M.S. '75, named as the 2024 GW Engineering graduation celebration speaker May 14, 2024. The George Washington University School of Engineering and Applied Science is excited to welcome W. Scott Amey, M.S. '75 as the 2024 GW Engineering graduation celebration speaker.

  6. Graduate Programs

    Science & Engineering Hall 800 22nd St NW Room 4000 Washington, DC 20052 202-994-7181 [email protected]

  7. Ph.D. in Computer Engineering

    Science and Engineering Hall (SEH) 800 22nd Street NW Suite 2500 Washington, D.C. 20052 Phone: 202-994-1802 [email protected]

  8. Department of Computer Science

    The George Washington University, 2010 3640 Science & Engineering Hall Phone: 202-994-3379 [email protected] ... PhD in computer science, 2001, Harvard University 4600 Science & Engineering Hall

  9. Master of Science in Computer Science

    Science & Engineering Hall 800 22nd St NW Room 4000 Washington, DC 20052 202-994-7181 [email protected]

  10. Doctoral Degrees

    GW's Online Engineering Programs offer a number of post-master's online doctoral degree programs: the Doctor of Engineering (D.Eng.) in Artificial intelligence & machine learning, the Doctor of Engineering (D.Eng.) in cybersecurity analytics, and the Doctor of Engineering (D.Eng.) in engineering management, and the Doctor of Philosophy (Ph.D.) in systems engineering.

  11. Online Doctor of Philosophy in Systems Engineering

    Admissions Process Review the Admissions Requirements Minimum of bachelor's and master's degrees in engineering, computer science, mathematics, physics or a closely related field from recognized institutions. A minimum graduate level GPA of 3.5 A minimum of two college-level calculus courses passed with grades of B- or better

  12. Doctor of Engineering in A.I. & Machine Learning

    The degree requires completion of eight graduate-level courses (listed below) and a minimum of 24 credit hours of Praxis Research (SEAS 8588). ... business, computer science, or a related field from accredited institutions. A minimum graduate-level GPA of 3.2; Capacity for original scholarship. ... The George Washington University 170 Newport ...

  13. Computer Science (B.S., M.S., Ph.D.)

    Computer scientists work in many different ways: pen-and-paper theoretical work on foundations and fundamentals of coding, designing software and computer programs, programming work using a computer, and collaborative teamwork to complete research and solve software and programming issues.

  14. George Washington University PhD in Computer Science

    Computer Science is a concentration offered under the computer science major at George Washington University. We've gathered data and other essential information about the doctor's degree program in computer science, such as if the program is offered online, ethnicity of students, how many students graduated in recent times, and more.

  15. Ph.D. in Computer Engineering

    800 22nd Street NW 5000 Science & Engineering Hall Washington, DC 20052. 202-994-6083 [email protected]

  16. George Washington University

    GW 's Graduate School Rankings #62. ... in Computer Science (tie) #61. in Economics ... Engineering, Nursing and Education School data for George Washington University. Learn More. Graduate School ...

  17. B.A./B.S. Computer Science/M.S. in Cybersecurity in Computer Science

    Administered through the Department of Computer Science, the five-year degree program in B.A./B.S. in Computer Science and M.S. degree in Cybersecurity in Computer Science offers GW undergraduate students to obtain a graduate degree in one academic year following successful completion of the bachelor's degree in Computer Science. To complete the two degrees in five years, students must take ...

  18. Computer Science

    The mission of the Department of Computer Science is to serve the global community by providing high-quality computer science education, research, and professional services and to advance computer technology in selective areas while upholding standards of excellence. The undergraduate program of study is designed to prepare graduates to earn an ...

  19. Department of Computer Science

    The field of computing impacts a wide range of technical and non-technical disciplines, and the department's academic programs reflect this. We offer a Bachelor of Science degree in computer science, a Bachelor of Arts degree in computer science, five-year combined Bachelor's and Master's degrees, and options for second majors, minors, and non-major courses.

  20. Master of Science in Computer Science

    Science and Engineering Hall (SEH) 800 22nd Street NW Suite 2500 Washington, D.C. 20052 Phone: 202-994-1802 [email protected]

  21. Computer Science PhD at gwu? : r/gwu

    Current stipend is ~25K (+ possible support for research over the summer). The biggest key here (and, any PhD program) is to make sure that there are faculty working in areas in which you are interested! source: I'm CS dept. chair @ GWU (DM me if you'd like to connect by Zoom/e-mail.) edit: typo. Hi, I'm interested in applying to their phd ...

  22. Master of Science in Applied Computer Science

    Science and Engineering Hall (SEH) 800 22nd Street NW Suite 2500 Washington, D.C. 20052 Phone: 202-994-1802 [email protected]

  23. Bachelor of Science Program

    7 Computer science technical elective requirement: All students in the BS in computer science program are required to take three technical courses (for a minimum of 9 credits) of computer science coursework. All courses must be numbered CSCI 4000 and above.. 8 General elective requirement: All students in the BS in computer science are required to complete 24 credits of general elective courses.

  24. MS/PhD Orientation for CS Students

    Orientation for all incoming MS/PhD computer science students. Hosted By. CS Grad Program Director. Event Title. MS/PhD Orientation for CS Students . Department of Computer Science, Stony Brook University, Stony Brook, NY 11794-2424 ...

  25. Computer science, broadly applied

    School of Computing at George Mason University 4511 Patriot Cir, Fairfax, VA 22030 Tel:703-993-1000

  26. Aniket Mohanty

    Graduate Students; Student Organizations; Ombuds/Student Concerns Form; Diversity. Diversity statement; Asian Statement of Support; Black Statement of Solidarity; ... Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907. Phone: (765) 494-6010 • Fax: (765) 494-0739.

  27. New Computer Science Education Program keeps teachers up to date on

    The Graduate School of Education is offering a new computer science fluency and preparation program for K-12 teachers this fall that aims to help them meet New York's Computer Science and Digital Fluency Standards, a series of rigid criteria for K-12 curricula developed by the Board of Regents in 2020.. The Computer Science Teacher Preparation Program, one of the first in the state, was ...

  28. Computer Science Fundamentals Graduate Certificate

    Computer Science Fundamentals Graduate Certificate Courses. One (1) Required Course. CIT 5910 Introduction to Software Development . Close CIT 5910 Introduction to Software Development. This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas ...

  29. PDF THE COMPUTER SCIENCE PhD PROGRAM AT CARNEGIE MELLON UNIVERSITY

    Carnegie Mellon's Computer Science PhD program aims to produce well-educated researchers, teachers, and future leaders in Computer Science. The PhD degree is a certification by the faculty that the student has a broad education in Com-puter Science and has performed original research in a topic at the forefront of the field.

  30. Bachelor's Programs

    Carnegie Mellon University's Music and Technology program was established in 2009 as a joint project between three of the schools: The School of Music, School of Computer Science, and the Department of Electrical and Computer Engineering. Information regarding this degree is available on the Bachelor of Science in Music and Technology website.