Computer Science
About the Program
Bachelor of Arts in Computer Science: (BACS): 186.5 quarter credits
Bachelor of Science in Computer Science (BSCS): 186.5 quarter credits
The Drexel major in computer science offer extensive exposure and hands-on practice in the core areas of the field, including programming paradigms and languages, algorithms, systems, networking, and software engineering. Students also select upper level tracks in areas such as artificial intelligence, security, graphics and vision, and in human-computer interaction. The program's flexibility allows students to easily minor in an area in which they would like to apply their computing knowledge, tracks and electives. This hands-on curriculum combined with co-op provides real world experience that culminates in a full year software project.
The programs of study in computer science are designed with the flexibility to prepare students for careers in a rapidly changing profession and to allow strong preparation for graduate education in the field. In addition to the courses in the major, the Bachelor of Science program emphasizes foundation courses in the sciences and in applied mathematics, leading to careers involving applications in science and engineering. The Bachelor of Arts degree emphasizes foundation courses in the humanities and the social sciences, leading to careers involving applications in those areas.
Core courses in all programs include programming and data structures, programming language concepts, computer systems architecture, and a track of courses in software methodology and engineering. Students also choose two other tracks from the following: artificial intelligence, computer graphics, computer and network security, data structures and algorithms, game development and design, human-computer interaction, numeric and symbolic computation, operating systems and programming languages. Please contact the department for a current list of computer science elective and track courses.
Concentration in Game Programming and Development
The Game Programming and Development (GMPD) concentration program provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this concentration include fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design.
Mission Statement
To educate students for computer science careers in industry and research with an emphasis on analysis of problems, understanding of fundamental concepts, and interest in lifelong learning. To integrate real-world experiences, e.g., as obtained through the cooperative education program, into the academic curriculum.
Program Educational Objectives
The Bachelor of Science in Computer Science program prepares its graduates:
-
to understand and be able to apply the underlying principles of computer science to a variety of problem domains;
-
to develop good communication skills so that they can solve problems and communicate their solution;
-
to develop strong analytical skills so that they can quickly assess how to solve problems;
-
to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;
-
to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;
-
to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.
-
to understand and be able to apply mathematics and science.
The Bachelor of Arts in Computer Science program prepares its graduates:
-
to understand and be able to apply the underlying principles of Computer Science to a variety of problem domains;
-
to develop good communication skills so that they can solve problems and communicate their solution;
-
to develop strong analytical skills so that they can quickly assess how to solve problems;
-
to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;
-
to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;
-
to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.
-
to have a broad education in the liberal arts balanced with technical study in computer science.
Both BA an BS program alumni will:
-
be valued employees in a wide variety of occupations in industry, government and academia, in particular as computer scientists and software engineers;
-
succeed in graduate and professional studies, such as engineering, science, law, medicine and business;
-
pursue life-long learning and professional development to remain current in an ever changing technological world;
-
provide leadership in their profession, in their communities, and society;
-
function as responsible members of society with an awareness of the social and ethical ramifications of their work.
Student Outcomes
The department’s student outcomes reflect the skills and abilities that the curriculum is designed to provide to students by the time they graduate.
The Drexel Computer Science program prepares its graduates:
- to understand and be able to apply the underlying principles of Computer Science to a variety of problem domains;
- to develop good communication skills so that they can solve problems and communicate their solution;
- to develop strong analytical skills so that they can quickly assess how to solve problems;
- to be able to work in groups and appreciate the dynamic and collaborative nature of problem solving;
- to be equipped with a thorough understanding of the development process of software including design, implementation, documentation, and testing;
- to appreciate the role that computers play in society and to be able to direct the use of technology in a beneficial way and to solve new problems.
Program-Specific Outcomes:
The Bachelor of Science in Computer Science program prepares its graduates:
- to understand and be able to apply mathematics and science.
The Bachelor of Arts in Computer Science program prepares its graduates:
- to have a broad education in the liberal arts balanced with technical study in computer science.
Additional Information
The Computer Science BS and BA programs are accredited by the Computing Accreditation Commission (CAC) of ABET, http://www.abet.org.
For more information about this major, contact the Department of Computer Science.
Degree Requirements (BA)
The Bachelor of Arts (BA) program emphasizes foundation courses in the humanities and the social sciences, leading to careers involving applications in those areas.
| General Education Requirements | ||
| COM 230 | Techniques of Speaking | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| ENGL 102 | Persuasive Writing and Reading | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| PHIL 311 | Computer Ethics | 3.0 |
| UNIV E101 | The Drexel Experience | 2.0 |
| Humanities/Fine Arts electives | 6.0 | |
| International Area studies | 6.0 | |
| Foreign Language courses | 8.0 | |
| Social Studies electives | 12.0 | |
| Diversity Studies electives | 6.0 | |
| Science Requirements * | 18.0 | |
| Students must take one full year of a laboratory science and take courses in more than one science field. | ||
| Cells and Genetics and Cells and Genetics and Physiology and Ecology | ||
| General Chemistry I and General Chemistry II and General Chemistry III | ||
| Fundamentals of Physics I and Fundamentals of Physics II and Fundamentals of Physics III | ||
| Additional Science Electives (as needed to reach 18.0 credits total.) | ||
| Mathematics Requirements | 26.0 | |
| Introduction to Analysis I | ||
or MATH 121 | Calculus I | |
| Introduction to Analysis II | ||
or MATH 122 | Calculus II | |
| Mathematics for the Life Sciences | ||
or MATH 123 | Calculus III | |
| Discrete Mathematics | ||
| Introduction to Business Statistics | ||
or MATH 410 | Scientific Data Analysis I | |
| Business Statistics II | ||
Mathematics/Science elective | ||
| Computer Science Requirements | ||
| CS 164 | Introduction to Computer Science | 3.0 |
| CS 171 | Computer Programming I | 3.0 |
| CS 172 | Computer Programming II | 3.0 |
| or CS 175 | Computer Programming I-II | |
| CS 260 | Data Structures | 3.0 |
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 350 [WI] | Software Design | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| CS 451 | Software Engineering | 3.0 |
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| Computer Science electives | 6.0 | |
| Computer Science Track courses See Below | 18.0 | |
| Other Courses | ||
| Free electives | 23.5 | |
| Total Credits | 186.5 | |
| * | Other options for the laboratory sequence are available; see the Computer Science department for list. |
Computer Science Tracks
Students must complete two of the following Computer Science tracks for a total of 18.0 credits. The tracks may overlap by one course. Students should check with the Department for any additional Special Topics courses being offered that may be appropriate for one of the tracks.
| CS 440 | Theory of Computation | 3.0 |
| CS 457 | Data Structures and Algorithms I | 3.0 |
| CS 458 | Data Structures and Algorithms II | 3.0 |
| Artificial Intelligence | ||
| CS 380 | Artificial Intelligence | 3.0 |
| CS 481 | Advanced Artificial Intelligence | 3.0 |
| CS 485 | Special Topics in Artificial Intelligence | 3.0 |
| Computer and Network Security | ||
| CS 472 | Computer Networks: Theory, Applications and Programming | 3.0 |
| CS 475 | Computer and Network Security | 3.0 |
| CS 303 | Algorithmic Number Theory and Cryptography | 3.0 |
| Computer Graphics and Vision | ||
| CS 430 | Computer Graphics | 3.0 |
| CS 435 | Computational Photography | 3.0 |
| CS 338 | Graphical User Interfaces | 3.0 |
| or CS 431 | Advanced Rendering Techniques | |
| or CS 432 | Interactive Computer Graphics | |
| Game Development and Design | ||
| CS 345 | Computer Game Design and Development | 3.0 |
| or GMAP 345 | Game Development Foundations | |
| Select two of the following: | 6.0 | |
| Serious Games | ||
or CS 347 | Experimental Game Development | |
| Experimental Games | ||
or CS 348 | Serious Game Development | |
| Game Development: Workshop I | ||
| Game Development: Workshop II | ||
| Topics in Computer Gaming | ||
| Human-Computer Interactions | ||
| CS 337 | The Psychology of Human-Computer Interaction | 3.0 |
| CS 338 | Graphical User Interfaces | 3.0 |
| CS 430 | Computer Graphics | 3.0 |
| or CS 345 | Computer Game Design and Development | |
| or CS 435 | Computational Photography | |
| or PSY 330 | Cognitive Psychology | |
| Numeric and Symbolic Computation | ||
| CS 300 | Applied Symbolic Computation | 3.0 |
| MATH 300 | Numerical Analysis I | 4.0 |
| MATH 305 | Introduction to Optimization Theory | 3.0-4.0 |
| or MATH 301 | Numerical Analysis II | |
| or CS 303 | Algorithmic Number Theory and Cryptography | |
| Programming Languages | ||
| CS 440 | Theory of Computation | 3.0 |
| CS 441 | Compiler Workshop I | 3.0 |
| CS 442 | Compiler Workshop II | 3.0 |
| Software Engineering | ||
| SE 311 | Software Architecture II | 3.0 |
| SE 320 | Software Verification and Validation | 3.0 |
| SE 410 | Software Evolution | 3.0 |
| Systems | ||
| CS 361 | Concurrent Programming | 3.0 |
| CS 370 | Operating Systems | 3.0 |
| CS 461 | Database Systems | 3.0 |
| or CS 472 | Computer Networks: Theory, Applications and Programming | |
| or CS 365 | System Administration | |
Writing-Intensive Course Requirements
In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
Sample Plan of Study (BA)
5 YR UG Co-op Concentration
| Term 1 | Credits | |
|---|---|---|
| CS 164 | Introduction to Computer Science | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| UNIV E101 | The Drexel Experience | 1.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 Credits | 15.5 | |
| Term 2 | ||
| ENGL 102 | Persuasive Writing and Reading | 3.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 E101 | The Drexel Experience | 0.5 |
| Select one of the following: | 4.5 | |
| Evolution & Organismal Diversity | ||
| General Chemistry II | ||
| Fundamentals of Physics II | ||
| Term Credits | 15.0 | |
| Term 3 | ||
| CS 172* | Computer Programming II | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| MATH 123 or 239 | Calculus III Mathematics for the Life Sciences | 4.0 |
| UNIV E101 | The Drexel Experience | 0.5 |
| Select one of the following: | 4.5 | |
| Physiology and Ecology | ||
| General Chemistry III | ||
| Fundamentals of Physics III | ||
| Free elective | 3.0 | |
| Term Credits | 18.0 | |
| Term 4 | ||
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| Science elective** | 3.0 | |
| Diversity studies elective | 3.0 | |
| Arts and Humanities elective | 3.0 | |
| Term Credits | 15.0 | |
| Term 5 | ||
| CS 260 | Data Structures | 3.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| Social studies elective | 3.0 | |
| Free elective | 3.0 | |
| Science elective** | 3.0 | |
| Term Credits | 15.0 | |
| Term 6 | ||
| CS 281 | Systems Architecture | 4.0 |
| CS 350 [WI] | Software Design | 3.0 |
| STAT 201 | Introduction to Business Statistics | 4.0 |
| Social studies elective | 3.0 | |
| Arts and Humanities elective | 3.0 | |
| Term Credits | 17.0 | |
| Term 7 | ||
| COM 230 | Techniques of Speaking | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| STAT 202 | Business Statistics II | 4.0 |
| Social studies elective | 3.0 | |
| Computer Science elective** | 3.0 | |
| Term Credits | 16.0 | |
| Term 8 | ||
| PHIL 311 | Computer Ethics | 3.0 |
| Foreign language course | 4.0 | |
| Computer Science elective** | 6.0 | |
| Math/science elective | 3.0 | |
| Term Credits | 16.0 | |
| Term 9 | ||
| CS 451 | Software Engineering | 3.0 |
| Free elective | 3.0 | |
| Computer science electives** | 3.0 | |
| Foreign language course | 4.0 | |
| Diversity studies elective | 3.0 | |
| Term Credits | 16.0 | |
| Term 10 | ||
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| Computer Science elective** | 3.0 | |
| International studies elective | 3.0 | |
| Free electives | 6.0 | |
| Term Credits | 15.0 | |
| Term 11 | ||
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| Computer science electives** | 6.0 | |
| International studies elective | 3.0 | |
| Free elective | 3.5 | |
| Term Credits | 15.5 | |
| Term 12 | ||
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| Social studies elective | 3.0 | |
| Free electives | 3.5 | |
| Computer Science elective** | 3.0 | |
| Term Credits | 12.5 | |
| Total Credit: 186.5 | ||
| * | If CS 175 taken term 2. |
| ** | See degree requirements. |
Degree Requirements (BS)
The Bachelor of Science (BS) in computer science emphasizes foundation courses in the sciences and in applied mathematics, leading to careers involving applications in science and engineering. The concentration in game programming and development provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this concentration include fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design.
| General Education Requirements | ||
| COM 230 | Techniques of Speaking | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| ENGL 102 | Persuasive Writing and Reading | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| PHIL 311 | Computer Ethics | 3.0 |
| UNIV E101 | The Drexel Experience | 2.0 |
| Business elective | 4.0 | |
| Social Studies elective | 3.0 | |
| Writing and Communication electives * | 6.0 | |
| General Education electives | 17.0 | |
| Freshman Design Requirements | ||
| ENGR 101 | Engineering Design Laboratory I | 2.0 |
| ENGR 102 | Engineering Design Laboratory II | 2.0 |
| ENGR 103 | Engineering Design Laboratory III | 2.0 |
| Mathematics Requirements | ||
| MATH 121 | Calculus I | 4.0 |
| MATH 122 | Calculus II | 4.0 |
| MATH 123 | Calculus III | 4.0 |
| MATH 201 | Linear Algebra | 4.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| MATH 311 | Probability and Statistics I | 4.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 121 | Computation Laboratory I | 1.0 |
| CS 122 | Computation Laboratory II | 1.0 |
| CS 123 | Computation Laboratory III | 1.0 |
| Computer Science Requirements | ||
| CS 164 | Introduction to Computer Science | 3.0 |
| Select one of the following: | 3.0 | |
| Computer Programming I and Computer Programming II | ||
| Computer Programming I-II | ||
| CS 260 | Data Structures | 3.0 |
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 283 | Systems Programming | 3.0 |
| CS 350 [WI] | Software Design | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| CS 451 | Software Engineering | 3.0 |
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| ECE 200 | Digital Logic Design | 3.0 |
| Computer Science Track Courses (See below) | 18.0 | |
| Computer Science electives | 6.0 | |
| Other Courses | ||
| Free electives | 8.5-11.5 | |
| Total Credits | 186.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 440 | Theory of Computation | 3.0 |
| CS 457 | Data Structures and Algorithms I | 3.0 |
| CS 458 | Data Structures and Algorithms II | 3.0 |
| Artificial Intelligence | ||
| CS 380 | Artificial Intelligence | 3.0 |
| CS 481 | Advanced Artificial Intelligence | 3.0 |
| CS 485 | Special Topics in Artificial Intelligence | 3.0 |
| Computer Architecture | ||
| CS 282 | Systems Architecture II | 4.0 |
| CS 476 | High Performance Computing | 3.0 |
| ECEC 356 | Embedded Systems | 4.0 |
| ECEC 413 | Introduction to Parallel Computer Architecture | 3.0 |
| Computer and Network Security | ||
| CS 472 | Computer Networks: Theory, Applications and Programming | 3.0 |
| CS 475 | Computer and Network Security | 3.0 |
| CS 303 | Algorithmic Number Theory and Cryptography | 3.0 |
| Computer Graphics and Vision | ||
| CS 430 | Computer Graphics | 3.0 |
| CS 435 | Computational Photography | 3.0 |
| CS 338 | Graphical User Interfaces | 3.0 |
| or CS 431 | Advanced Rendering Techniques | |
| or CS 432 | Interactive Computer Graphics | |
| Human-Computer Interactions | ||
| CS 337 | The Psychology of Human-Computer Interaction | 3.0 |
| or PSY 337 | Human-Computer Interaction | |
| CS 338 | Graphical User Interfaces | 3.0 |
| CS 430 | Computer Graphics | 3.0 |
| or CS 345 | Computer Game Design and Development | |
| or CS 435 | Computational Photography | |
| or PSY 330 | Cognitive Psychology | |
| Game Development and Design | ||
| CS 345 | Computer Game Design and Development | 3.0 |
| or GMAP 345 | Game Development Foundations | |
| Select two of the following: | 6.0 | |
| Experimental Game Development | ||
| Serious Game Development | ||
| Topics in Computer Gaming | ||
| Game Development: Workshop I | ||
| Game Development: Workshop II | ||
| Numeric and Symbolic Computation | ||
| CS 300 | Applied Symbolic Computation | 3.0 |
| MATH 300 | Numerical Analysis I | 4.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 440 | Theory of Computation | 3.0 |
| CS 441 | Compiler Workshop I | 3.0 |
| CS 442 | Compiler Workshop II | 3.0 |
| Software Engineering | ||
| SE 311 | Software Architecture II | 3.0 |
| SE 320 | Software Verification and Validation | 3.0 |
| SE 410 | Software Evolution | 3.0 |
| Systems | ||
| CS 361 | Concurrent Programming | 3.0 |
| CS 370 | Operating Systems | 3.0 |
| Select one of the following: | 3.0 | |
| Database Systems | ||
| Computer Networks: Theory, Applications and Programming | ||
| System Administration | ||
Writing-Intensive Course Requirements
In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
Sample Plan of Study (BS)
BS Computer Science
5 YR UG Co-op Concentration
| Term 1 | Credits | |
|---|---|---|
| COOP 101 | Career Management and Professional Development | 0.0 |
| CS 121 | Computation Laboratory I | 1.0 |
| CS 164 | Introduction to Computer Science | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| ENGR 101 | Engineering Design Laboratory I | 2.0 |
| MATH 121 | Calculus I | 4.0 |
| UNIV E101 | The Drexel Experience | 1.0 |
| Select one of the following: | 4.5 | |
| Cells and Genetics | ||
| Fundamentals of Physics I | ||
| General Chemistry I | ||
| Term Credits | 18.5 | |
| Term 2 | ||
| CS 122 | Computation Laboratory II | 1.0 |
| ENGL 102 | Persuasive Writing and Reading | 3.0 |
| ENGR 102 | Engineering Design Laboratory II | 2.0 |
| CS 171 or 175 | Computer Programming I Computer Programming I-II | 3.0 |
| MATH 122 | Calculus II | 4.0 |
| UNIV E101 | The Drexel Experience | 0.5 |
| Select one of the following: | 4.5 | |
| Evolution & Organismal Diversity | ||
| General Chemistry II | ||
| Fundamentals of Physics II | ||
| Term Credits | 18.0 | |
| Term 3 | ||
| CS 123 | Computation Laboratory III | 1.0 |
| CS 172* | Computer Programming II | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| ENGR 103 | Engineering Design Laboratory III | 2.0 |
| MATH 123 | Calculus III | 4.0 |
| UNIV E101 | The Drexel Experience | 0.5 |
| Select one of the following: | 4.5 | |
| Physiology and Ecology | ||
| Fundamentals of Physics III | ||
| General Chemistry III | ||
| Term Credits | 18.0 | |
| Term 4 | ||
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| MATH 201 | Linear Algebra | 4.0 |
| Social studies elective | 3.0 | |
| Science elective** | 3.0 | |
| Term Credits | 16.0 | |
| Term 5 | ||
| CS 260 | Data Structures | 3.0 |
| ECE 200 | Digital Logic Design | 3.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| Science elective** | 3.0 | |
| Business elective | 4.0 | |
| Term Credits | 16.0 | |
| Term 6 | ||
| COM 230 | Techniques of Speaking | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 350 [WI] | Software Design | 3.0 |
| General education elective | 3.0 | |
| Science elective** | 3.0 | |
| Term Credits | 16.0 | |
| Term 7 | ||
| CS 283 | Systems Programming | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| Science elective** | 3.0-4.0 | |
| Writing/Communication elective (See approved course list) | 3.0 | |
| General education elective | 3.0 | |
| Term Credits | 15.0-16.0 | |
| Term 8 | ||
| PHIL 311 | Computer Ethics | 3.0 |
| MATH 410 or 311 | Scientific Data Analysis I Probability and Statistics I | 3.0 |
| Computer science electives** | 6.0 | |
| General education elective | 3.0 | |
| Term Credits | 15.0 | |
| Term 9 | ||
| CS 451 | Software Engineering | 3.0 |
| General education elective | 3.0 | |
| Mathematics elective** | 3.0-4.0 | |
| Free elective | 3.0 | |
| Computer Science elective** | 3.0 | |
| Term Credits | 15.0-16.0 | |
| Term 10 | ||
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| Computer science electives ** | 6.0 | |
| General education elective | 3.0 | |
| Free elective | 3.0 | |
| Term Credits | 15.0 | |
| Term 11 | ||
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| Computer science electives** | 6.0 | |
| General education elective | 3.0 | |
| Term Credits | 12.0 | |
| Term 12 | ||
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| Free elective | 3.5 | |
| Writing/Communication elective (See approved course list) | 3.0 | |
| Computer Science elective** | 3.0 | |
| Term Credits | 12.5 | |
| Total Credit: 187.0-189.0 | ||
| * | If CS 175 taken term 2. |
| ** | See degree requirements. |
Degree Requirements
Game Programming and Development Concentration
Concentration Requirements
This concentration provides conceptual understanding of game design and practical experience in the design and the development of games. The courses in this track includes fundamentals of game design and development, large-scale game development, and special topics in educational and experimental game design. Students in the Game Programming and Development Concentration do not choose tracks. (Two tracks, plus the additional two CS electives, are already built into the concentration.) At most one course may be counted towards two tracks; note however that an overlapped course only counts as one CS elective.
Note: Overview of Computer Gaming is a prerequisite for this track. Students pursuing this track must take GMAP 260 & CS 345 in the Fall/Winter or Spring/Summer of the Junior year at the latest so that you can start your electives in your senior year. GMAP 260 will only count as a free elective.
| General Education Requirements | ||
| COM 230 | Techniques of Speaking | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| ENGL 102 | Persuasive Writing and Reading | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| PHIL 311 | Computer Ethics | 3.0 |
| PSY 101 | General Psychology I | 3.0 |
| UNIV E101 | The Drexel Experience | 2.0 |
| Business elective | 4.0 | |
| Free electives | 9.0 | |
| Freshman Design Requirements | ||
| ENGR 101 | Engineering Design Laboratory I | 2.0 |
| ENGR 102 | Engineering Design Laboratory II | 2.0 |
| ENGR 103 | Engineering Design Laboratory III | 2.0 |
| Mathematics Requirements | ||
| CS 121 | Computation Laboratory I | 1.0 |
| CS 122 | Computation Laboratory II | 1.0 |
| CS 123 | Computation Laboratory III | 1.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| MATH 121 | Calculus I | 4.0 |
| MATH 122 | Calculus II | 4.0 |
| MATH 123 | Calculus III | 4.0 |
| MATH 201 | Linear Algebra * | 4.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| MATH 311 | Probability and Statistics I | 4.0 |
| or MATH 410 | Scientific Data Analysis I | |
| Physics Requirements | ||
| PHYS 101 | Fundamentals of Physics I | 4.0 |
| PHYS 102 | Fundamentals of Physics II | 4.0 |
| PHYS 201 | Fundamentals of Physics III | 4.0 |
| Additional Mathematics and Science Requirements ** | 16.0 | |
Mathematics elective | ||
Mathematics and/or science electives | ||
| Computer Science Requirements | ||
| CS 164 | Introduction to Computer Science | 3.0 |
| CS 171 | Computer Programming I | 3.0 |
| CS 172 | Computer Programming II | 3.0 |
| CS 260 | Data Structures | 3.0 |
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 283 | Systems Programming | 3.0 |
| CS 350 [WI] | Software Design | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| CS 451 | Software Engineering | 3.0 |
| Computer Science Senior Design Requirements | ||
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| Computer Science Gaming Requirements | ||
| CS 345 | Computer Game Design and Development | 3.0 |
| CS 337 | The Psychology of Human-Computer Interaction | 3.0 |
| CS 338 | Graphical User Interfaces | 3.0 |
| CS 430 | Computer Graphics | 3.0 |
| or CS 380 | Artificial Intelligence | |
| CS 347 | Experimental Game Development | 3.0 |
| CS 348 | Serious Game Development | 3.0 |
| GMAP 377 | Game Development: Workshop I | 3.0 |
| GMAP 378 | Game Development: Workshop II | 3.0 |
| Digital Media Requirements | ||
| ANIM 141 | Computer Graphic Imagery | 3.0 |
| ANIM 211 | Animation I | 3.0 |
| ANIM 212 | Animation II | 3.0 |
| DIGM 100 | Digital Design Tools | 3.0 |
| DIGM 110 | Digital Spatial Visualization | 3.0 |
| DIGM 252 | Multimedia Timeline Design | 3.0 |
| GMAP 260 | Overview of Computer Gaming | 3.0 |
| SCRP 270 [WI] | Screenwriting I | 3.0 |
| VSST 110 | Introductory Drawing | 3.0 |
| Total Credits | 187.0 | |
| * | View the Computer Science Department's website for a list of approved options for the writing and communication electives. |
| ** | One course must be a mathematics elective. Mathematics elective options include: MATH 200 Multivariate Calculus; MATH 210 Differential Equations; ENGR 232 Dynamic Engineering Systems; or any 300-400 level MATH course. |
Writing-Intensive Course Requirements
In order to graduate, all students must pass three writing-intensive courses after their freshman year. Two writing-intensive courses must be in a student's major. The third can be in any discipline. Students are advised to take one writing-intensive class each year, beginning with the sophomore year, and to avoid “clustering” these courses near the end of their matriculation. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
A "WI" next to a course in this catalog may indicate that this course can fulfill a writing-intensive requirement. For the most up-to-date list of writing-intensive courses being offered, students should check the Writing Intensive Course List at the University Writing Center. Students scheduling their courses can also conduct a search for courses with the attribute "WI" to bring up a list of all writing-intensive courses available that term. Transfer students need to meet with an academic advisor to review the number of writing-intensive courses required to graduate.
Sample Plan of Study (BS)
5 YR 5 YR UG Co-op Concentration /Game Programming & Development
| Term 1 | Credits | |
|---|---|---|
| COOP 101 | Career Management and Professional Development | 0.0 |
| CS 121 | Computation Laboratory I | 1.0 |
| CS 164 | Introduction to Computer Science | 3.0 |
| ENGL 101 | Expository Writing and Reading | 3.0 |
| ENGR 101 | Engineering Design Laboratory I | 2.0 |
| MATH 121 | Calculus I | 4.0 |
| PSY 101 | General Psychology I | 3.0 |
| UNIV E101 | The Drexel Experience | 1.0 |
| Term Credits | 17.0 | |
| Term 2 | ||
| CS 122 | Computation Laboratory II | 1.0 |
| CS 171 | Computer Programming I | 3.0 |
| ENGL 102 | Persuasive Writing and Reading | 3.0 |
| ENGR 102 | Engineering Design Laboratory II | 2.0 |
| MATH 122 | Calculus II | 4.0 |
| UNIV E101 | The Drexel Experience | 1.0 |
| PHYS 101 | Fundamentals of Physics I | 4.0 |
| Term Credits | 18.0 | |
| Term 3 | ||
| CS 123 | Computation Laboratory III | 1.0 |
| CS 172 | Computer Programming II | 3.0 |
| ENGL 103 | Analytical Writing and Reading | 3.0 |
| ENGR 103 | Engineering Design Laboratory III | 2.0 |
| MATH 123 | Calculus III | 4.0 |
| PHYS 102 | Fundamentals of Physics II | 4.0 |
| UNIV 101 | The Drexel Experience | 0.5 |
| Term Credits | 17.5 | |
| Term 4 | ||
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| DIGM 100 | Digital Design Tools | 3.0 |
| MATH 201 | Linear Algebra | 4.0 |
| PHYS 201 | Fundamentals of Physics III | 4.0 |
| Term Credits | 17.0 | |
| Term 5 | ||
| CS 260 | Data Structures | 3.0 |
| DIGM 110 | Digital Spatial Visualization | 3.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| VSST 110 | Introductory Drawing | 3.0 |
| Business elective | 4.0 | |
| Term Credits | 16.0 | |
| Term 6 | ||
| ANIM 141 | Computer Graphic Imagery | 3.0 |
| COM 230 | Techniques of Speaking | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 350 [WI] | Software Design | 3.0 |
| GMAP 260 | Overview of Computer Gaming | 3.0 |
| Term Credits | 16.0 | |
| Term 7 | ||
| CS 283 | Systems Programming | 3.0 |
| CS 345 | Computer Game Design and Development | 3.0 |
| CS 360 | Programming Language Concepts | 3.0 |
| SCRP 270 [WI] | Screenwriting I | 3.0 |
| Math elective* | 3.0-4.0 | |
| Term Credits | 15.0-16.0 | |
| Term 8 | ||
| ANIM 211 | Animation I | 3.0 |
| CS 337 | The Psychology of Human-Computer Interaction | 3.0 |
| DIGM 252 | Multimedia Timeline Design | 3.0 |
| MATH 410 | Scientific Data Analysis I | 3.0 |
| PHIL 311 | Computer Ethics | 3.0 |
| Term Credits | 15.0 | |
| Term 9 | ||
| ANIM 212 | Animation II | 3.0 |
| CS 338 | Graphical User Interfaces | 3.0 |
| CS 347 | Experimental Game Development | 3.0 |
| CS 451 | Software Engineering | 3.0 |
| Science elective* | 3.0-4.0 | |
| Term Credits | 15.0-16.0 | |
| Term 10 | ||
| CS 430 | Computer Graphics | 3.0 |
| CS 491 [WI] | Software Engineering Workshop | 3.0 |
| GMAP 377 | Game Development: Workshop I | 3.0 |
| Science elective* | 3.0-4.0 | |
| Free elective | 3.0 | |
| Term Credits | 15.0-16.0 | |
| Term 11 | ||
| CS 492 [WI] | Software Engineering Workshop II | 3.0 |
| GMAP 378 | Game Development: Workshop II | 3.0 |
| Science elective* | 3.0-4.0 | |
| Free elective | 3.0 | |
| Term Credits | 12.0-13.0 | |
| Term 12 | ||
| CS 348 | Serious Game Development | 3.0 |
| CS 493 [WI] | Software Engineering Workshop III | 3.0 |
| Free electives | 4.5 | |
| Science elective* | 3.0-4.0 | |
| Term Credits | 13.5-14.5 | |
| Total Credit: 187.0-192.0 | ||
| * | See degree requirements. |
Co-op/Career Opportunities
The demand for computing skills is tremendous and growing, with highly paid jobs. Most professionals in the field focus on the design and development of software and software-based applications.Typical jobs include web designer,multimedia or software developer, software engineer, programmer, systems analyst or consultant, manager of technical staff, client-server architect, network designer, and database specialist. Most positions require at least a bachelor’s degree. Relevant work experience, such as that provided by co-operative education, is also very important, as cited by the Occupational Outlook Handbook published by the US Bureau of Labor Statistics.
Co-Op Experiences
The following quotes were taken from recent student reports on their co-op experiences:
Co-op programmer/analyst, petroleum products manufacturer: “Member of a team responsible for implementation of upgrade to critical mainframe computer system. Prepared functional specs, coded, and tested new online and batch processing programs . . .Modified C programs to conform to new business requirements and government mandates. . . .Challenging environment, great variety of technologies to work with. ”
Co-op programmer, U.S. government agency: “Programmed on distributed systems software in C on Sun SPARC Stations. Wrote a parser for HTML. Assisted in the administration of the local area network. Wrote several scripts, including one to automate the cleaning of tape backup drives. ”
Technical assistant, pharmaceuticals manufacturer: “Provided customized desktop and mobile computer solutions for senior executives. Installed and tested telecommunications solutions. Configured and installed over 100 Compaq PC workstations. Provided full workstation support to over 800 corporate users. ”
Visit the Drexel Steinbright Career Development Center page for more detailed information on co-op and post-graduate opportunities.
Dual/Accelerated Degree
Bachelor’s/Master’s Accelerated Degree in Computer Science
The guidelines for the application to the Computer Science Bachelor's/Master's Accelerated Degree Program are as follows:
University regulations require application after the completion of 90 credits but before the completion of 120 credits.
Applicants must have completed the following core Computer Science courses with a minimum GPA of 3.50:
| CS 171 | Computer Programming I * | 3.0 |
| CS 172 | Computer Programming II * | 3.0 |
| CS 260 | Data Structures | 3.0 |
| CS 265 | Advanced Programming Tools and Techniques (Formerly CS 390 UNIX and Advanced Programming) | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| MATH 221 | Discrete Mathematics | 3.0 |
| ECE 200 | Digital Logic Design | 3.0 |
| CS 281 | Systems Architecture | 4.0 |
| CS 350 [WI] | Software Design (Formerly Oriented Programming) | 3.0 |
| CS 360 | Programming Language Concepts | 3.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 Credits | 34.0 | |
| * | Or CS 175 (Programming I - II) |
Applicants must have an overall cumulative Grade Point Average of 3.25 or higher. Letters of recommendation from two Computer Science faculty are required. Students must submit a plan of study. Consult the Graduate Advisor and course schedules for guidance.
Acceptance to the program will be decided by the graduate admissions committee with consultation from the undergraduate curriculum committee, and will be based on a combination of the student's GPA and letters of recommendation. Acceptance may be denied if the plan of study is not feasible.
For more information, contact the Department of Computer Science.
Minor in Computer Science Minor
The computer science minor provides students with a breadth of knowledge in areas which form the foundation of computer science. The student adds some depth by selecting courses from a list of advanced computer science courses.
Mathematics Prerequisites
One of the following two-term mathematics sequences must be completed before entering the program:
MATH 101 Introduction to Analysis and MATH 102 Instruction to Analysis II
or
MATH 121 Calculus I and MATH 122 Calculus II
Required Courses
Students must complete at least 25.0 credits from courses listed below, subject to the following restrictions:
- The requirements of each category (Computer Programming, Theoretical Foundations, Computer Systems, and Advanced Electives) must be fulfilled
- Not more than 9 credit hours may overlap with those required for the student's academic major.
- All courses listed as required must be completed
- Programming courses bypassed through advanced placement do not count toward the 25 credit requirement.
- Remaining credits are to be earned from the list of elective courses.
| Computer Programming | ||
| Select one of the following sequences: | 6.0-15.0 | |
| Sequence I | ||
| Computer Programming I | ||
| Computer Programming II | ||
| Sequence II | ||
| Computer Programming A | ||
| Computer Programming B | ||
| Computer Programming C | ||
| Computer Programming II | ||
| Sequence III | ||
| Foundations of Software Engineering I | ||
| Foundations of Software Engineering II | ||
| Foundations of Software Engineering III | ||
| Sequence IV | ||
| Programming for Engineers | ||
| Advanced Programming for Engineers | ||
| Required Course | ||
| CS 265 | Advanced Programming Tools and Techniques | 3.0 |
| Theoretical Foundations | ||
| CS 260 | Data Structures | 3.0 |
| CS 270 | Mathematical Foundations of Computer Science | 3.0 |
| Computer Systems | ||
| CS 281 | Systems Architecture | 4.0 |
| Advanced Electives * | ||
| Select two or more of the following: | 6.0-10.0 | |
| Computing Systems and Security | ||
| Systems Architecture II | ||
| Concurrent Programming | ||
| System Administration | ||
| Operating Systems | ||
| Database Systems | ||
| Computer Networks: Theory, Applications and Programming | ||
| Computer and Network Security | ||
| Programming Languages and Compilers | ||
| Programming Language Concepts | ||
| Theory of Computation | ||
| Compiler Workshop I | ||
| Compiler Workshop II | ||
| Human-Computer Interaction | ||
| Graphical User Interfaces | ||
| Computer Graphics | ||
| Artificial Intelligence | ||
| Artificial Intelligence | ||
| Advanced Artificial Intelligence | ||
| Special Topics in Artificial Intelligence | ||
| Numeric and Symbolic Computation | ||
| Applied Symbolic Computation | ||
| Numerical Analysis I | ||
| Algorithmic Number Theory and Cryptography | ||
| Algorithms Theory | ||
| Theory of Computation | ||
| Data Structures and Algorithms I | ||
| Data Structures and Algorithms II | ||
| Software Methodology (not available to Software Engineering Students) | ||
| Software Design | ||
| Software Engineering | ||
| Total Credits | 25.0-38.0 | |
| * | Other courses may be approved by the Department for this purpose; contact the Computer Science Undergraduate Advisor (advisor@cs.drexel.edu). |
Courses
CS 121 Computation Laboratory I 1.0 Credit
Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the differential calculus. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.
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.
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.
Repeat Status: Not repeatable for credit
Prerequisites: MATH 121 [Min Grade: D], MATH 122 [Min Grade: D] (Can be taken Concurrently)CS 122 [Min Grade: D]
CS 130 Programming Concepts with 3D Animation 3.0 Credits
Introduction to elementary programming concepts within a 3D animation learning environment. Programming concepts include: planning tools (storyboards, pseudocode), control structures, expressions, conditionals, repetition, functions, parameter passing, events and event handlers, classes, objects, methods, inheritance. Stresses good programming style, documentation, debugging, and testing.
Repeat Status: Not repeatable for credit
CS 131 Computer Programming A 3.0 Credits
Introduction to structured computer programming in language of instruction (e.g. C++). Topics include: variables, input and output, expressions, assignment statements, conditionals and branching, files, repetition, functions and parameter passing, one-dimensional and two-dimensional arrays, and elementary class concepts. Stresses good programming style, documentation, debugging, and testing.
Repeat Status: Not repeatable for credit
CS 132 Computer Programming B 3.0 Credits
Introduction to structured computer programming in the language of instruction (e.g. C++). Topics include: random numbers, recursion, vectors, searching and sorting, classes, information hiding principles. Stresses good programming style, documentation, debugging, and testing.
Repeat Status: Not repeatable for credit
Prerequisites: CS 131 [Min Grade: D] or CS 171 [Min Grade: D]
CS 133 Computer Programming C 3.0 Credits
Advanced principles of computer programming in the language of instruction (e.g. C++). Classes, inheritance, information hiding principles, recursion, quicksort, multidimensional arrays, pointers, and dynamic memory. Stresses good programming style, documentation, debugging, and testing.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 132 [Min Grade: D]
CS 161 Introduction to Computing 3.0 Credits
Introduction to the computer as a tool for productivity and communications. Provides fluency in the use of industry-standard software for professional communications and presentations, data analysis, and telecommunication. Introduce automation and programming to enhance the effective use of computers and computer applications.
Repeat Status: Not repeatable for credit
CS 164 Introduction to Computer Science 3.0 Credits
An introduction to the field of computer science. Exposure to core areas (selected from algorithms, artificial intelligence, computer architecture, databases, graphics, human-computer interaction, programming languages, scientific computation, software engineering) while introducing and reinforcing the importance of programming.
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if major is CS or major is MATH and classification is Freshman.
CS 171 Computer Programming I 3.0 Credits
Covers fundamentals of structured computer programming in the language of instruction (e.g., C++): variables, input and output, expressions, assignment statements, conditionals and branching, subprograms, parameter passing, repetition, arrays, top-down design, testing, and debugging.
Repeat Status: Not repeatable for credit
CS 172 Computer Programming II 3.0 Credits
Covers object-oriented design, inheritance hierarchies, information hiding principles, string processing, recursion, good programming style, documentation, debugging, and testing.
Repeat Status: Not repeatable for credit
Prerequisites: CS 171 [Min Grade: C] or CS 132 [Min Grade: C]
CS 175 Computer Programming I-II 3.0 Credits
Advanced programming in language of instruction at an accelerated pace: object-oriented design, inheritance hierarchies, information hiding principles, recursion, quick sort, multidimensional arrays, classes, pointers, dynamic memory, good programming style, documentation, debugging, and testing.
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.
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.
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.
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.
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.
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.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 172 [Min Grade: D] or CS 265 [Min Grade: D] or SE 103 [Min Grade: D]
CS 280 Special Topics in Computer Science 12.0 Credits
Covers topics in modern computer science. Different topics may be considered in different quarters.
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.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: (ECE 200 [Min Grade: D] or CS 270 [Min Grade: D]) and (CS 172 [Min Grade: D] or SE 103 [Min Grade: D])
CS 282 Systems Architecture II 4.0 Credits
Covers computer system operations, assembly language programming techniques, operating system interfacing, and organization of assemblers and loaders.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 281 [Min Grade: D]
CS 283 Systems Programming 3.0 Credits
This course introduces computer systems, including interaction of hardware and software through the operating system, from the programmer's perspective. Three fundamental abstractions are emphasized: processes, virtual memory, and files. These abstractions provide programmers a common interface to a wide variety of hardware devices. Topics covered include linking, system level I/O, concurrent programming, and network programming.
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.
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.
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.
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.
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.
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.
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.
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.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 260 [Min Grade: D] and CS 265 [Min Grade: D]
CS 360 Programming Language Concepts 3.0 Credits
Introduces the design and implementation of modern programming languages: formal theory underlying language implementation; concerns in naming, binding, storage allocation and typing; semantics of expressions and operators, control flow, and subprograms; procedural and data abstraction; functional, logic, and object-oriented languages. Students will construct an interpreter for a nontrivial language.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D]
CS 361 Concurrent Programming 3.0 Credits
Covers programming of concurrent, cooperating sequential processes. Studies race conditions, critical sections, mutual exclusion, process synchronization, semaphores, monitors, message passing, the rendezvous, deadlock, and starvation.
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.
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.
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.
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D]
CS 430 Computer Graphics 3.0 Credits
The course presents the fundamental geometric representations and drawing algorithms of computer graphics through lectures and programming assignments. The representations include lines, curves, splines, polygons, meshes, parametric surfaces and solids. The algorithms include line drawing, curve and surface evaluation, polygon filling, clipping, 3D-to-2D projection and hidden surface removal.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Repeat Status: Not repeatable for credit
Prerequisites: CS 472 [Min Grade: D] or CS 283 [Min Grade: D]
CS 476 High Performance Computing 3.0 Credits
This course is an introduction to high performance computing, including concepts and applications. Course contents will include discussions of different types of high performance computer architectures (multi-core/multi-threaded processors, parallel computers, etc), the design, implementation, optimization and analysis of efficient algorithms for uni-processors, multi-threaded processors, and parallel computers, and high performance programming.
Repeat Status: Not repeatable for credit
Prerequisites: (CS 282 [Min Grade: D] and CS 283 [Min Grade: D]) or (ECEC 353 [Min Grade: D] and ECEC 355 [Min Grade: D])
CS 480 Special Topics in Computer Science 12.0 Credits
Covers topics in computer science of interest to students or faculty. Different topics may be considered during different quarters.
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.
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.
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.
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.
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.
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.
Repeat Status: Can be repeated multiple times for credit
Restrictions: Cannot enroll if classification is Freshman






