Computer Science

About the Program

Bachelor of Arts in Computer Science: (BACS): 186.5 quarter credits
Bachelor of Science in Computer Science (BSCS): 186.5 quarter credits

The Drexel major in computer science offer extensive exposure and hands-on practice in the core areas of the field, including programming paradigms and languages, algorithms, systems, networking, and software engineering. Students also select upper level tracks in areas such as artificial intelligence, security, graphics and vision, and in human-computer interaction. The program's flexibility allows students to easily minor in an area in which they would like to apply their computing knowledge, tracks and electives. This hands-on curriculum combined with co-op provides real world experience that culminates in a full year software project.

The programs of study in computer science are designed with the flexibility to prepare students for careers in a rapidly changing profession and to allow strong preparation for graduate education in the field. In addition to the courses in the major, the Bachelor of Science program emphasizes foundation courses in the sciences and in applied mathematics, leading to careers involving applications in science and engineering. The Bachelor of Arts degree emphasizes foundation courses in the humanities and the social sciences, leading to careers involving applications in those areas.

 Core courses in all programs include programming and data structures, programming language concepts, computer systems architecture, and a track of courses in software methodology and engineering. Students also choose two other tracks from the following: artificial intelligence, computer graphics, computer and network security, data structures and algorithms, game development and design, human-computer interaction, numeric and symbolic computation, operating systems and programming languages. Please contact the department for a current list of computer science elective and track courses.

Concentration in Game Programming and Development

The Game Programming and Development (GMPD) concentration program provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this concentration include fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design.

Mission Statement

To educate students for computer science careers in industry and research with an emphasis on analysis of problems, understanding of fundamental concepts, and interest in lifelong learning. To integrate real-world experiences, e.g., as obtained through the cooperative education program, into the academic curriculum.

Program Educational Objectives

The Bachelor of Science in Computer Science program prepares its graduates:

  • to understand and be able to apply the underlying principles of computer science to a variety of problem domains;

  • to develop good communication skills so that they can solve problems and communicate their solution;

  • to develop strong analytical skills so that they can quickly assess how to solve problems;

  • to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;

  • to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;

  • to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.

  • to understand and be able to apply mathematics and science.

The Bachelor of Arts in Computer Science program prepares its graduates:

  • to understand and be able to apply the underlying principles of Computer Science to a variety of problem domains;

  • to develop good communication skills so that they can solve problems and communicate their solution;

  • to develop strong analytical skills so that they can quickly assess how to solve problems;

  • to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;

  • to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;

  • to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.

  • to have a broad education in the liberal arts balanced with technical study in computer science.

Both BA an BS program alumni will:

  • be valued employees in a wide variety of occupations in industry, government and academia, in particular as computer scientists and software engineers;

  • succeed in graduate and professional studies, such as engineering, science, law, medicine and business;

  • pursue life-long learning and professional development to remain current in an ever changing technological world;

  • provide leadership in their profession, in their communities, and society;

  • function as responsible members of society with an awareness of the social and ethical ramifications of their work.

Student Outcomes

The department’s student outcomes reflect the skills and abilities that the curriculum is designed to provide to students by the time they graduate.

The Drexel Computer Science program prepares its graduates:

  • to understand and be able to apply the underlying principles of Computer Science to a variety of problem domains;
  • to develop good communication skills so that they can solve problems and communicate their solution;
  • to develop strong analytical skills so that they can quickly assess how to solve problems;
  • to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;
  • to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;
  • to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.

Program-Specific Outcomes:

The Bachelor of Science in Computer Science program prepares its graduates:

  • to understand and be able to apply mathematics and science.

The Bachelor of Arts in Computer Science program prepares its graduates:

  • to have a broad education in the liberal arts balanced with technical study in computer science.

Additional Information

The Computer Science BS and BA programs are accredited by the Computing Accreditation Commission (CAC) of ABET, http://www.abet.org.

For more information about this major, contact the Department of Computer Science.

 

Degree Requirements (BA) 

The Bachelor of Arts (BA) program emphasizes foundation courses in the humanities and the social sciences, leading to careers involving applications in those areas.

General Education Requirements
COM 230Techniques of Speaking3.0
ENGL 101Expository Writing and Reading3.0
ENGL 102Persuasive Writing and Reading3.0
ENGL 103Analytical Writing and Reading3.0
PHIL 311Computer Ethics3.0
UNIV E101The Drexel Experience2.0
Humanities/Fine Arts electives6.0
International Area studies6.0
Foreign Language courses 8.0
Social Studies electives12.0
Diversity Studies electives6.0
Science Requirements *18.0
Students must take one full year of a laboratory science and take courses in more than one science field.
BIO 122
  & 122
  & BIO 126
Cells and Genetics
   and Cells and Genetics
   and Physiology and Ecology
General Chemistry I
   and General Chemistry II
   and General Chemistry III
Fundamentals of Physics I
   and Fundamentals of Physics II
   and Fundamentals of Physics III
Additional Science Electives (as needed to reach 18.0 credits total.)
Mathematics Requirements26.0
Introduction to Analysis I
Calculus I
Introduction to Analysis II
Calculus II
Mathematics for the Life Sciences
Calculus III
Discrete Mathematics
Introduction to Business Statistics
Scientific Data Analysis I
Business Statistics II
Mathematics/Science elective
Computer Science Requirements
CS 164Introduction to Computer Science3.0
CS 171Computer Programming I3.0
CS 172Computer Programming II3.0
or CS 175 Computer Programming I-II
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
CS 360Programming Language Concepts3.0
CS 451Software Engineering3.0
CS 491 [WI] Software Engineering Workshop3.0
CS 492 [WI] Software Engineering Workshop II3.0
CS 493 [WI] Software Engineering Workshop III3.0
Computer Science electives6.0
Computer Science Track courses See Below18.0
Other Courses
Free electives23.5
Total Credits186.5

*

Other options for the laboratory sequence are available; see the Computer Science department for list.

Computer Science Tracks

Students must complete two of the following Computer Science tracks for a total of 18.0 credits. The tracks may overlap by one course. Students should check with the Department for any additional Special Topics courses being offered that may be appropriate for one of the tracks.

CS 440Theory of Computation3.0
CS 457Data Structures and Algorithms I3.0
CS 458Data Structures and Algorithms II3.0
Artificial Intelligence
CS 380Artificial Intelligence3.0
CS 481Advanced Artificial Intelligence3.0
CS 485Special Topics in Artificial Intelligence3.0
Computer and Network Security
CS 472Computer Networks: Theory, Applications and Programming3.0
CS 475Computer and Network Security3.0
CS 303Algorithmic Number Theory and Cryptography3.0
Computer Graphics and Vision
CS 430Computer Graphics3.0
CS 435Computational Photography3.0
CS 338Graphical User Interfaces3.0
or CS 431 Advanced Rendering Techniques
or CS 432 Interactive Computer Graphics
Game Development and Design
CS 345Computer Game Design and Development3.0
or GMAP 345 Game Development Foundations
Select two of the following:6.0
Serious Games
Experimental Game Development
Experimental Games
Serious Game Development
Game Development: Workshop I
Game Development: Workshop II
Topics in Computer Gaming
Human-Computer Interactions
CS 337The Psychology of Human-Computer Interaction3.0
CS 338Graphical User Interfaces3.0
CS 430Computer Graphics3.0
or CS 345 Computer Game Design and Development
or CS 435 Computational Photography
or PSY 330 Cognitive Psychology
Numeric and Symbolic Computation
CS 300Applied Symbolic Computation3.0
MATH 300Numerical Analysis I4.0
MATH 305Introduction to Optimization Theory3.0-4.0
or MATH 301 Numerical Analysis II
or CS 303 Algorithmic Number Theory and Cryptography
Programming Languages
CS 440Theory of Computation3.0
CS 441Compiler Workshop I3.0
CS 442Compiler Workshop II3.0
Software Engineering
SE 311Software Architecture II3.0
SE 320Software Verification and Validation3.0
SE 410Software Evolution3.0
Systems
CS 361Concurrent Programming3.0
CS 370Operating Systems3.0
CS 461Database Systems3.0
or CS 472 Computer Networks: Theory, Applications and Programming
or CS 365 System Administration

Writing-Intensive Course Requirements

In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.

A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.


Sample Plan of Study (BA) 

5 YR UG Co-op Concentration

Term 1Credits
CS 164Introduction to Computer Science3.0
ENGL 101Expository Writing and Reading3.0
UNIV E101The Drexel Experience1.0
MATH 101
or 121
Introduction to Analysis I
Calculus I
4.0
Select one of the following:4.5
Cells and Genetics 
General Chemistry I 
Fundamentals of Physics I 
 Term Credits15.5
Term 2
ENGL 102Persuasive Writing and Reading3.0
CS 171
or 175
Computer Programming I
Computer Programming I-II
3.0
MATH 102
or 122
Introduction to Analysis II
Calculus II
4.0
UNIV E101The Drexel Experience0.5
Select one of the following:4.5
Evolution & Organismal Diversity 
General Chemistry II 
Fundamentals of Physics II 
 Term Credits15.0
Term 3
CS 172*Computer Programming II3.0
ENGL 103Analytical Writing and Reading3.0
MATH 123
or 239
Calculus III
Mathematics for the Life Sciences
4.0
UNIV E101The Drexel Experience0.5
Select one of the following:4.5
Physiology and Ecology 
General Chemistry III 
Fundamentals of Physics III 
Free elective 3.0
 Term Credits18.0
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
Science elective**3.0
Diversity studies elective 3.0
Arts and Humanities elective 3.0
 Term Credits15.0
Term 5
CS 260Data Structures3.0
MATH 221Discrete Mathematics3.0
Social studies elective 3.0
Free elective 3.0
Science elective**3.0
 Term Credits15.0
Term 6
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
STAT 201Introduction to Business Statistics4.0
Social studies elective 3.0
Arts and Humanities elective 3.0
 Term Credits17.0
Term 7
COM 230Techniques of Speaking3.0
CS 360Programming Language Concepts3.0
STAT 202Business Statistics II4.0
Social studies elective 3.0
Computer Science elective**3.0
 Term Credits16.0
Term 8
PHIL 311Computer Ethics3.0
Foreign language course 4.0
Computer Science elective**6.0
Math/science elective3.0
 Term Credits16.0
Term 9
CS 451Software Engineering3.0
Free elective 3.0
Computer science electives**3.0
Foreign language course 4.0
Diversity studies elective 3.0
 Term Credits16.0
Term 10
CS 491 [WI] Software Engineering Workshop3.0
Computer Science elective**3.0
International studies elective 3.0
Free electives 6.0
 Term Credits15.0
Term 11
CS 492 [WI] Software Engineering Workshop II3.0
Computer science electives**6.0
International studies elective 3.0
Free elective 3.5
 Term Credits15.5
Term 12
CS 493 [WI] Software Engineering Workshop III3.0
Social studies elective 3.0
Free electives 3.5
Computer Science elective**3.0
 Term Credits12.5
Total Credit: 186.5

*

If CS 175 taken term 2.

**

 See degree requirements.

 


Degree Requirements (BS)

The Bachelor of Science (BS) in computer science emphasizes foundation courses in the sciences and in applied mathematics, leading to careers involving applications in science and engineering. The concentration in game programming and development provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this concentration include fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design.


General Education Requirements
COM 230Techniques of Speaking3.0
ENGL 101Expository Writing and Reading3.0
ENGL 102Persuasive Writing and Reading3.0
ENGL 103Analytical Writing and Reading3.0
PHIL 311Computer Ethics3.0
UNIV E101The Drexel Experience2.0
Business elective 4.0
Social Studies elective 3.0
Writing and Communication electives *6.0
General Education electives17.0
Freshman Design Requirements
ENGR 101Engineering Design Laboratory I2.0
ENGR 102Engineering Design Laboratory II2.0
ENGR 103Engineering Design Laboratory III2.0
Mathematics Requirements
MATH 121Calculus I4.0
MATH 122Calculus II4.0
MATH 123Calculus III4.0
MATH 201Linear Algebra4.0
MATH 221Discrete Mathematics3.0
MATH 311Probability and Statistics I4.0
or MATH 410 Scientific Data Analysis I
Mathematics elective **3.0-4.0
Science Requirements
Twenty-five science credits are required. These must include a three-term sequence from one of the laboratory sciences. 25.0
Biology Sequence
Cells and Genetics
Evolution & Organismal Diversity
Physiology and Ecology
Chemistry Sequence
General Chemistry I
General Chemistry II
General Chemistry III
Physics Sequence
Fundamentals of Physics I
Fundamentals of Physics II
Fundamentals of Physics III
Computation Requirements
CS 121Computation Laboratory I1.0
CS 122Computation Laboratory II1.0
CS 123Computation Laboratory III1.0
Computer Science Requirements
CS 164Introduction to Computer Science3.0
Select one of the following:3.0
Computer Programming I
   and Computer Programming II
Computer Programming I-II
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
CS 281Systems Architecture4.0
CS 283Systems Programming3.0
CS 350 [WI] Software Design3.0
CS 360Programming Language Concepts3.0
CS 451Software Engineering3.0
CS 491 [WI] Software Engineering Workshop3.0
CS 492 [WI] Software Engineering Workshop II3.0
CS 493 [WI] Software Engineering Workshop III3.0
ECE 200Digital Logic Design3.0
Computer Science Track Courses (See below) 18.0
Computer Science electives6.0
Other Courses
Free electives8.5-11.5
Total Credits186.5


*

View the Computer Science Department's web site for a list of approved options for the writing and communication electives.

**

Mathematics elective options include:  MATH 200 Multivariate Calculus; MATH 210 Differential Equations; MATH 262 Differential Equations; ENGR 232 Dynamic Engineering Systems; or any 300-400 level MATH course.

Other options for the laboratory sequence are available; see the Computer Science department for a complete list of acceptable science courses.

 

Computer Science Tracks

Students must complete two of the following Computer Science tracks for a total of 18.0 credits. The tracks may overlap by one course. Students should check with the Department for any additional Special Topics courses being offered that may be appropriate for one of the tracks.

Algorithms and Data Structures
CS 440Theory of Computation3.0
CS 457Data Structures and Algorithms I3.0
CS 458Data Structures and Algorithms II3.0
Artificial Intelligence
CS 380Artificial Intelligence3.0
CS 481Advanced Artificial Intelligence3.0
CS 485Special Topics in Artificial Intelligence3.0
Computer Architecture
CS 282Systems Architecture II4.0
CS 476High Performance Computing3.0
ECEC 356Embedded Systems4.0
ECEC 413Introduction to Parallel Computer Architecture3.0
Computer and Network Security
CS 472Computer Networks: Theory, Applications and Programming3.0
CS 475Computer and Network Security3.0
CS 303Algorithmic Number Theory and Cryptography3.0
Computer Graphics and Vision
CS 430Computer Graphics3.0
CS 435Computational Photography3.0
CS 338Graphical User Interfaces3.0
or CS 431 Advanced Rendering Techniques
or CS 432 Interactive Computer Graphics
Human-Computer Interactions
CS 337The Psychology of Human-Computer Interaction3.0
or PSY 337 Human-Computer Interaction
CS 338Graphical User Interfaces3.0
CS 430Computer Graphics3.0
or CS 345 Computer Game Design and Development
or CS 435 Computational Photography
or PSY 330 Cognitive Psychology
Game Development and Design
CS 345Computer Game Design and Development3.0
or GMAP 345 Game Development Foundations
Select two of the following:6.0
Experimental Game Development
Serious Game Development
Topics in Computer Gaming
Game Development: Workshop I
Game Development: Workshop II
Numeric and Symbolic Computation
CS 300Applied Symbolic Computation3.0
MATH 300Numerical Analysis I4.0
Select one of the following:3.0-4.0
Introduction to Optimization Theory
Numerical Analysis II
Algorithmic Number Theory and Cryptography
Programming Languages
CS 440Theory of Computation3.0
CS 441Compiler Workshop I3.0
CS 442Compiler Workshop II3.0
Software Engineering
SE 311Software Architecture II3.0
SE 320Software Verification and Validation3.0
SE 410Software Evolution3.0
Systems
CS 361Concurrent Programming3.0
CS 370Operating Systems3.0
Select one of the following:3.0
Database Systems
Computer Networks: Theory, Applications and Programming
System Administration


Writing-Intensive Course Requirements

In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.

A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.


Sample Plan of Study (BS) 

BS Computer Science

5 YR UG Co-op Concentration

Term 1Credits
COOP 101Career Management and Professional Development0.0
CS 121Computation Laboratory I1.0
CS 164Introduction to Computer Science3.0
ENGL 101Expository Writing and Reading3.0
ENGR 101Engineering Design Laboratory I2.0
MATH 121Calculus I4.0
UNIV E101The Drexel Experience1.0
Select one of the following:4.5
Cells and Genetics 
Fundamentals of Physics I 
General Chemistry I 
 Term Credits18.5
Term 2
CS 122Computation Laboratory II1.0
ENGL 102Persuasive Writing and Reading3.0
ENGR 102Engineering Design Laboratory II2.0
CS 171
or 175
Computer Programming I
Computer Programming I-II
3.0
MATH 122Calculus II4.0
UNIV E101The Drexel Experience0.5
Select one of the following:4.5
Evolution & Organismal Diversity 
General Chemistry II 
Fundamentals of Physics II 
 Term Credits18.0
Term 3
CS 123Computation Laboratory III1.0
CS 172*Computer Programming II3.0
ENGL 103Analytical Writing and Reading3.0
ENGR 103Engineering Design Laboratory III2.0
MATH 123Calculus III4.0
UNIV E101The Drexel Experience0.5
Select one of the following:4.5
Physiology and Ecology 
Fundamentals of Physics III 
General Chemistry III 
 Term Credits18.0
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 201Linear Algebra4.0
Social studies elective3.0
Science elective**3.0
 Term Credits16.0
Term 5
CS 260Data Structures3.0
ECE 200Digital Logic Design3.0
MATH 221Discrete Mathematics3.0
Science elective**3.0
Business elective 4.0
 Term Credits16.0
Term 6
COM 230Techniques of Speaking3.0
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
General education elective3.0
Science elective**3.0
 Term Credits16.0
Term 7
CS 283Systems Programming3.0
CS 360Programming Language Concepts3.0
Science elective**3.0-4.0
Writing/Communication elective (See approved course list) 3.0
General education elective 3.0
 Term Credits15.0-16.0
Term 8
PHIL 311Computer Ethics3.0
MATH 410
or 311
Scientific Data Analysis I
Probability and Statistics I
3.0
Computer science electives**6.0
General education elective3.0
 Term Credits15.0
Term 9
CS 451Software Engineering3.0
General education elective 3.0
Mathematics elective**3.0-4.0
Free elective 3.0
Computer Science elective**3.0
 Term Credits15.0-16.0
Term 10
CS 491 [WI] Software Engineering Workshop3.0
Computer science electives **6.0
General education elective 3.0
Free elective 3.0
 Term Credits15.0
Term 11
CS 492 [WI] Software Engineering Workshop II3.0
Computer science electives**6.0
General education elective3.0
 Term Credits12.0
Term 12
CS 493 [WI] Software Engineering Workshop III3.0
Free elective 3.5
Writing/Communication elective (See approved course list) 3.0
Computer Science elective**3.0
 Term Credits12.5
Total Credit: 187.0-189.0

*

If CS 175 taken term 2.

**

 See degree requirements.


Degree Requirements

Game Programming and Development Concentration

Concentration Requirements

This concentration provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this track includes fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design. Students in the Game Programming and Development Concentration do not choose tracks. (Two tracks, plus the additional two CS electives, are already built into the concentration.) At most one course may be counted towards two tracks; note however that an overlapped course only counts as one CS elective.

Note: Overview of Computer Gaming is a prerequisite for this track. Students pursuing this track must take GMAP 260 & CS 345 in the Fall/Winter or Spring/Summer of the Junior year at the latest so that you can start your electives in your senior year. GMAP 260 will only count as a free elective.

General Education Requirements
COM 230Techniques of Speaking3.0
ENGL 101Expository Writing and Reading3.0
ENGL 102Persuasive Writing and Reading3.0
ENGL 103Analytical Writing and Reading3.0
PHIL 311Computer Ethics3.0
PSY 101General Psychology I3.0
UNIV E101The Drexel Experience2.0
Business elective4.0
Free electives9.0
Freshman Design Requirements
ENGR 101Engineering Design Laboratory I2.0
ENGR 102Engineering Design Laboratory II2.0
ENGR 103Engineering Design Laboratory III2.0
Mathematics Requirements
CS 121Computation Laboratory I1.0
CS 122Computation Laboratory II1.0
CS 123Computation Laboratory III1.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 121Calculus I4.0
MATH 122Calculus II4.0
MATH 123Calculus III4.0
MATH 201Linear Algebra *4.0
MATH 221Discrete Mathematics3.0
MATH 311Probability and Statistics I4.0
or MATH 410 Scientific Data Analysis I
Physics Requirements
PHYS 101Fundamentals of Physics I4.0
PHYS 102Fundamentals of Physics II4.0
PHYS 201Fundamentals of Physics III4.0
Additional Mathematics and Science Requirements **16.0
Mathematics elective
Mathematics and/or science electives
Computer Science Requirements
CS 164Introduction to Computer Science3.0
CS 171Computer Programming I3.0
CS 172Computer Programming II3.0
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques3.0
CS 281Systems Architecture4.0
CS 283Systems Programming3.0
CS 350 [WI] Software Design3.0
CS 360Programming Language Concepts3.0
CS 451Software Engineering3.0
Computer Science Senior Design Requirements
CS 491 [WI] Software Engineering Workshop3.0
CS 492 [WI] Software Engineering Workshop II3.0
CS 493 [WI] Software Engineering Workshop III3.0
Computer Science Gaming Requirements
CS 345Computer Game Design and Development3.0
CS 337The Psychology of Human-Computer Interaction3.0
CS 338Graphical User Interfaces3.0
CS 430Computer Graphics3.0
or CS 380 Artificial Intelligence
CS 347Experimental Game Development3.0
CS 348Serious Game Development3.0
GMAP 377Game Development: Workshop I3.0
GMAP 378Game Development: Workshop II3.0
Digital Media Requirements
ANIM 141Computer Graphic Imagery3.0
ANIM 211Animation I3.0
ANIM 212Animation II3.0
DIGM 100Digital Design Tools3.0
DIGM 110Digital Spatial Visualization3.0
DIGM 252Multimedia Timeline Design3.0
GMAP 260Overview of Computer Gaming3.0
SCRP 270 [WI] Screenwriting I3.0
VSST 110Introductory Drawing3.0
Total Credits187.0

*

View the Computer Science Department's website for a list of approved options for the writing and communication electives.

**

One course must be a mathematics elective. Mathematics elective options include: MATH 200 Multivariate Calculus; MATH 210 Differential Equations; ENGR 232 Dynamic Engineering Systems; or any 300-400 level MATH course.


Writing-Intensive Course Requirements

In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.

A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.


Sample Plan of Study (BS) 

5 YR 5 YR UG Co-op Concentration /Game Programming & Development

Term 1Credits
COOP 101Career Management and Professional Development0.0
CS 121Computation Laboratory I1.0
CS 164Introduction to Computer Science3.0
ENGL 101Expository Writing and Reading3.0
ENGR 101Engineering Design Laboratory I2.0
MATH 121Calculus I4.0
PSY 101General Psychology I3.0
UNIV E101The Drexel Experience1.0
 Term Credits17.0
Term 2
CS 122Computation Laboratory II1.0
CS 171Computer Programming I3.0
ENGL 102Persuasive Writing and Reading3.0
ENGR 102Engineering Design Laboratory II2.0
MATH 122Calculus II4.0
UNIV E101The Drexel Experience1.0
PHYS 101Fundamentals of Physics I4.0
 Term Credits18.0
Term 3
CS 123Computation Laboratory III1.0
CS 172Computer Programming II3.0
ENGL 103Analytical Writing and Reading3.0
ENGR 103Engineering Design Laboratory III2.0
MATH 123Calculus III4.0
PHYS 102Fundamentals of Physics II4.0
UNIV 101The Drexel Experience0.5
 Term Credits17.5
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
DIGM 100Digital Design Tools3.0
MATH 201Linear Algebra4.0
PHYS 201Fundamentals of Physics III4.0
 Term Credits17.0
Term 5
CS 260Data Structures3.0
DIGM 110Digital Spatial Visualization3.0
MATH 221Discrete Mathematics3.0
VSST 110Introductory Drawing3.0
Business elective 4.0
 Term Credits16.0
Term 6
ANIM 141Computer Graphic Imagery3.0
COM 230Techniques of Speaking3.0
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
GMAP 260Overview of Computer Gaming3.0
 Term Credits16.0
Term 7
CS 283Systems Programming3.0
CS 345Computer Game Design and Development3.0
CS 360Programming Language Concepts3.0
SCRP 270 [WI] Screenwriting I3.0
Math elective*3.0-4.0
 Term Credits15.0-16.0
Term 8
ANIM 211Animation I3.0
CS 337The Psychology of Human-Computer Interaction3.0
DIGM 252Multimedia Timeline Design3.0
MATH 410Scientific Data Analysis I3.0
PHIL 311Computer Ethics3.0
 Term Credits15.0
Term 9
ANIM 212Animation II3.0
CS 338Graphical User Interfaces3.0
CS 347Experimental Game Development3.0
CS 451Software Engineering3.0
Science elective*3.0-4.0
 Term Credits15.0-16.0
Term 10
CS 430Computer Graphics3.0
CS 491 [WI] Software Engineering Workshop3.0
GMAP 377Game Development: Workshop I3.0
Science elective*3.0-4.0
Free elective 3.0
 Term Credits15.0-16.0
Term 11
CS 492 [WI] Software Engineering Workshop II3.0
GMAP 378Game Development: Workshop II3.0
Science elective*3.0-4.0
Free elective 3.0
 Term Credits12.0-13.0
Term 12
CS 348Serious Game Development3.0
CS 493 [WI] Software Engineering Workshop III3.0
Free electives 4.5
Science elective*3.0-4.0
 Term Credits13.5-14.5
Total Credit: 187.0-192.0

 

*

 See degree requirements.


 


Co-op/Career Opportunities

The demand for computing skills is tremendous and growing, with highly paid jobs. Most professionals in the field focus on the design and development of software and software-based applications.Typical jobs include web designer,multimedia or software developer, software engineer, programmer, systems analyst or consultant, manager of technical staff, client-server architect, network designer, and database specialist. Most positions require at least a bachelor’s degree. Relevant work experience, such as that provided by co-operative education, is also very important, as cited by the Occupational Outlook Handbook published by the US Bureau of Labor Statistics.

Co-Op Experiences

The following quotes were taken from recent student reports on their co-op experiences:

Co-op programmer/analyst, petroleum products manufacturer: “Member of a team responsible for implementation of upgrade to critical mainframe computer system. Prepared functional specs, coded, and tested new online and batch processing programs . . .Modified C programs to conform to new business requirements and government mandates. . . .Challenging environment, great variety of technologies to work with. ”

Co-op programmer, U.S. government agency: “Programmed on distributed systems software in C on Sun SPARC Stations. Wrote a parser for HTML. Assisted in the administration of the local area network. Wrote several scripts, including one to automate the cleaning of tape backup drives. ”

Technical assistant
, pharmaceuticals manufacturer: “Provided customized desktop and mobile computer solutions for senior executives. Installed and tested telecommunications solutions. Configured and installed over 100 Compaq PC workstations. Provided full workstation support to over 800 corporate users. ”

Visit the Drexel Steinbright Career Development Center page for more detailed information on co-op and post-graduate opportunities.

Dual/Accelerated Degree

Bachelor’s/Master’s Accelerated Degree in Computer Science

The guidelines for the application to the Computer Science Bachelor's/Master's Accelerated Degree Program are as follows:

University regulations require application after the completion of 90 credits but before the completion of 120 credits.

Applicants must have completed the following core Computer Science courses with a minimum GPA of 3.50:

CS 171Computer Programming I *3.0
CS 172Computer Programming II *3.0
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques (Formerly CS 390 UNIX and Advanced Programming)3.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 221Discrete Mathematics3.0
ECE 200Digital Logic Design3.0
CS 281Systems Architecture4.0
CS 350 [WI] Software Design (Formerly Oriented Programming)3.0
CS 360Programming Language Concepts3.0
CS Track Elective
Select one of the following:3.0
Applied Symbolic Computation
Graphical User Interfaces
Concurrent Programming
Artificial Intelligence
Data Structures and Algorithms I
Theory of Computation
Total Credits34.0

*

Or CS 175 (Programming I - II)


Applicants must have an overall cumulative Grade Point Average of 3.25 or higher. Letters of recommendation from two Computer Science faculty are required. Students must submit a plan of study. Consult the Graduate Advisor and course schedules for guidance.

Acceptance to the program will be decided by the graduate admissions committee with consultation from the undergraduate curriculum committee, and will be based on a combination of the student's GPA and letters of recommendation. Acceptance may be denied if the plan of study is not feasible.

For more information, contact the Department of Computer Science.

Minor in Computer Science Minor

The computer science minor provides students with a breadth of knowledge in areas which form the foundation of computer science. The student adds some depth by selecting courses from a list of advanced computer science courses.

Mathematics Prerequisites

One of the following two-term mathematics sequences must be completed before entering the program:

MATH 101 Introduction to Analysis and MATH 102 Instruction to Analysis II
or
MATH 121 Calculus I and MATH 122 Calculus II

Required Courses

Students must complete at least 25.0 credits from courses listed below, subject to the following restrictions:

  • The requirements of each category (Computer Programming, Theoretical Foundations, Computer Systems, and Advanced Electives) must be fulfilled
  • Not more than 9 credit hours may overlap with those required for the student's academic major.
  • All courses listed as required must be completed
  • Programming courses bypassed through advanced placement do not count toward the 25 credit requirement.
  • Remaining credits are to be earned from the list of elective courses. 
Computer Programming
Select one of the following sequences:6.0-15.0
Sequence I
Computer Programming I
Computer Programming II
Sequence II
Computer Programming A
Computer Programming B
Computer Programming C
Computer Programming II
Sequence III
Foundations of Software Engineering I
Foundations of Software Engineering II
Foundations of Software Engineering III
Sequence IV
Programming for Engineers
Advanced Programming for Engineers
Required Course
CS 265Advanced Programming Tools and Techniques3.0
Theoretical Foundations
CS 260Data Structures3.0
CS 270Mathematical Foundations of Computer Science3.0
Computer Systems
CS 281Systems Architecture4.0
Advanced Electives *
Select two or more of the following:6.0-10.0
Computing Systems and Security
Systems Architecture II
Concurrent Programming
System Administration
Operating Systems
Database Systems
Computer Networks: Theory, Applications and Programming
Computer and Network Security
Programming Languages and Compilers
Programming Language Concepts
Theory of Computation
Compiler Workshop I
Compiler Workshop II
Human-Computer Interaction
Graphical User Interfaces
Computer Graphics
Artificial Intelligence
Artificial Intelligence
Advanced Artificial Intelligence
Special Topics in Artificial Intelligence
Numeric and Symbolic Computation
Applied Symbolic Computation
Numerical Analysis I
Algorithmic Number Theory and Cryptography
Algorithms Theory
Theory of Computation
Data Structures and Algorithms I
Data Structures and Algorithms II
Software Methodology (not available to Software Engineering Students)
Software Design
Software Engineering
Total Credits25.0-38.0

*

Other courses may be approved by the Department for this purpose; contact the Computer Science Undergraduate Advisor (advisor@cs.drexel.edu).



Courses

CS 121 Computation Laboratory I 1.0 Credit

Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the differential calculus. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: MATH 110 [Min Grade: D], MATH 121 [Min Grade: D] (Can be taken Concurrently)

CS 122 Computation Laboratory II 1.0 Credit

Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the integral calculus. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: MATH 121 [Min Grade: D] (Can be taken Concurrently)CS 121 [Min Grade: D] and (MATH 110 [Min Grade: D]

CS 123 Computation Laboratory III 1.0 Credit

Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the multivariate calculus and series. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: MATH 121 [Min Grade: D], MATH 122 [Min Grade: D] (Can be taken Concurrently)CS 122 [Min Grade: D]

CS 130 Programming Concepts with 3D Animation 3.0 Credits

Introduction to elementary programming concepts within a 3D animation learning environment. Programming concepts include: planning tools (storyboards, pseudocode), control structures, expressions, conditionals, repetition, functions, parameter passing, events and event handlers, classes, objects, methods, inheritance. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 131 Computer Programming A 3.0 Credits

Introduction to structured computer programming in language of instruction (e.g. C++). Topics include: variables, input and output, expressions, assignment statements, conditionals and branching, files, repetition, functions and parameter passing, one-dimensional and two-dimensional arrays, and elementary class concepts. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 132 Computer Programming B 3.0 Credits

Introduction to structured computer programming in the language of instruction (e.g. C++). Topics include: random numbers, recursion, vectors, searching and sorting, classes, information hiding principles. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 131 [Min Grade: D] or CS 171 [Min Grade: D]

CS 133 Computer Programming C 3.0 Credits

Advanced principles of computer programming in the language of instruction (e.g. C++). Classes, inheritance, information hiding principles, recursion, quicksort, multidimensional arrays, pointers, and dynamic memory. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 132 [Min Grade: D]

CS 161 Introduction to Computing 3.0 Credits

Introduction to the computer as a tool for productivity and communications. Provides fluency in the use of industry-standard software for professional communications and presentations, data analysis, and telecommunication. Introduce automation and programming to enhance the effective use of computers and computer applications.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 164 Introduction to Computer Science 3.0 Credits

An introduction to the field of computer science. Exposure to core areas (selected from algorithms, artificial intelligence, computer architecture, databases, graphics, human-computer interaction, programming languages, scientific computation, software engineering) while introducing and reinforcing the importance of programming.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if major is CS or major is MATH and classification is Freshman.

CS 171 Computer Programming I 3.0 Credits

Covers fundamentals of structured computer programming in the language of instruction (e.g., C++): variables, input and output, expressions, assignment statements, conditionals and branching, subprograms, parameter passing, repetition, arrays, top-down design, testing, and debugging.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 172 Computer Programming II 3.0 Credits

Covers object-oriented design, inheritance hierarchies, information hiding principles, string processing, recursion, good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 171 [Min Grade: C] or CS 132 [Min Grade: C]

CS 175 Computer Programming I-II 3.0 Credits

Advanced programming in language of instruction at an accelerated pace: object-oriented design, inheritance hierarchies, information hiding principles, recursion, quick sort, multidimensional arrays, classes, pointers, dynamic memory, good programming style, documentation, debugging, and testing.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 190 Selected Computer Language 3.0 Credits

Focuses on programming in a selected language of interest. Course content, language, and prerequisites may vary according to instructor, with emphasis on applications for which the language is designed. May be repeated for credit.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

CS 203 Programming for Engineers 3.0 Credits

Fundamentals of computer organization; rudiments of programming including data types, arithmetic and logical expressions, conditional statements, control structures; problem solving techniques for engineers using programming; object-oriented programming; arrays; simulation of engineering systems; principles of good programming practice.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman

CS 204 Advanced Programming for Engineers 3.0 Credits

An advanced introduction to classes and objects; inheritance and polymorphism; abstract classes and interfaces; exception handling; files and streams; garbage collection and dynamic memory allocation; recursion; using linked lists, stacks, queues, and trees; search and sorting algorithms; generic methods and classes; a comparative introduction to dominant programming languages; engineering examples.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECE 203 [Min Grade: D] or CS 203 [Min Grade: D]

CS 260 Data Structures 3.0 Credits

Covers stacks, queues, linked allocation, binary trees, internal searching and sorting, hashing, and applications.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 265 [Min Grade: D]

CS 265 Advanced Programming Tools and Techniques 3.0 Credits

Introduction to the basic principles of programming practice: testing, debugging, portability, performance, design alternatives, and style. Application in a variety of programming languages, programming environments, and operating systems. Introduction to tools used in the software development process for improving program functionality, performance, and robustness.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 172 [Min Grade: D] or CS 133 [Min Grade: D] or SE 103 [Min Grade: D] or ECEC 301 [Min Grade: D]

CS 270 Mathematical Foundations of Computer Science 3.0 Credits

Emphasizes analytic problem-solving and introduction of mathematical material necessary for later courses in algorithms, compiler theory, and artificial intelligence. Includes topics such as logic, theorem-proving, language operations, context-free grammars and languages, recurrence relations, and analysis of algorithms.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 172 [Min Grade: D] or CS 265 [Min Grade: D] or SE 103 [Min Grade: D]

CS 280 Special Topics in Computer Science 12.0 Credits

Covers topics in modern computer science. Different topics may be considered in different quarters.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit
Restrictions: Cannot enroll if classification is Freshman

CS 281 Systems Architecture 4.0 Credits

Covers internal function and organization of digital computers, including instruction sets, addressing methods, input-output architectures, central processor organization, machine language, and assembly language.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: (ECE 200 [Min Grade: D] or CS 270 [Min Grade: D]) and (CS 172 [Min Grade: D] or SE 103 [Min Grade: D])

CS 282 Systems Architecture II 4.0 Credits

Covers computer system operations, assembly language programming techniques, operating system interfacing, and organization of assemblers and loaders.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 281 [Min Grade: D]

CS 283 Systems Programming 3.0 Credits

This course introduces computer systems, including interaction of hardware and software through the operating system, from the programmer's perspective. Three fundamental abstractions are emphasized: processes, virtual memory, and files. These abstractions provide programmers a common interface to a wide variety of hardware devices. Topics covered include linking, system level I/O, concurrent programming, and network programming.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 265 [Min Grade: D]

CS 300 Applied Symbolic Computation 3.0 Credits

This course covers the fundamentals of symbolic mathematical methods as embodied in symbolic mathematics software systems, including: fundamental techniques, simplification of expressions, solution of applications problems, intermediate expressions swell, basic economics of symbolic manipulation, efficient solution methods for large problems, hybrid symbolic/numeric techniques.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D] and MATH 200 [Min Grade: D] and MATH 201 [Min Grade: D]

CS 303 Algorithmic Number Theory and Cryptography 3.0 Credits

Covers fundamental algorithms for integer arithmetic, greatest common divisor calculation, modular arithmetic, and other number theoretic computations. Algorithms are derived, implemented and analyzed for primality testing and integer factorization. Applications to cryptography are explored including symmetric and public-key cryptosystems. A cryptosystem will be implemented and methods of attack investigated.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and MATH 221 [Min Grade: D] and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D])

CS 337 The Psychology of Human-Computer Interaction 3.0 Credits

Applies cognitive and experimental psychology to the understanding of human-computer interaction.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: PSY 101 [Min Grade: D] and CS 171 [Min Grade: D]

CS 338 Graphical User Interfaces 3.0 Credits

This course covers the design and implementation of graphical user interfaces. Topics include: event-driven programming, application programmer interfaces, widgets, callback functions, windowing systems and desktops, rapid prototyping languages, multithreaded GUI's. A term project involving implementation of a complex application will be undertaken.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 350 [Min Grade: D] or SE 310 [Min Grade: D]

CS 345 Computer Game Design and Development 3.0 Credits

This course introduces students to the computer game design process. Students also learn how the individual skills of modeling, animation, scripting, interface design and story telling are coordinated to produce interactive media experiences for various markets, devices and purposes.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: (DIGM 260 [Min Grade: D] or GMAP 260 [Min Grade: D]) and (CS 265 [Min Grade: D] or DIGM 141 [Min Grade: D])

CS 347 Experimental Game Development 3.0 Credits

The goal of this course is to develop new ideas and innovations in games through the design, development, and implementation of games using short development cycles and creative thematic constraints.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 345 [Min Grade: D], GMAP 345 [Min Grade: D] (Can be taken Concurrently)

CS 348 Serious Game Development 3.0 Credits

The goal of this course is to learn more about serious games, that is games used in a non-entertainment context, such as games for health, education, and persuasion, through readings and through the design, development, and implementation of serious games.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 345 [Min Grade: D], GMAP 345 [Min Grade: D] (Can be taken Concurrently)

CS 350 [WI] Software Design 3.0 Credits

Covers software design methods and implementation. Good design and implementation approaches will be motivated through software examples and reinforced through programming projects. Topics include architectural styles, code reuse, modularity and information hiding principles, object-oriented design patterns, design specification and formal methods, good coding and documentation practices. This is a writing intensive course.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 260 [Min Grade: D] and CS 265 [Min Grade: D]

CS 360 Programming Language Concepts 3.0 Credits

Introduces the design and implementation of modern programming languages: formal theory underlying language implementation; concerns in naming, binding, storage allocation and typing; semantics of expressions and operators, control flow, and subprograms; procedural and data abstraction; functional, logic, and object-oriented languages. Students will construct an interpreter for a nontrivial language.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D]

CS 361 Concurrent Programming 3.0 Credits

Covers programming of concurrent, cooperating sequential processes. Studies race conditions, critical sections, mutual exclusion, process synchronization, semaphores, monitors, message passing, the rendezvous, deadlock, and starvation.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D] and CS 281 [Min Grade: D]

CS 365 System Administration 3.0 Credits

Fundamentals of system administration featuring hands-on practice with an industry standard operating system. Focus on installation, maintenance and management of several systems for multi-user environments.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 265 [Min Grade: D]

CS 370 Operating Systems 3.0 Credits

Explores the internal algorithms and structures of operating systems: CPU scheduling, memory management, file systems, and device management. Considers the operating system as a collection of cooperating sequential processes (servers) providing an extended or virtual machine that is easier to program than the underlying hardware. Topics include virtual memory, input/output devices, disk request scheduling, deadlocks, file allocation, and security and protection.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 283 [Min Grade: D] or CS 361 [Min Grade: D]

CS 380 Artificial Intelligence 3.0 Credits

Explores the foundations of artificial intelligence: production systems, heuristic programming, knowledge representation, and search algorithms. Also covers programming in an AI language. Additional topics chosen from game theory, decision support systems, pattern matching and recognition, image understanding, natural language, fuzzy and non-monotonic logic, machine learning, theorem proving, and common sense reasoning.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D]

CS 430 Computer Graphics 3.0 Credits

The course presents the fundamental geometric representations and drawing algorithms of computer graphics through lectures and programming assignments. The representations include lines, curves, splines, polygons, meshes, parametric surfaces and solids. The algorithms include line drawing, curve and surface evaluation, polygon filling, clipping, 3D-to-2D projection and hidden surface removal.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: MATH 200 [Min Grade: D] and MATH 201 [Min Grade: D] and (CS 350 [Min Grade: D] or SE 310 [Min Grade: D])

CS 431 Advanced Rendering Techniques 3.0 Credits

The creation of realistic images from 3D models is central to the development of computer graphics. The ray tracing algorithm has become one of the most popular and powerful techniques for creating photo-realistic images. This class explores the algorithmic components of ray tracing. Students implement many of these components in their class programming projects.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 430 [Min Grade: D]

CS 432 Interactive Computer Graphics 3.0 Credits

This is a project-oriented class that covers the concepts and programming details of interactive computer graphics. These include graphics primitives, display lists, picking, shading, rendering buffers and transformations. Students will learn an industry-standard graphics system by implementing weekly programming assignments. The course culminates with a student-defined project.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and (MATH 200 [Min Grade: D] or MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D])

CS 435 Computational Photography 3.0 Credits

Fundamentals of computational photography, an interdisciplinary field at the intersection of computer vision, graphics, and photography. Covered topics include fundamentals of cameras, novel camera designs, image manipulation, single-view modeling, and image-based rendering with an emphasis on learning the computational methods and their underlying mathematical concepts through hands-on assignments.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: (MATH 123 [Min Grade: D] or MATH 200 [Min Grade: D]) and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D]) and CS 260 [Min Grade: D]

CS 440 Theory of Computation 3.0 Credits

Finite automata, regular sets, and regular expressions; pushdown automata, context-free languages, and normal forms for grammars; Turing machines and recursively enumerable sets; Chomsky hierarchy; computability theory.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 270 [Min Grade: D] and MATH 221 [Min Grade: D]

CS 441 Compiler Workshop I 3.0 Credits

Design and implementation of compiler for specified language. Practical application and in-depth study of parsing, scanning, run-time storage management, type analysis, code generation, and error recovery.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 270 [Min Grade: D] and CS 283 [Min Grade: D] and CS 360 [Min Grade: D] and CS 440 [Min Grade: D]

CS 442 Compiler Workshop II 3.0 Credits

Continuation of CS 441. Advanced topics in compilation, code generation, and optimization for various programming languages and paradigms.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 441 [Min Grade: D]

CS 445 Topics in Computer Gaming 3.0 Credits

Contemporary topics in the design and implementation of computer games. Topics may include game genres, psychological and sociological aspects of games, software tools and game development engines, character and behavior modeling, physical models and realism, virtual reality, graphics and animation, network-based games, performance analysis and efficiency.

College/Department: College of Engineering
Repeat Status: Can be repeated 3 times for 9 credits
Prerequisites: CS 345 [Min Grade: D] or DIGM 345 [Min Grade: D]

CS 451 Software Engineering 3.0 Credits

Covers requirements specification, system modeling, formal methods, architectural design, object-oriented design, programming for reliability, user interface design, functional and structural testing, software reuse, and configuration management.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 270 [Min Grade: D] and MATH 221 [Min Grade: D] and (CS 350 [Min Grade: D] or SE 310 [Min Grade: D])

CS 457 Data Structures and Algorithms I 3.0 Credits

This course covers techniques for analyzing algorithms, including: elementary combinatorics, recurrence relations, and asymptotic analysis; data structures such as hash tables, red-black trees, B-trees, binomial and Fibonacci heaps, union-find trees; sorting algorithms and elementary graph algorithms.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D] and MATH 221 [Min Grade: D]

CS 458 Data Structures and Algorithms II 3.0 Credits

This course presents algorithm design techniques such as dynamic programming, greedy methods, divide and conquer, amortized algorithms; more graph algorithms for minimum spanning trees, shortest paths, and network flows; string matching algorithms; algorithms for finding the convex hull of a discrete set of points; NP-Completeness and approximation algorithms.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 457 [Min Grade: D]

CS 461 Database Systems 3.0 Credits

Covers topics including structure and function of database systems, normal form theory, data models (relational, network, and hierarchical), query processing (ISBL), relational algebra and calculus, and file structures. Includes programming project using DBMS.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D]

CS 470 Operating Systems Workshop 3.0 Credits

Studies a modern multitasking operating system in detail, including device drivers, CPU scheduling, memory management, and file systems. Includes programming assignments that modify or enhance the operating system.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 370 [Min Grade: D]

CS 472 Computer Networks: Theory, Applications and Programming 3.0 Credits

Introduction to computer networking theory, applications and programming, focusing on large heterogeneous networks. Broad topdown introductions to computer networking concepts including distributed applications, socket programming, operation system and router support, router algorithms, and sending bits over congested, noisy and unreliable communication links.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 361 [Min Grade: D] or CS 283 [Min Grade: D]

CS 475 Computer and Network Security 3.0 Credits

The key objective of this course is to provide a thorough understanding of technologies and methodologies with which computer networks can be protected. Topics that are covered include: key management and credentials, steganography and watermarking, networking security (VPNs, firewalls, intrusion detection) and system security policies.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 472 [Min Grade: D] or CS 283 [Min Grade: D]

CS 476 High Performance Computing 3.0 Credits

This course is an introduction to high performance computing, including concepts and applications. Course contents will include discussions of different types of high performance computer architectures (multi-core/multi-threaded processors, parallel computers, etc), the design, implementation, optimization and analysis of efficient algorithms for uni-processors, multi-threaded processors, and parallel computers, and high performance programming.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: (CS 282 [Min Grade: D] and CS 283 [Min Grade: D]) or (ECEC 353 [Min Grade: D] and ECEC 355 [Min Grade: D])

CS 480 Special Topics in Computer Science 12.0 Credits

Covers topics in computer science of interest to students or faculty. Different topics may be considered during different quarters.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

CS 481 Advanced Artificial Intelligence 3.0 Credits

This course covers topics in representation, reasoning, and decision-making under uncertainty; learning; solving problems with time-varying properties. Assignments applying AI techniques toward building intelligent machines that interact with dynamic, uncertain worlds will be given.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 380 [Min Grade: D] and (MATH 311 [Min Grade: D] or MATH 410 [Min Grade: D])

CS 485 Special Topics in Artificial Intelligence 3.0 Credits

A variety of special topics are offered in artificial intelligence (AI) including: intelligent time-critical reasoning, knowledge-based agents, machine learning, natural language processing, and geometric reasoning. This course may be repeated for credit as topics vary.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit
Prerequisites: CS 260 [Min Grade: D] and CS 380 [Min Grade: D]

CS 491 [WI] Software Engineering Workshop 3.0 Credits

Offers in-depth study and application of software engineering practice. Students work in teams to develop a significant software system. Course is intended to serve as a capstone experience for students in the senior year. The project involves the specification and review of software requirements and designs, implementation and code inspections, functional testing, and documentation. This course is writing intensive.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 451 [Min Grade: D]

CS 492 [WI] Software Engineering Workshop II 3.0 Credits

Continues CS 491 team project. This course is writing intensive.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 491 [Min Grade: D]

CS 493 [WI] Software Engineering Workshop III 3.0 Credits

Continues CS 492 team project. This course is writing intensive.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 492 [Min Grade: D]

CS 498 Independent Study in Computer Science 12.0 Credits

Provides supervised study of selected topics in computer science.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit
Restrictions: Cannot enroll if classification is Freshman

Computer Science Faculty

Dave Augenblick Associate Teaching Professor. Introductory and object-oriented programming, data structures and database systems, computer application project management, application of computer programming principles and solutions to engineering problems.
David E. Breen, PhD (Rensselaer Polytechnic Institute). Associate Professor. Geometric modeling; computer graphics; scientific visualization; medical imaging; simulation.
Yuanfang Cai, PhD (University of Virginia). Assistant Professor. Formal software design modeling and analysis, software economics, software evolution and modularity.
Bruce W. Char, PhD (University of California-Berkeley). Professor. Symbolic mathematical computation; algorithms and systems for computer algebra; problem-solving environments; parallel and distributed computation.
Rachel Greenstadt, PhD (Harvard University). Assistant Professor. Artificial intelligence, privacy, security, multi-agent systems, economics of electronic privacy and information security.
Jeremy R. Johnson, PhD (Ohio State University). Professor. Computer algebra; parallel computations; algebraic algorithms; scientific computing.
Geoffrey Mainland, PhD (Harvard University). Assistant Professor. High-level programming languages and runtime support for non-general purpose computation.
Spiros Mancoridis, PhD (University of Toronto) Interim Department Head, Computer Science. Professor. Software engineering; software security; code analysis; evolutionary computation.
Adelaida Alban Medlock, MS (Drexel University). Associate Teaching Professor. Introductory programming; computer science education.
William Mongan, MS (Drexel University). Associate Teaching Professor. Service-oriented architectures, program comprehension, reverse engineering, software engineering, computer architecture, computer science education, engineering education outreach
Ko Nishino, PhD (University of Tokyo). Associate Professor. Computer vision, computer graphics, analysis and synthesis of visual appearance.
Krzysztof Nowak, PhD (Washington University). Associate Teaching Professor. Fourier analysis, partial differential equations, image processing, wavelets, asymptotic distribution of eigenvalues, numerical methods and algorithms, computer science education.
Jeffrey L. Popyack, PhD (University of Virginia). Associate Professor. Operations research; stochastic optimization; computational methods of Markov decision processes; artificial intelligence; computer science education.
William C. Regli, PhD (University of Maryland-College Park) Computer Science Department. Professor. Artificial intelligence; computer graphics; engineering design and Internet computing.
Jeffrey Salvage, MS (Drexel University). Teaching Professor. Object-oriented programming, multiagent systems, software engineering, database theory, introductory programming, data structures.
Dario Salvucci, PhD (Carnegie Mellon University) Associate Department Head for Undergraduate Affairs. Professor. Human computer interaction; cognitive science; machine learning; applications for driving.
Kurt Schmidt Associate Teaching Professor. Data structures, math foundations for computer science, programming tools, programming languages.
Ali Shokoufandeh, PhD (Rutgers University) Associate Department Head for Graduate Affairs and Research. Professor. Theory of algorithms; graph theory; combinational optimization; computer vision.
Maxwell Young, PhD (University of Waterloo). Assistant Professor. Algorithms for decentralized networks that yield provable guarantees with respect to fault tolerance and performance.

Interdepartmental Faculty

Paul Diefenbach, PhD (University of Pennsylvania) Associate Program Director, Game Art & Production. Assistant Professor. Game development, real-time rendering.
Thomas T. Hewett, PhD (University of Illinois at Urbana-Champaign) Director, PhD Program in Applied Cognitive & Brain Sciences. Professor. Human computer interaction and cognitive engineering; development of computing environments to support knowledge, workers, and high performance experts.
Gregory W. Hislop, PhD (Drexel University). Professor. Information technology for teaching and learning, online education, structure and organization of the information disciplines, computing education research, software evaluation and characterization.
Pawel Hitczenko, PhD (Warsaw University). Professor. Probability theory and its applications to analysis, combinatorics, wavelets, and the analysis of algorithms.
Moshe Kam, PhD (Drexel University) Robert G. Quinn Professor of Electrical and Computer Engineering and Department Head. Professor. Decision fusion and sensor fusion; mobile robots (especially robot navigation); pattern recognition (especially in handwriting applications); optimization and control.
Frank J. Lee, PhD (Carnegie Mellon University). Associate Professor. Human-computer interaction; cognitive engineering and science; intelligent software agents for games and education.
Prawat Nagvajara, Ph.D. (Boston University). Associate Professor. System on a chip; embedded systems; power grid computation; testing of computer hardware; fault-tolerant computing; VLSI systems; error control coding.
Paul Y. Oh, PhD (Columbia University) Associate Department Head for External Affairs, Department of Mechanical Engineering and Mechanics. Associate Professor. Smart sensors servomechanisms; machine vision and embedded microcomputers for robotics and mechatronics.
Harish Sethu, PhD (Lehigh University). Associate Professor. Protocols, architectures and algorithms in computer networks; computer security; mobile ad hoc networks; large-scale complex adaptive networks and systems.
Michael Wagner, PhD (Vienna University of Technology) Program Director, Digital Media. Associate Professor. Educational use of digital media and computer games.
Jichen Zhu, PhD (Georgia Institute of Technology). Assistant Professor. Developing humanistic and interpretive framework of computational technology, particularly artificial intelligence (AI), and constructing AI-based cultural artifacts; interactive storytelling, games and software studies.
  • Schedule of Classes
  • All Course Descriptions
  • Co-op
  • Academic Advising
  • Admissions
  • Tuition & Fees
LEARN MORE