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.

Game Programming and Development Concentration

This concentration provides conceptual understanding of game design and practical experience in the design and the development of games. Students in the Game Programming and Development (GMPD) concentration program do not choose tracks. Two tracks, plus the additional two CS electives, are already built into the concentration.

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 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
ENGL 102Composition and Rhetoric II: The Craft of Persuasion3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.0
PHIL 311Computer Ethics3.0
UNIV E101The Drexel Experience2.0
Humanities/Fine Arts electives6.0
International Area Studies courses6.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
  & BIO 124
  & BIO 126
Cells and Genetics
   and Evolution & Organismal Diversity
   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
Select one of the following options:3.0-6.0
Computer Programming I-II (Students must contact the department to be placed into this course by programming assignment)
Computer Programming I
   and Computer Programming II
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
CS 275Web and Mobile App Development3.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-189.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.

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
Select two of the following:6.0
Machine Learning
Evolutionary Computing
Game AI Development
Advanced Artificial Intelligence
Special Topics in Artificial Intelligence
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 Architecture
CS 352Processor Architecture & Analysis3.0
Select two of the following:6.0
High Performance Computing
Embedded Systems
Introduction to Parallel Computer Architecture
Computer Graphics and Vision
CS 430Computer Graphics3.0
CS 435Computational Photography3.0
Select one of the following:3.0
Graphical User Interfaces
Advanced Rendering Techniques
Interactive Computer Graphics
Computing Systems
CS 361Concurrent Programming3.0
CS 370Operating Systems3.0
Select one of the following:3.0
System Administration
Database Systems
Computer Networks: Theory, Applications and Programming
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
Game AI Development
Game Development: Workshop I
Game Development: Workshop II
Topics in Computer Gaming
Human-Computer Interactions
CS 337The Psychology of Human-Computer Interaction3.0
or PSY 337 Human-Computer Interaction
CS 338Graphical User Interfaces3.0
Select one of the following:3.0
Computer Game Design and Development
Game Development Foundations
Computer Graphics
Computational Photography
Cognitive Psychology
Numeric and Symbolic Computation
CS 300Applied Symbolic Computation3.0
MATH 300Numerical Analysis I4.0
Select one of the following:3.0-4.0
Algorithmic Number Theory and Cryptography
Numerical Analysis II
Introduction to Optimization Theory
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


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 101Composition and Rhetoric I: Inquiry and Exploratory Research3.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 102Composition and Rhetoric II: The Craft of Persuasion3.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 Experience1.0
Select one of the following:4.5
Evolution & Organismal Diversity 
General Chemistry II 
Fundamentals of Physics II 
 Term Credits15.5
Term 3
CS 172*Computer Programming II3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.0
MATH 123
or 239
Calculus III
Mathematics for the Life Sciences
4.0
Select one of the following:4.5
Physiology and Ecology 
General Chemistry III 
Fundamentals of Physics III 
Free elective 3.0
 Term Credits17.5
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
CS 275Web and Mobile App Development3.0
MATH 221Discrete Mathematics3.0
Social studies 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 electives3.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) program 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 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
ENGL 102Composition and Rhetoric II: The Craft of Persuasion3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.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 275Web and Mobile App Development3.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
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
Select two of the following:6.0
Machine Learning
Evolutionary Computing
Game AI Development
Advanced Artificial Intelligence
Special Topics in Artificial Intelligence
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 Architecture
CS 352Processor Architecture & Analysis3.0
Select two of the following:6.0
High Performance Computing
Embedded Systems
Introduction to Parallel Computer Architecture
Computer Graphics and Vision
CS 430Computer Graphics3.0
CS 435Computational Photography3.0
Select one of the following:3.0
Graphical User Interfaces
Advanced Rendering Techniques
Interactive Computer Graphics
Computing Systems
CS 361Concurrent Programming3.0
CS 370Operating Systems3.0
Select one of following:3.0
System Administration
Database Systems
Computer Networks: Theory, Applications and Programming
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
Game AI Development
Topics in Computer Gaming
Game Development: Workshop I
Game Development: Workshop II
Human-Computer Interactions
CS 337The Psychology of Human-Computer Interaction3.0
or PSY 337 Human-Computer Interaction
CS 338Graphical User Interfaces3.0
Select one of the following:3.0
Computer Game Design and Development
Game Development Foundations
Computer Graphics
Computational Photography
Cognitive Psychology
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


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 101Composition and Rhetoric I: Inquiry and Exploratory Research3.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 102Composition and Rhetoric II: The Craft of Persuasion3.0
ENGR 102Engineering Design Laboratory II2.0
MATH 122Calculus II4.0
UNIV E101The Drexel Experience1.0
Select one of the following:4.5
Evolution & Organismal Diversity 
General Chemistry II 
Fundamentals of Physics II 
CS 171
or 175
Computer Programming I
Computer Programming I-II
3.0
 Term Credits18.5
Term 3
CS 123Computation Laboratory III1.0
CS 172*Computer Programming II3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.0
ENGR 103Engineering Design Laboratory III2.0
MATH 123Calculus III4.0
Select one of the following:4.5
Physiology and Ecology 
Fundamentals of Physics III 
General Chemistry III 
 Term Credits17.5
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
MATH 221Discrete Mathematics3.0
CS 275Web and Mobile App Development3.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
Writing/Communication elective (See approved course list) 3.0
Computer Science elective**3.0
Free elective 3.0
 Term Credits12.0
Total Credit: 186.5-188.5

*

If CS 175 taken term 2.

**

 See degree requirements.



Degree Requirements

Game Programming and Development Concentration

General Education Requirements
COM 230Techniques of Speaking3.0
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
ENGL 102Composition and Rhetoric II: The Craft of Persuasion3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.0
PHIL 311Computer Ethics3.0
PSY 101General Psychology I3.0
UNIV E101The Drexel Experience2.0
Business elective4.0
Free electives6.5
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 410Scientific Data Analysis I3.0
or MATH 311 Probability and Statistics I
Additional Mathematics and Science Requirements **16.0
Mathematics elective
Mathematics and/or Science electives
Physics Requirements
PHYS 101Fundamentals of Physics I4.0
PHYS 102Fundamentals of Physics II4.0
PHYS 201Fundamentals of Physics III4.0
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 275Web and Mobile App Development3.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
or GMAP 345 Game Development Foundations
CS 337The Psychology of Human-Computer Interaction3.0
or PSY 337 Human-Computer Interaction
CS 338Graphical User Interfaces3.0
CS 380Artificial Intelligence3.0
or CS 430 Computer Graphics
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 Imagery II3.0
ANIM 211Animation I3.0
ANIM 212Animation II3.0
DIGM 100Digital Design Tools3.0
ANIM 140Computer Graphics Imagery I3.0
or DIGM 110 Digital Spatial Visualization
ANIM 152Multimedia Timeline Design3.0
or DIGM 252 Multimedia Timeline Design
GMAP 260Overview of Computer Gaming3.0
SCRP 270 [WI] Screenwriting I3.0
VSST 110Introductory Drawing3.0
Total Credits186.5

*

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 101Composition and Rhetoric I: Inquiry and Exploratory Research3.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 102Composition and Rhetoric II: The Craft of Persuasion3.0
ENGR 102Engineering Design Laboratory II2.0
MATH 122Calculus II4.0
UNIV E101The Drexel Experience0.5
PHYS 101Fundamentals of Physics I4.0
 Term Credits17.5
Term 3
CS 123Computation Laboratory III1.0
CS 172Computer Programming II3.0
ENGL 103Composition and Rhetoric III: Thematic Analysis Across Genres3.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
VSST 110Introductory Drawing3.0
PHYS 201Fundamentals of Physics III4.0
 Term Credits16.0
Term 5
CS 260Data Structures3.0
CS 275Web and Mobile App Development3.0
ANIM 140Computer Graphics Imagery I3.0
MATH 221Discrete Mathematics3.0
COM 230Techniques of Speaking3.0
 Term Credits15.0
Term 6
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
ANIM 141Computer Graphic Imagery II3.0
MATH 201Linear Algebra4.0
GMAP 260Overview of Computer Gaming3.0
 Term Credits17.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
 Term Credits15.0
Term 8
ANIM 211Animation I3.0
CS 337The Psychology of Human-Computer Interaction3.0
ANIM 152Multimedia 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
Math/Science elective*3.0
 Term Credits15.0
Term 10
CS 380
or 430
Artificial Intelligence
Computer Graphics
3.0
CS 491 [WI] Software Engineering Workshop3.0
GMAP 377Game Development: Workshop I3.0
Business elective 4.0
Math/Science elective*3.0
 Term Credits16.0
Term 11
CS 492 [WI] Software Engineering Workshop II3.0
GMAP 378Game Development: Workshop II3.0
Math/Science elective*3.0
Free elective 3.0
 Term Credits12.0
Term 12
CS 348Serious Game Development3.0
CS 493 [WI] Software Engineering Workshop III3.0
Free electives 3.5
Math/Science elective*4.0
 Term Credits13.5
Total Credit: 186.5

 

*

 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
     
  • Remaining credits are to be earned from the list of advanced electives.

     
Computer Programming
Select one of the following sequences:3.0-15.0
Sequence I
Computer Programming I
Computer Programming II
Sequence II
Computer Programming I-II
Sequence III
Intro Multimedia Programming
Comp Programming Fundamentals
Computer Programming I
Computer Programming II
Sequence IV
Foundations of Software Engineering I
Foundations of Software Engineering II
Foundations of Software Engineering III
Sequence V
Programming for Engineers
Advanced Programming for Engineers
Advanced Programming
CS 265Advanced Programming Tools and Techniques3.0
Theoretical Foundations
CS 260Data Structures3.0
CS 270Mathematical Foundations of Computer Science3.0
Computer Systems
Select one of the following:4.0
Systems Architecture
Computer Organization & Architecture
Advanced Electives *
Select two or more of the following:6.0-9.0
Algorithms/Theory
Theory of Computation
Data Structures and Algorithms I
Data Structures and Algorithms II
Artificial Intelligence
Artificial Intelligence
Machine Learning
Evolutionary Computing
Game AI Development
Advanced Artificial Intelligence
Special Topics in Artificial Intelligence
Computer Game Design
Computer Game Design and Development
Experimental Game Development
Serious Game Development
Game AI Development
Computer Graphics/Vision
Computer Graphics
Advanced Rendering Techniques
Interactive Computer Graphics
Computational Photography
Computing Systems and Security
Systems Programming
Processor Arch & Analysis
Concurrent Programming
System Administration
Operating Systems
Database Systems
Computer Networks: Theory, Applications and Programming
Computer and Network Security
High Performance Computing
Human-Computer Interaction
The Psychology of Human-Computer Interaction
Human-Computer Interaction
Graphical User Interfaces
Numeric and Symbolic Computation
Applied Symbolic Computation
Algorithmic Number Theory and Cryptography
Numerical Analysis I
Programming Languages and Compilers
Programming Language Concepts
Theory of Computation
Compiler Workshop I
Compiler Workshop II
Software Methodology (not available to Software Engineering Students)
Software Design
Software Engineering
Total Credits25.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 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]
Corequisite: EXAM 080

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]
Corequisite: EXAM 080

CS 140 Introduction to Multimedia Programming 3.0 Credits

Introduction to structured computer programming in a language designed for working with media (images, sound, video), e.g. Python/Jython. 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 media manipulation. Stresses good programming style, documentation, debugging, and testing.

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

CS 143 Computer Programming Fundamentals 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, arrays, and string manipulation. Stresses good programming style, documentation, debugging and testing.

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

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
Corequisite: EXAM 080

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.
Corequisite: EXAM 080

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
Corequisite: EXAM 080

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]
Corequisite: EXAM 080

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 275 Web and Mobile App Development 3.0 Credits

This course introduces students to web-based and mobile development technologies and practices, including tiered application development, Service-Oriented Architectures and associated exchange protocols, and web-database programming. This course explores development and integration of web services from well-known providers as well as services created by the student, using a mobile platform as a vehicle for interactions with the services.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 265 [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 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 352 Processor Architecture & Analysis 3.0 Credits

This course covers performance evaluation and benchmarking, pipelining, superscalar processors, multiprocessors, and interfacing processors and peripherals. The memory hierarchy, including cache and virtual memory, are also explored from a programmer's perspective with high-performance computing techniques in mind.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 281 [Min Grade: D] or ECEC 355 [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] and CS 265 [Min Grade: D] and CS 270 [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 383 Machine Learning 3.0 Credits

This course covers the fundamentals of modern statistical machine learning. Lectures will cover the theoretical foundation and algorithmic details of representative topics including probabilities and decision theory, regression, classification, graphical models, mixture models, clustering, expectation maximization, hidden Markov models, and weak learning.

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

CS 385 Evolutionary Computing 3.0 Credits

This course covers computational intelligence approaches to problem solving for classification, adaptation, optimization, and automated control. Methods covered will include evolutionary programming/genetic algorithms, genetic programming, neural networks, swarm optimization, and fuzzy logic.

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

CS 387 Game AI Development 3.0 Credits

This course focuses on artificial intelligence (AI) techniques for computer games. Students will learn both basic and advanced AI techniques that are used in a variety of game genres including first-person shooters, driving games, strategy games, platformers, etc. The course will emphasize the difference between traditional AI and game AI, the latter having a strong design component, focusing on creating games that are “fun to play.” Topics include path-finding, decision-making, strategy and machine learning in games.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 380 [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, parallel computers, and high performance programming.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: (CS 281 [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). 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). Professor Emeritus. 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. 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