Majors complete a core of basic computer science courses that includes the study of programming and algorithms, data structures, database concepts, computer architecture and organization, programming languages, compilers, operating systems, and software engineering. Important courses in closely related fields, e.g., discrete mathematics, digital logic design, scientific computation, and probability and statistics are also taken. Computer Science students are required to study all aspects of computing, including hardware, software, and theory.
The program begins the first year developing a strong foundation in programming, mathematics, and communication. Following this is another year of study in data structures and object oriented programming along with hardware-based courses that leaves the student with a firm grasp of the interaction between hardware and software. The junior and senior years include courses that cover the breadth and depth of the field. Students will pick a specialization and take technical electives in their chosen area. The capstone of the program is Senior Design I and II, a two-semester sequence taken in the senior year that places every student on a team that designs, builds, tests, and demonstrates a significant computer science/software engineering project. The projects are often in collaboration with SDSU researchers or industry and provide students’ valuable “real world” team design experience.