Computer Science

Major: Computer Science
Degree Awarded: Bachelor of Science (BS) or Bachelor of Arts (BA)
Calendar Type: Quarter
Total Credit Hours: 186.5
Classification of Instructional Programs (CIP) code: 11.0701
Standard Occupational Classification (SOC) code:
11-3021; 15-1111; 15-1131; 15-1132; 11-1199

About the Program

The College of Computing & Informatics' Bachelor of Science/Arts in Computer Science offers 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 human-computer interaction. The program's flexibility allows students to easily sample from areas in which they would like to apply their computing knowledge. 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 software methodology and engineering. Students also choose two other tracks from a list of possible specializations. Please contact your advisor at the College of Computing & Informatics for a current list of computer science track and elective courses.

Concentrations

Additional Information

For more information about this program, please visit the BS/BA in Computer Science web page on the College of Computing & Informatics' website.

Degree Requirements (BS) 

The Bachelor of Science (BS) in Computer Science program emphasizes foundation courses in the sciences and in applied mathematics, leading to careers involving applications in science and engineering.

Computer Science Requirements
CS 164Introduction to Computer Science3.0
Select one of the following: *3.0-6.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
Computer Science track courses (see below)18.0
Computer Science electives (see below)6.0
Computing & Informatics Requirements
CI 101Computing and Informatics Design I2.0
CI 102Computing and Informatics Design II2.0
CI 103Computing and Informatics Design III2.0
CI 491 [WI] Senior Project I3.0
CI 492 [WI] Senior Project II3.0
CI 493 [WI] Senior Project III3.0
Mathematics Requirements
MATH 121Calculus I4.0
MATH 122Calculus II4.0
MATH 123Calculus III4.0
MATH 201Linear Algebra4.0
or MATH 261 Linear Algebra
or ENGR 231 Linear Engineering Systems
MATH 221Discrete Mathematics3.0
MATH 311Probability and Statistics I4.0
or MATH 410 Scientific Data Analysis I
Mathematics elective (see below)4.0
Science Requirements25.0
Select one of the following lab science sequences:
Cells and Genetics
and Evolution & Organismal Diversity
and Physiology and Ecology
Or
General Chemistry I
and General Chemistry II
and General Chemistry III
Or
Fundamentals of Physics I
and Fundamentals of Physics II
and Fundamentals of Physics III
Science electives (see below)
Arts & Humanities Requirements
COM 230Techniques of Speaking3.0
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
ENGL 102Composition and Rhetoric II: Advanced Research and Evidence-Based Writing3.0
ENGL 103Composition and Rhetoric III: Themes and Genres3.0
PHIL 311Computer Ethics3.0
Writing & Communication electives (see below)6.0
Business elective (see below)4.0
Social Studies elective (see below)3.0
Arts & Humanities, Business, or Social Studies electives (see below)17.0
University Requirements
UNIV CI101The Drexel Experience2.0
or CI 120 CCI Transfer Student Seminar
CIVC 101Introduction to Civic Engagement1.0
COOP 101Career Management and Professional Development0.0
Free electives10.5-15.5
Total Credits186.5
*

 Not available to all students. Please see your Academic Advisor for eligibility requirements.

Program Electives

  • Computer Science electives: any CS course numbered 300 or higher
  • Mathematics electivesMATH 200, MATH 210, MATH 262, ENGR 232, any MATH course numbered 300 or higher
  • Science electives: any CHEM (except 111, 112, 113, 114, 151), BIO (except 161, 162, 163; cannot take both BIO 100 and 122), PHYS (except 050, 100, 103, 104, 105, 106, 121, 122, 151, 160, 305, 306, 307, 324, 405; cannot take both PHYS 131 & 181)
  • Writing & Communications electives: any WRIT, COM, ENGL courses officially certified as Writing Intensive (WI)
  • Business electives: any ACCT, BLAW, BUSN, ECON, FIN, HRMT, INTB, MGMT, MKTG, OPM, OPR, ORGB, POM, STAT, TAX
  • Social Studies electives: any AFAS, ANTH, HIST, IAS, JUDA, PSCI, PSY (except 330, 332, 337, 364, 365), SOC (except 364, 365), WGST
  • Arts & Humanities electives: any ARTH, COM, DANC, EDEX, EDUC, ENGL (except 101, 102, 103, 105), ESTM, FASH, FMVD, INTR, LING, MUSC, PHIL, PHTO, THTR, VSCM, VSST, WRIT, and Foreign Language courses as defined by the College of Arts and Sciences

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 College 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
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
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 Interaction
CS 338Graphical User Interfaces3.0
Select one of the following:3.0
Human-Computer Interaction II
The Psychology of Human-Computer Interaction
Human-Computer Interaction
Select one of the following:3.0
Computer Game Design and Development
Game Development Foundations
Interactive Computer Graphics
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 (BS)

 

BS Computer Science

5 YR UG Co-op Concentration

Term 1Credits
CI 101Computing and Informatics Design I2.0
CS 164Introduction to Computer Science3.0
MATH 121Calculus I4.0
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
UNIV CI101The Drexel Experience1.0
Science lab4.5
 Term Credits17.5
Term 2
CI 102Computing and Informatics Design II2.0
CIVC 101Introduction to Civic Engagement1.0
COOP 101Career Management and Professional Development0.0
CS 171Computer Programming I3.0
ENGL 102Composition and Rhetoric II: Advanced Research and Evidence-Based Writing3.0
MATH 122Calculus II4.0
Science lab4.5
 Term Credits17.5
Term 3
CI 103Computing and Informatics Design III2.0
CS 172Computer Programming II3.0
ENGL 103Composition and Rhetoric III: Themes and Genres3.0
MATH 123Calculus III4.0
UNIV CI101The Drexel Experience1.0
Science lab4.5
 Term Credits17.5
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 201Linear Algebra4.0
Science elective3.0
Social Studies elective3.0
 Term Credits16.0
Term 5
CS 260Data Structures3.0
CS 275Web and Mobile App Development3.0
MATH 221Discrete Mathematics3.0
Science elective3.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
Science elective3.0
Arts & Humanities elective3.0
 Term Credits16.0
Term 7
CS 283Systems Programming3.0
CS 360Programming Language Concepts3.0
Science elective3.0
Writing & Communications elective3.0
Arts & Humanities elective 3.0
 Term Credits15.0
Term 8
MATH 410
or 311
Scientific Data Analysis I
Probability and Statistics I
3.0
PHIL 311Computer Ethics3.0
Computer science electives6.0
Arts & Humanities elective3.0
 Term Credits15.0
Term 9
CS 451Software Engineering3.0
Arts & Humanities elective3.0
Computer Science elective3.0
Mathematics elective3.0
Science elective 3.0
 Term Credits15.0
Term 10
CI 491 [WI] Senior Project I3.0
Arts & Humanities elective3.0
Computer Science electives 6.0
Free elective 3.0
 Term Credits15.0
Term 11
CI 492 [WI] Senior Project II3.0
Arts & Humanities elective3.0
Computer Science electives6.0
Free elective3.0
 Term Credits15.0
Term 12
CI 493 [WI] Senior Project III3.0
Computer Science elective3.0
Writing & Communications elective3.0
Free elective 2.0
 Term Credits11.0
Total Credit: 186.5

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.

Computer Science Requirements
CS 164Introduction to Computer Science3.0
Select one of the following:3.0-6.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
Computer Science track courses (see below)18.0
Computer Science electives (see below)6.0
Computing & Informatics Requirements
CI 101Computing and Informatics Design I2.0
CI 102Computing and Informatics Design II2.0
CI 103Computing and Informatics Design III2.0
CI 491 [WI] Senior Project I3.0
CI 492 [WI] Senior Project II3.0
CI 493 [WI] Senior Project III3.0
Mathematics Requirements
MATH 121Calculus I4.0
MATH 122Calculus II4.0
MATH 123Calculus III4.0
MATH 201Linear Algebra3.0-4.0
or MATH 261 Linear Algebra
or ENGR 231 Linear Engineering Systems
MATH 221Discrete Mathematics3.0
MATH 311Probability and Statistics I3.0-4.0
or MATH 410 Scientific Data Analysis I
Mathematics elective (see below)4.0
Science Requirements18.0
Select one of the following lab science sequences:
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
Science electives (see below)
Arts & Humanities Requirements
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
ENGL 102Composition and Rhetoric II: Advanced Research and Evidence-Based Writing3.0
ENGL 103Composition and Rhetoric III: Themes and Genres3.0
PHIL 311Computer Ethics3.0
COM 230Techniques of Speaking3.0
Social Studies electives (see below)12.0
International Area Studies electives (see below)6.0
Diversity Studies electives (see below)6.0
Arts & Humanities electives (see below)6.0
University Requirements
UNIV CI101The Drexel Experience2.0
or CI 120 CCI Transfer Student Seminar
CIVC 101Introduction to Civic Engagement1.0
COOP 101Career Management and Professional Development0.0
Free electives17.5-20.5
Total Credits186.5

Program Electives

  • Computer Science electives: any CS course numbered 300 or higher
  • Mathematics electivesMATH 200, MATH 210, MATH 262, ENGR 232, any MATH course numbered 300 or higher
  • Science electives: any CHEM (except 111, 112, 113, 114, 151), BIO (except 161, 162, 163; cannot take both BIO 100 and 122), PHYS (except 050, 100, 103, 104, 105, 106, 121, 122, 151, 160, 305, 306, 307, 324, 405; cannot take both PHYS 131 & 181)
  • Social Studies electives: any AFAS, ANTH, HIST, IAS, JUDA, PSCI, PSY (except 330, 332, 337, 364, 365), SOC (except 364, 365), WGST
  • International Area Studies electives: any IAS, MUSC 331, PSCI 150, PSCI 255, PSCI 340, PSCI 345, PSCI 357, PSCI 358, PSCI 367
  • Diversity Studies electives: any AFAS, WGST
  • Arts & Humanities electives: any ARTH, COM, DANC, EDEX, EDUC, ENGL (except 101, 102, 103, 105), ESTM, FASH, FMVD, INTR, LING, MUSC, PHIL, PHTO, THTR, VSCM, VSST, WRIT, and Foreign Language courses as defined by the College of Arts and Sciences

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 College 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
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
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
Topics in Computer Gaming
Game Development: Workshop I
Game Development: Workshop II
Human-Computer Interaction
CS 338Graphical User Interfaces3.0
Select one of the following:
Human-Computer Interaction II
The Psychology of Human-Computer Interaction
Human-Computer Interaction
Select one of the following:3.0
Computer Game Design and Development
Game Development Foundations
Interactive Computer Graphics
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
CI 101Computing and Informatics Design I2.0
CS 164Introduction to Computer Science3.0
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
MATH 121Calculus I4.0
UNIV CI101The Drexel Experience1.0
Science lab4.0
 Term Credits17.0
Term 2
CI 102Computing and Informatics Design II2.0
CIVC 101Introduction to Civic Engagement1.0
CS 171
or 175
Computer Programming I
Computer Programming I-II
3.0
COOP 101Career Management and Professional Development0.0
ENGL 102Composition and Rhetoric II: Advanced Research and Evidence-Based Writing3.0
MATH 122Calculus II4.0
Science lab4.0
 Term Credits17.0
Term 3
CI 103Computing and Informatics Design III2.0
CS 172*Computer Programming II3.0
ENGL 103Composition and Rhetoric III: Themes and Genres3.0
MATH 123Calculus III4.0
UNIV CI101The Drexel Experience1.0
Science lab4.0
 Term Credits17.0
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 201Linear Algebra4.0
Science elective3.0
Social Studies elective 3.0
 Term Credits16.0
Term 5
CS 260Data Structures3.0
CS 275Web and Mobile App Development3.0
MATH 221Discrete Mathematics3.0
Science elective3.0
International Area Studies elective 3.0
 Term Credits15.0
Term 6
COM 230Techniques of Speaking3.0
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
International Area Studies elective3.0
Arts & Humanities elective 3.0
 Term Credits16.0
Term 7
CS 283Systems Programming3.0
CS 360Programming Language Concepts3.0
Social Studies elective 3.0
Diversity Studies elective3.0
Free elective3.0
 Term Credits15.0
Term 8
MATH 311
or 410
Probability and Statistics I
Scientific Data Analysis I
4.0
PHIL 311Computer Ethics3.0
Computer Science electives6.0
Diversity Studies elective3.0
 Term Credits16.0
Term 9
CS 451Software Engineering3.0
Arts & Humanities elective3.0
Computer Science elective3.0
Mathematics elective3.0
Social Studies elective 3.0
 Term Credits15.0
Term 10
CI 491 [WI] Senior Project I3.0
Computer Science electives6.0
Social Studies elective 3.0
Free elective3.0
 Term Credits15.0
Term 11
CI 492 [WI] Senior Project II3.0
Computer Science electives6.0
Free electives6.0
 Term Credits15.0
Term 12
CI 493 [WI] Senior Project III3.0
Computer Science elective 3.0
Free electives6.5
 Term Credits12.5
Total Credit: 186.5

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 software engineer, programmer, web designer, multimedia or software developer, 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.

Accelerated Degrees

The College of Computing & Informatics offers several Accelerated Degree programs designed to allow students to complete both a bachelor’s degree and a graduate degree along with cooperative educational experience in fewer years than would be typical if pursuing the degrees separately. Students accepted in this program can combine any of the College's bachelor's and master's degree programs as well as other options:

  • Any CCI BS/any CCI MS Accelerated Degree (BS & MS in five years, including 2 Co-ops)
  • Any CCI BS/MBA Accelerated Degree (BS/MBA)
  • Any CCI BS/JD Accelerated Degree (BS/JD)

For more information on the criteria for entering this program, visit the BS/MS Accelerated Degree page on Drexel's website.

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

Applying

The guidelines for applying to the Computer Science Bachelor's/Master's (BS/MS) Accelerated Degree Program are as follows:

  • University regulations require application after the completion of 90.0 credits but before the completion of 120.0 credits.
  • 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 your advisor and course schedules for guidance.
  • Applicants must have completed the following courses with a minimum GPA of 3.50:
Select one of the following:3.0-6.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
MATH 221Discrete Mathematics3.0
CS 350 [WI] Software Design3.0
CS 360Programming Language Concepts3.0
One additional CS course numbered 300 or higher3.0

Requirements 

The requirements of the Computer Science BS/MS program follow the requirements of both the BS in Computer Science and the MS in Computer Science. Students must complete all the requirements of the BS in Computer Science except that they may drop two free electives (still maintaining the 180.0 credit minimum for the BS degree). In addition, students must complete 45.0 credits of graduate courses to satisfy the requirements of the MS in Computer Science. Please refer to the linked program pages for the details of these requirements.

When completing undergraduate CS electives and graduate CS courses, students should take care to avoid equivalent courses at both the undergraduate and graduate levels. The table below indicates pairs of equivalent courses; students may only take one or the other in each pair but not both.

CS 338Graphical User Interfaces3.0
or CS 530 Developing User Interfaces
CS 370Operating Systems3.0
or CS 543 Operating Systems
CS 380Artificial Intelligence3.0
or CS 510 Introduction to Artificial Intelligence
CS 430Computer Graphics3.0
or CS 536 Computer Graphics
CS 431Advanced Rendering Techniques3.0
or CS 636 Advanced Computer Graphics
CS 432Interactive Computer Graphics3.0
or CS 637 Interactive Computer Graphics
CS 435Computational Photography3.0
or CS 583 Introduction to Computer Vision
CS 440Theory of Computation3.0
or CS 525 Theory of Computation
CS 457Data Structures and Algorithms I3.0
or CS 521 Data Structures and Algorithms I
CS 458Data Structures and Algorithms II3.0
or CS 522 Data Structures and Algorithms II
CS 472Computer Networks: Theory, Applications and Programming3.0
or CS 544 Computer Networks
CS 475Computer and Network Security3.0
or CS 645 Network Security
CS 481Advanced Artificial Intelligence3.0
or CS 610 Advanced Artificial Intelligence

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.

Plan of Study

Students in the BS/MS program typically forego their third co-op and take advanced courses during those two terms. The sample plan of study below thus assumes a total of 14 terms completed within a 5-year period.

Term 1Credits
CI 101Computing and Informatics Design I2.0
CS 164Introduction to Computer Science3.0
MATH 121Calculus I4.0
ENGL 101Composition and Rhetoric I: Inquiry and Exploratory Research3.0
UNIV 101The Drexel Experience1.0
Science lab4.5
 Term Credits17.5
Term 2
CI 102Computing and Informatics Design II2.0
CS 171Computer Programming I3.0
MATH 122Calculus II4.0
ENGL 102Composition and Rhetoric II: Advanced Research and Evidence-Based Writing3.0
COOP 101Career Management and Professional Development0.0
CIVC 101Introduction to Civic Engagement1.0
Science lab4.5
 Term Credits17.5
Term 3
CI 103Computing and Informatics Design III2.0
CS 172Computer Programming II3.0
MATH 123Calculus III4.0
ENGL 103Composition and Rhetoric III: Themes and Genres3.0
UNIV 101The Drexel Experience1.0
Science lab4.5
 Term Credits17.5
Term 4
CS 265Advanced Programming Tools and Techniques3.0
CS 270Mathematical Foundations of Computer Science3.0
MATH 201Linear Algebra4.0
Science elective3.0
Social Studies elective3.0
 Term Credits16.0
Term 5
CS 260Data Structures3.0
CS 275Web and Mobile App Development3.0
MATH 221Discrete Mathematics3.0
Science elective3.0
Business elective4.0
 Term Credits16.0
Term 6
CS 281Systems Architecture4.0
CS 350 [WI] Software Design3.0
COM 230Techniques of Speaking3.0
Science elective3.0
Arts & Humanities elective3.0
 Term Credits16.0
Term 7
CS 283Systems Programming3.0
CS 360Programming Language Concepts3.0
Science elective3.0
Writing & Communications elective3.0
Arts & Humanities elective3.0
Free elective3.0
 Term Credits18.0
Term 8
Computer Science electives6.0
MATH 410
or 311
Scientific Data Analysis I
Probability and Statistics I
3.0
PHIL 311Computer Ethics3.0
Arts & Humanities elective3.0
Writing & Communications elective3.0
 Term Credits18.0
Term 9
CS 451Software Engineering3.0
Computer Science electives6.0
Mathematics elective3.0
Science elective3.0
Arts & Humanities elective3.0
 Term Credits18.0
Term 10
Computer Science electives6.0
Arts & Humanities elective3.0
Graduate course3.0
Graduate course3.0
 Term Credits15.0
Term 11
Computer Science electives6.0
Arts & Humanities elective3.0
Graduate course3.0
Graduate course3.0
 Term Credits15.0
Term 12
CI 491 [WI] Senior Project I3.0
Graduate course3.0
Graduate course3.0
Graduate course3.0
Graduate course3.0
 Term Credits15.0
Term 13
CI 492 [WI] Senior Project II3.0
Graduate course3.0
Graduate course3.0
Graduate course3.0
Graduate course3.0
 Term Credits15.0
Term 14
CI 493 [WI] Senior Project III3.0
Graduate course3.0
Graduate course3.0
Graduate course3.0
 Term Credits12.0
Total Credit: 226.5

Minor

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

The Computer Science minor is available to all University students in good standing, with the exception of Computer Science majors.

Prerequisites

One of the following Mathematics sequences must be completed before entering the program:

  • MATH 101 and MATH 102
  • MATH 121 and MATH 122

Requirements

Select one of the following:3.0-6.0
Computer Programming I
and Computer Programming II
Computer Programming I-II
CS 260Data Structures3.0
CS 265Advanced Programming Tools and Techniques3.0
Additional CS courses numbered 200 or higher. Students who take CS 175 should select 5 courses; all other students should select 4 courses.12.0-15.0
Total Credits24.0

Note: No more than 9 credits from a student's major may be used to fulfill the minor requirements. Students who, because of this rule, require additional credits to reach 24 total credits may select additional Advanced Electives as needed. 

Facilities

Drexel University Libraries

Drexel University Libraries is a learning enterprise, advancing the University’s academic mission through serving as educators, supporting education and research, collaborating with researchers, and fostering intentional learning outside of the classroom. Drexel University Libraries engages with Drexel communities through four physical locations, including W. W. Hagerty Library, Hahnemann Library, Queen Lane Library and the Library Learning Terrace, as well as a vibrant online presence which sees, on average, over 8,000 visits per day. In the W.W. Hagerty Library location, College of Computing & Informatics students have access to private study rooms and nearly half a million books, periodicals, DVDs, videos and University Archives. All fields of inquiry are covered, including: library and information science, computer science, systems engineering, health informatics, information systems, and technology. Resources are available online at library.drexel.edu or in-person at W. W. Hagerty Library.

The Libraries also make available laptop and desktop PC and Mac computers, printers and scanners, spaces for quiet work or group projects and designated 24/7 spaces. Librarians and library staff—including a liaison librarian for computing and informatics—are available for individual research consultations and to answer questions about materials or services.

iCommons

Located in Room 106 of the Rush Building, the College’s iCommons is an open lab and collaborative work environment for students. It features desktop computers, a wireless/laptop area, free black and white printing, more collaborative space for its students and a furnished common area. There is a fully equipped conference room for student use with a 42” display and videoconferencing capabilities. The iCommons provides technical support to students, faculty, and administrative staff. In addition, the staff provides audio-visual support for all presentation classrooms within the Rush Building. Use of the iCommons is reserved for all students taking CCI courses.

The computers for general use are Microsoft Windows and Macintosh OSX machines with appropriate applications which include the Microsoft Office suite, various database management systems, modeling tools, and statistical analysis software. Library related resources may be accessed at the iCommons and through the W.W. Hagerty Library. The College is a member of the Rational SEED Program which provides cutting-edge CASE and project management software for usage in the iCommons and CCI classrooms. The College is also a member of the Microsoft Academic Alliance known also as “DreamSpark” which allows students free access to a wide array of Microsoft software titles and operating systems.

CCI students can access Drexel’s mail server from within the iCommons. The iCommons, student labs, and classrooms have access to networked databases, print and file resources within the College, and the Internet via the University’s network. Email accounts, Internet and BannerWeb access are available through the Office of Information Resources and Technology.

Rush Building

The Rush Building houses on campus classes, CCI administrative offices (academic advising, admissions, faculty, etc.) and the iCommons computer lab (open to all CCI students). The building holds 6 classrooms equipped for audio-visual presentation. These rooms typically contain a networked PC, HD video player, ceiling mounted projectors, and other equipment for presentations and demonstrations. Four of these classrooms are fully equipped to function as laptop computing labs for networking, programming and database-related projects.

In 2013, CCI redesigned its Information Technology Laboratory, located in the Rush Building, in support of the undergraduate degree program in information technology. This lab consists of enterprise class information technology hardware that students would encounter in industry positions. The hardware includes 20 high powered workstations that are available to students and specialized networking lab simulation software. The hardware is networked and reconfigurable utilizing multiple virtual technologies as needed for the various classes the laboratory supports. In addition a special system has been built into to the classroom to allow for conversion into a standard laptop computing lab utilizing motorized monitor lifts that allow the monitors and keyboards to recess into the desk.

Cyber Learning Center

The Cyber Learning Center, located in University Crossings, provides consulting and other learning resources for students taking computer science classes. It is staffed by graduate and undergraduate computer science students in the College of Computing & Informatics.

Research Laboratories

The College houses multiple research labs, led by CCI faculty, across Drexel’s main campus including: the Auerbach and Berger Families Cybersecurity Laboratory, Drexel Health and Risk Communication Lab, Socio-Technical Studies Group, Intelligent Information & Knowledge Computing Research Lab, Evidence-based Decision Making Lab, Applied Symbolic Computation Laboratory (ASYM), Geometric and Intelligent Computing Laboratory (GICL), High Performance Computing Laboratory (SPIRAL), Privacy, Security and Automation Laboratory (PSAL), Drexel Research on Play (RePlay) Laboratory, Software Engineering Research Group (SERG), Vision and Cognition Laboratory (VisCog) and the Vision and Graphics Laboratory. For more information on these laboratories, please visit the College’s research web page.

Alumni Garden

The Rush Building’s Alumni Garden provides additional collaborative space for students, faculty, professional staff and alumni. The Garden features wireless networking, tables with built-in power outlets, accessible covered patio and balconies and a bicycle rack. The Alumni Garden may be reserved for Drexel events.

University Crossings

CCI also has on campus classrooms, administrative offices and faculty offices at University Crossings 100, located at the corner of JFK and Market Streets. The building houses a student computer lab (featuring workstations and laptop plug-in stations, arranged in pods, to encourage collaboration among CCI students), as well as several classrooms with video-conference enabled technology and media projection capabilities. Its Cyber Learning Center provides consulting and other learning resources for students taking computer science classes within the College. University Crossings is also home to several of the College’s research groups and laboratories.

3401 Market Street

3401 Market Street houses faculty offices and doctoral student workspaces. It also is home to College research groups such as the Applied Informatics Group, and University initiatives such as the Drexel University Cybersecurity Institute. The Institute’s newly opened Auerbach and Berger Families Cybersecurity Laboratory serves as University’s first training facility dedicated to identifying challenges and discovering solutions in the areas of cyber infrastructure protection and incident response.

One Drexel Plaza

One Drexel Plaza at 30th and Market Streets houses CCI faculty offices and on campus classes via the Computing & Security Technology program.

Computer Science Faculty

Yuan An, PhD (University of Toronto, Canada) Associate Professor. Conceptual modeling, schema and ontology mapping, information integration, knowledge representation, requirements engineering, healthcare information systems, semantic web

David Augenblick, MS (University of Pennsylvania) 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

Marcello Balduccini, PhD (Texas Tech University) Senior Research Scientist, Assistant Research Professor, Applied Informatics Group. Logic programming, declarative programming, answer set programming, knowledge representation, various types of reasoning

David Breen, PhD (Rensselaer Polytechnic Institute) Associate Professor. Self-organization, biomedical image/video analysis, biological simulation, geometric modeling and visualization

Yuanfang Cai, PhD (University of Virginia) Associate Professor. Formal software design modeling and analysis, software economics, software evolution and modularity

Bruce Char, PhD (University of California, Berkeley) Professor. Symbolic mathematical computation, algorithms and systems for computer algebra, problem-solving environments, parallel and distributed

Andrea Forte, PhD (Georgia Institute of Technology) Assistant Professor. Social computing, human-computer interaction, computer-supported cooperative work, computer-supported collaborative learning, information literacy

Christopher Geib, PhD (University of Pennsylvania) Associate Professor. Decision making and reasoning under conditions of uncertainty, planning, scheduling, constraint, based reasoning, human computer and robot interaction, probabilistic reasoning, computer network security, large scale process control, user interfaces

Rachel Greenstadt, PhD (Harvard University) Associate Professor. Artificial intelligence, privacy, security, multi-agent systems, economics of electronic privacy and information security

Tony H. Grubesic, PhD (The Ohio State University) Professor (Joint appointment in the Department of Culture & Communication with the College of Arts and Sciences). Geographic information science, spatial analysis, development, telecommunication policy, location modeling

Xiaohua Tony Hu, PhD (University of Regina, Canada) Professor. Data mining, text mining, Web searching and mining, information retrieval, bioinformatics and healthcare informatics

Jeremy Johnson, PhD (Ohio State University) Professor. Computer algebra, parallel computations, algebraic algorithms, scientific computing

Constantine Katsinis, PhD (University of Rhode Island) Associate Teaching Professor. Computer Security, network security, parallel computer architectures, mobile computing, information assurance, fault tolerant systems, image processing and pattern recognition

Weimao Ke, PhD (University of North Carolina at Chapel Hill) Assistant Professor. Information retrieval (IR), distributed systems, intelligent filtering/recommendation, information visualization, network science, complex systems, machine learning, text/data mining, multi-agent systems, the notion of information

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) Senior Associate Dean of Computing & Academic Affairs, 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

Alan T. Murray, PhD (University of California, Santa Barbara) Professor. Geographic information science, urban, regional and natural resource planning; location modeling, spatial decision support systems, land use decision making

Ko Nishino, PhD (University of Tokyo) Director of Computing Graduate Affairs & Research, Associate Professor. Computer vision, computer graphics, analysis and synthesis of visual appearance

Krysztof 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

Santiago Ontañón, PhD (University of Barcelona) Assistant Professor. Game AI, computer games, artificial intelligence, machine learning, case-based reasoning

Jeffrey L. Popyack, PhD (University of Virginia) Professor. Operations research, stochastic optimization, computational methods for Markov decisions processes, artificial intelligence, computer science education

William Regli, PhD (University of Maryland at College Park) Professor. Artificial intelligence, computer graphics, engineering design and Internet computing

Jeffrey Salvage, MS (Drexel University) Associate Teaching Professor. Object-oriented programming, multi-agent systems, software engineering, database theory, introductory programming, data structures

Dario Salvucci, PhD (Carnegie Mellon University) Associate Dean for CCI Undergraduate Studies, Professor. Human computer interaction, cognitive science, machine learning, applications for driving

Aleksandra Sarcevic, PhD (Rutgers University) Assistant Professor. Computer-supported cooperative work, human-computer interaction, healthcare informatics; crisis informatics; social analysis of information & communications technology (ICT)

Kurt Schmidt, MS (Drexel University) Associate Teaching Professor. Data structures, math foundation for computer science, programming tools, programming languages

Ali Shokoufandeh, PhD (Rutgers University) Professor. Theory of algorithms, graph theory, combinatorial optimization, computer vision

Erin Solovey, PhD (Tufts University) Assistant Professor. Human-computer interaction, brain-computer interfaces, tangible interaction, machine learning, human interaction with complex and autonomous systems

Il-Yeol Song, PhD (Louisiana State University) PhD Program Director, Professor. Conceptual modeling, ontology and patterns, data warehouse and OLAP, object-oriented analysis and design with UML, medical and bioinformatics data modeling & integration

Julia Stoyanovich, PhD (Columbia University) Assistant Professor. Data and knowledge management, software development, database management, data-intensive workflow, social context search and ranking, information discovery

Brian Stuart, PhD (Purdue University) Associate Teaching Professor. Machine learning, networking, robotics, image processing, simulation, interpreters, data storage, operating systems, computer science, data communications, distributed/operating systems, accelerated computer programming, computer graphics

Filippos Vokolos, PhD (Polytechnic University) Associate Teaching Professor. System architecture, principles of software design and construction, verification and validation methods for the development of large software systems, foundations of software engineering, software verification & validation, software design, programming languages, dependable software systems

Christopher C. Yang, PhD (University of Arizona, Tucson) Associate Professor. Web search and mining, security informatics, social media analytics, knowledge management, cross-lingual information retrieval, text summarization, multimedia retrieval, information visualization, information sharing and privacy, artificial intelligence, digital library and electronic commerce

Maxwell Young, PhD (University of Waterloo) Assistant Professor. Algorithms for decentralized networks that yield provable guarantees with respect to fault tolerance and performance.

Evaluations

The College of Computing & Informatics works continually to improve its degree programs. As part of this effort, the Computer Science degree is evaluated relative to the following Objectives and Outcomes.

Computer Science Program Educational Objectives

Drexel Computer Science alumni will:

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

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

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

  4. provide leadership in their profession, in their communities, and society;

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

Computer Science Student Outcomes (for Bachelor of Science and Bachelor of Arts)

The Drexel Computer Science program enables students to attain, by the time of graduation:

  1. An ability to apply knowledge of computing and mathematics appropriate to the discipline
  2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
  3. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
  4. An ability to function effectively on teams to accomplish a common goal
  5. An understanding of professional, ethical, legal, security and social issues and responsibilities
  6. An ability to communicate effectively with a range of audiences
  7. An ability to analyze the local and global impact of computing on individuals, organizations, and society
  8. Recognition of the need for and an ability to engage in continuing professional development
  9. An ability to use current techniques, skills, and tools necessary for computing practice
  10. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
  11. An ability to apply design and development principles in the construction of software systems of varying complexity.

Additional Information

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

To view the latest BS/BA in Computer Science program enrollment numbers, please click here.

Courses

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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 172 [Min Grade: D] or CS 175 [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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 172 [Min Grade: D] or CS 175 [Min Grade: D] or CS 265 [Min Grade: D] or SE 103 [Min Grade: D] or ECEC 301 [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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 265 [Min Grade: D]

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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: (CS 270 [Min Grade: D] or ECE 200 [Min Grade: D]) and (CS 172 [Min Grade: D] or CS 175 [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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 283 [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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and (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 Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D]

CS 465 Privacy and Trust 3.0 Credits

This course will motivate the need for privacy protection and introduce basic privacy properties such as anonymity, unlinkability or unobservability. We will then discuss how these properties can be formalized, modeled and measured. The course will provide a broad overview of the state-of-the-art in privacy technologies, explain the main issues that these technologies address, what the current solutions are able to achieve, and the remaining open problems.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 303 [Min Grade: D]

CS 467 Security and Human Behavior 3.0 Credits

Humans are usually the weakest link in information security. Technical measures are easily thwarted by end- user decisions. How are end user decisions made? This course examines security decisions online from the distinct perspective of economics, psychology, anthropology, evolutionary biology, and criminology. We will address topics such as System I vs. System II, mental models, risk perceptions, safety engineering, groups behaviors in primates.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: INFO 110 [Min Grade: D] and PSY 101 [Min Grade: D] and ECON 201 [Min Grade: D] and ECON 250 [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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 Computing and Informatics
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 477 Advanced Software Security 3.0 Credits

An in-depth treatment of programming flaws that lead to software security vulnerability and exposure to ideas on how to correct and avoid such flaws. Specifically, the course examines security flaws in web applications, code implementation, concurrency, exception handing, use of cryptography, user interfaces, and exposes students to testing processes that are specifically targeted to uncovering security flaws.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 361 [Min Grade: D] and CS 475 [Min Grade: D]

CS 479 Advanced Network Security 3.0 Credits

A study of what it takes to make a network secure, starting with an analysis of the sometimes conflicting goals (e.g. anonymity vs. traceability) through the mechanisms that can be used to achieve these goals. Covers in depth both the design options available and the design decisions made in various deployed systems, including Kerberos, IPsec, SSL, and X.509.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 475 [Min Grade: D]

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 Computing and Informatics
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 I199 Independent Study in CS 12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I299 Independent Study in CS 12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I399 Independent Study in CS 12.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I499 Independent Study in Computer Science 12.0 Credits

Provides supervised study of selected topics in computer science.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T180 Special Topics in Computer Science 12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T280 Special Topics in Computer Science 12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T380 Special Topics in Computer Science 12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T480 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 Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

  • Schedule of Classes
  • All Course Descriptions
  • Co-op
  • Academic Advising
  • Admissions
  • Tuition & Fees
LEARN MORE