"# computing-research-project" Cal Poly Computing: A Look and Analysis into the Four Computing Majors
By: Josiah Pang | February 26, 2018
Overview A trend exists within the computing department at California Polytechnic State University, San Luis Obispo (Cal Poly). For the purposes of this study, the Cal Poly “computing department” consists of the following four majors: Electrical Engineering (EE), Computer Engineering (CPE), Computer Science (CS), and Software Engineering (SE). A growing number of students within these four majors switch between them before they graduate. Many students end up choosing one of these majors in high school without fully understanding the differences between them. Through a combination of primary sources like statistical data from the computing department as well as interviews, and secondary sources like online research, this study aims to analyze the four computing majors in order to gain a better understanding of each. Additionally, this study aims to highlight the common motivations students have to change majors and uncover underlying issues within the programs.
Background As a computing student who has faced these same concerns, I chose to study the computing majors at Cal Poly to further my understanding of what makes them different from each other. In doing so, I will highlight deeper issues within the majors and their associated curriculum which has caused what seems to be a trend of switching “down the pipeline.” I am defining the Computing Pipeline as the progression of more hardware-based majors to more software-based ones. A visualization of this progression is shown in Figure 1 below. In the context of the Cal Poly computing department, that means EE to CPE to CS and/or SE. I am choosing to include Computer Science and Software Engineering on the same level of the pipeline because they are both software focused, with minimal differences that are discussed later on. Finally, I look at these majors within a larger context to see if other factors have contributed to this pattern, such as industry and future professional opportunities. This study is targeted for a primary audience of students, whether current or prospective. Additionally, the secondary audience consists of Cal Poly and professors who are interested in student feedback regarding the programs.
Figure 1: The Computing Pipeline
Context Like many others, I applied to Cal Poly as a high school senior into Computer Engineering because it had the word “computer” and “engineering,” two things I am interested in. With no background in either and a desire to learn about both, I decided the mix of hardware and software would be the best place to start. I spent my first year at Cal Poly learning about the major and what I could do with it. From the start, the software side of my major captivated me and I found myself growing more and more passionate about programming and computer science as a whole. Although Computer Engineering is a blend of electrical engineering and computer science, the first year is largely spent on software. By the end of my first year, I knew I loved software and appreciated hardware for what it could do. However, as I began my search for a summer internship during my second year of Computer Engineering, I came to a realization that my passions truly stayed in Computer Science. Having taken a few Electrical Engineering courses, I found myself much less engaged with the content and saw no direct application of the material I was learning. With that mindset, I knew I would never seek out an EE job or internship. On top of that, CPE-specific jobs and internships were much less common as well, so as a result I ended up looking for software engineering roles. At a certain point, I decided staying in Computer Engineering no longer made sense for the career that I sought. After careful consideration and thought, along with extensive research and insights from peers and mentors, I made the decision to switch my major Computer Science.
Unlike some other students who found zero interest in hardware, I still see its value, but the curriculum for the Computer Engineering program just did not fulfill what I was looking for. In the end, I am grateful to have stayed with the program for a year and a half. I gained a good understanding of computing and had the opportunity to learn about both sides. Some of my favorite courses I have taken would not have been available to me if I entered as a Computer Science student. My story is not unique, and through this whole journey I began to question why this trend existed — Why do so many students seemingly switch, and why is it usually “down the pipeline?”
The Four Computing Majors We need to learn more about the four computing majors offered at Cal Poly before we continue. I asked Dr. John Oliver, the current director of the Computer Engineering program at Cal Poly, to describe each program and its goals. In addition, he recommended a page written by Professor David Janzen, a professor at Cal Poly who is largely in charge of the Software Engineering Department. This page outlines some differentiating characteristics between the software-based majors. A summary of what they said and wrote of each major is to follow.
Electrical Engineering seems to be the outlier of the four majors, something mentioned by Dr. Oliver. EE overlaps with CPE in training students to be digital or embedded systems designers, although they are not trained as well in the software. They usually have a better understanding of the electronics in those systems. On a broader scale, electrical engineering students learn about radio frequency transmission, signal processing, and power generation, topics not directly related to computing.
The Computer Science Department aims to develop students who can design efficient software as well its structures and theory of software development. Although the curriculum is programming centric, it does not merely create coders, but those interested in the science of developing software.
Software Engineering is about building software that meets specifications with less interest in the theory behind it. As Janzen says, many of the courses will be the same as Computer Science, with the differences being pretty minimal between them, the main one being a different approach to software development. As a result, Software Engineering students spend more time learning about the process and less about the theory. Because SE is so similar to CS, I have included them in the same level of the Computing Pipeline model.
As a hybrid between Electrical Engineering and Computer Science, the Computer Engineering Department aims to train students to be software developers with a focus on software that works in conjunction with hardware. This results in a large overlap of the CPE curriculum with EE and CS. Computer Engineering allows students to get a taste of both disciplines and either choose to focus on one or find a place in the middle ground.
One big difference between Computer Science and Computer Engineering can be traced back to its history. The former grew out of many Math departments, while the latter grew out of Electrical Engineering. As a result, CS is generally more theoretical, while CPE places more emphasis on practical applications.