2012 Employee-Alumni Report

As part of the department's assessment process, regular surveys of employers and recent alums are conducted. The surveys solicit responses on how the department is meeting its objectives and outcomes.

Employer Survey

Alumni Survey

Spring 2012 Results

Here is the data gathered from the surveys:

Employer Survey Report

Alumni Survey Report

The real gold is in the comments in the alumni report. They contain many useful compliments, criticisms, and suggestions. All faculty members should read them. They will be summarized and analyzed in the last section of this report.

Achieving Outcomes

Both surveys ask respondents to rate how well the department does in providing graduates with the 11 skills mentioned in the BSCS outcomes. The choices are very well, well, and not well enough. The following table indicates the percentages of respondents who said the department was doing well or very well:

outcome

% employers

% alumni

a

90

86

b

83

85

c

83

85

d

90

84

e

82

81

f

72

77

g

67

65

h

83

70

i

90

86

j

59

79

k

72

84

The department considers a rating of 70% or higher to be an indication that the outcome is being achieved. Therefore, according to the data, the department is achieving all of its outcomes except for g and j:

(g) An ability to analyze the local and global impact of computing on individuals, organizations, and society

(j) 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

Achieving Objectives

The BSCS program has three objectives:

Three to five years after graduation, successful graduates of the BSCS program will:

   1. Be making progress in their chosen career or advanced educational program.

   2. Be contributing to their chosen profession.

   3. Be growing in their professional abilities through self study and course work.

According to the employer survey:

78% (14 out of 18) of the respondents said that compared to others, CS grads advance at the same pace or faster in their careers (Q1).

53% (8 out of 15) of the respondents said that compared to others, CS grads make the same or more professional contributions (Q2).

70% (14 out of 20) of the respondents said that compared to others, CS grads acquire new skills at the same pace or faster (Q3).

The department considers 70% or higher to be an indication that an objective is being met. Therefore, according to the employer survey objectives 1 and 3 are being met, while objective 2 is not being met.

The alumni survey presents an interesting snapshot of the 87 (out of 579) respondents.

Objective 1: Career Growth

17/85 said they were currently in a graduate program, 6 are in PhD programs. Mysteriously, 39/44 said that they were well or very well prepared for graduate school by the BSCS program.

78/86 said that they were employed and on a career path. From a later question it appears that the 8 who are not on a career path are among the 17 enrolled in graduate school. 61/75 said they were satisfied with their current level of responsibility. 68/79 said that they were well or very well prepared for their careers by the BSCS program.

10/85 said they were self employed. 6/8 said that they were well or very well prepared for business by the BSCS program.

15 reported that they were not on a career path. This is inconsistent with the 78 who said that they were on a career path. Presumably 6 were confused by the question. 8/15 are enrolled in school. 2/15 said they couldn't find work because of lack of skills.

Objective 2: Professional Growth

Impressively, 23/83 said that they have published one or more papers since graduation. 46/81 have attended one or more conferences. 30/81 have given presentations or participated in panel discussions at conferences.

Objective 3: Personal Growth

Unfortunately, a flaw in the survey makes it difficult to determine how well objective 3 is being met. Respondents were asked to describe new skills that they acquired since graduation. The list was impressive, but it was impossible to tell from the report how these acquisitions were distributed among the respondents. It's possible that all of the new skills were acquired by a single over-achiever.

Analysis & Recommendations

There are several problems with the survey that should be fixed before the next survey is done. It might be possible to ask OIS to re-mine the data to get a more accurate picture. Here are a few recommendations to improve the survey:

Recommendation 1. Although the overwhelming majority of respondents were graduates of the BSCS program, a few were MSCS graduates. These should be separated so that we get a better picture of both programs. In the future, the graduate students probably need a different survey because the MSCS objectives are different.

Recommendation 2. Respondents should be given fewer opportunities to give free text responses. In many cases this created confusion and redundancy among the responses. It was hard to tell which responses belonged to which respondents. This was the cause of the inability to draw a conclusion about objective 3 above.

Although most of the statistical data was positive, it is possible to see several weaknesses. Specifically, outcome g:

An ability to analyze the local and global impact of computing on individuals, organizations, and society

And objective 2:

Be contributing to their chosen profession.

Outcome g is enabled by Philosophy 134 and a few GE courses, but not by any CS courses. We need to take a broader view of global impact. People are spending more time in front of their computers and mobile devices, often playing games. People are outsourcing more of their cognitive functions to the cloud. Who among us can still spell, divide, navigate, or read more than a paragraph without following a link to another more interesting page? Are terrorists, criminals, and the government really watching everything we do? What would happen to civilization if the Web got permanently disabled or clogged with spam? Is the Singularity just around the corner? Surely we can spend more time in class talking about this stuff. (I invited Rudy Rucker back to give a talk about the Singularity next semester.)

Professional contributions are defined as contributions made in service of the (computing) profession rather than in the service of the employer or the individual. Such contributions include publishing papers, attending conferences, and joining professional societies.

Recommendation 3. The department could do more to encourage students to join ACM and IEEE. A student chapter of the ACM could be incorporated into the CS Club. The CS Club used to be more involved with coding competitions. This too could be reintroduced. Several alums have reached out to the department and offered to help revitalize the CS Club. The Club sponsor should be involved in the reorganization process.

Comments

The alumni survey asked respondents to comment on how well the BSCS program did to prepare them for (a) graduate work, (b) employment, (c) starting their own businesses. It also asked for general suggestions. The answers were interesting and some were well thought out. CS faculty should read these responses at the bottom of the raw data report.

Preparation for graduate programs

17 respondents said they were in graduate programs. Six are in Ph.D. programs. Here are some of the places where they are studying:

  • MSSE program at SJSU (off-campus)
  • Joint Carnegie Mellon University-University of Pittsburgh Ph.D. Program in Computational Biology
  • PhD program in CS and UC Santa Cruz.
  • Joint PhD at the University of Edinburgh (UK) and Macquarie University (Australia)
  • UC Davis, Graduate Group in Computer Science (PhD program)
  • Ph.D. in Bioinformatics at UCSC
  • MSCS
  • MS in Computing: Graphics and Visualization at University of Utah
  • MSSE at SJSU
  • MSCS program at Washington university in st. Louis
  • MS CS
  • PhD in CS from UCSC
  • MSCS Program st SJSU

Several alumni reported being rejected by Stanford, Berkeley, and Harvard.

How well did we do preparing them for grad school?

There were lots of positive comments, usually mentioning specific teachers. There were a few specific negative comments. The only pattern that emerged was that many students felt that the BS program did a good job teaching practical stuff, but the theoretical stuff was lacking:

  • i guess it varied, i wish they were more strict at the start of CS, some courses seemed easier than others which could be a good or a bad thing, only thing that i really took from CS was my ability to program, rest of the courses are just distant memories
  • I only have one other program to compare to, but it seems that SJSU puts more emphasis on OO principles than UCSC. Here the focus seems to be more on low level languages (e.g. C). Personally I think UCSC is handicapping their students by not emphasizing on good SE practices and OO design.
  • I was prepared for the programming portion, but not the research portion.
  • I believe it would much more helpful if CS and CMPE departments do combine few of their courses so that student can get benifitted. A lot is lacking in CS department as of now.
  • The department was better geared toward industry. I had to pursue leads outside SJSU to find a suitable MS project, which is what eventually led to my PhD program. On the other hand, SJSU made it relatively easy to add external committee members once I found them.
  • While SJSU's CS courses prepared me very well for the practical aspects of some of my courses, I had more difficulty with some of the theoretical aspects than my peers. For example, in the first year of my program we take Carnegie Mellon's very rigorous graduate machine learning course. I did very well on the programming assignments for this course, however the theoretical proofs were completely over my head. I passed the course only conditionally and was put on academic probation. Meanwhile, other students in my program with biology and physics backgrounds were able to pass. On a positive note: I feel like being at SJSU and particularly in the CS Club put me at a great advantage in terms of being up-to-date on computer science culture. After speaking with CS students from other schools I have found that the talks that Dr. Horstmann and other faculty organized with people from IBM, Mozilla Foundation, Sun, GNU, etc, along with the culture of students hacking on software projects through the night in the CS Club made for a really unique experience that few state universities can rival.

Here are a few of my thoughts:

1. We distinguish ourselves from Computer Engineering by emphasizing our focus on algorithms. However, CS155 is almost never taught.

2. CS 154 has become the department's neglected child. Should we pump more love into this course?

3. Should we encourage students to take Math 142?

Preparation for Employment

It's interesting to look over the list of employers and job titles our respondents have: eBay, Apple, IBM, Cisco, and Yahoo! are all on the list multiple times. Lots of our students are doing software development "building stuff."

How well did we do preparing them for employment?

There were a variety of different criticisms. There were a couple of themes that emerged:

1. More projects

2. More real world experience

3. More Unix and scripting

Here's a particularly thoughtful response:

There are fundamentals that apply to any kind of work in CS, and while SJSU touched on some, they neglected others and missed the big picture: 1) Relational databases are a fundamental. There are few jobs where not knowing how and when to apply an SQL database does not benefit you as a programmer or designer. A class in MySQL or PostgreSQL should the first set of introductory programming courses, and then used throughout other courses, especially the deep-dives. 2) C should be the language which datastuctures and algorithms courses are taught, for two reasons: (1) it teaches proper memory management and the sense that there is an art to programming correctly, and (2) C is very unlikely to go out of style--if you know C (up to proper usage of struct's and function pointers) then you are able to implement efficient, fast code wherever the need arises, even if a project is written primarily in Java (C -> JNI) or Python (cpython modules).   3) Higher level languages have their place: business logic and fast development. The latter CS courses should focus on using a language like Python, Ruby, or worst cast, Java, to construct a large, complex program that requires some small portions written in C (JNI, CPython modules, etc) and uses databases to solve some specific problem. Such a class should also focus on re-using opensource libraries and projects to show that a whole world of code exists to solve common problems specific to individual applications among a vast array of applications. This is where higher-level languages become even more powerful: they often have nice mechanisms for obtaining and making available such 3rd party codebases with automated tools like pypi (python). 4) Do not focus on team projects. Your fears were 100% correct: there really is just 4 or 5 people in a class of 40 who do the work, and the rest barely contribute. Your goal is not to sort out a pecking order--it's to prepare ALL of your student body for real work. Focus on individual projects for the first three years and then go bananas on group projects in the senior year. Students who have skills they've come to rely on in the first three years will be more willing and able to help with group projects.   5) The job market requires experience beyond what any school can teach a student. There needs to be more outside of class skill-building opportunities thrust in the faces of CS students than a bulletin board with job postings and a greasy CS club. Build an individual "summer of code" style project for the entire department with real, interesting projects and then make sure every student either attempts to take part or explains why they don't want to. CS is fun, and it's not all about credits when there are interesting problems that are not crazy hard that kids can dig into and walk away with (A) a non-credit-based individual or small-group project for their resume--as a hiring manager i disregard ALL school projects mentioned on resumes, but this is not for credit and should be primarily individual projects, and (B) skills they can rely on when they're faced with something new they've never seen before in the workplace (which will be from the day of the interviews all the way through the first 3-5 years of their careers).

Here's another noteworthy response:

During my academic career in SJSU, 2003~2007, the CS program was mainly centered around software development. There were some courses on other fields of CS (Web Development, Networking, Database Design), but not nearly enough to provide decent knowledge of any of them. Even software development itself was focused too much on OO languages, esp. Java; there was not enough variety of programming languages courses, not to mention that Web Development, which also is a kind of software development, was scarcely represented. Furthermore, the curriculum had a very narrow focus on technicalities of writing the code, without sufficient consideration for elicitation of requirements for that code, project planning, the whole cycle of creation and subsequent improvement of the software product. All those aspects of product life cycle, as well as knowledge of other aspects of infrastructure that the code interacts with are vital for a successful CS professional. I have met too many students over the course of my studies in SJSU who could easily write code in Java but could not configure MySQL server that their code was supposed to interact with. I had to acquire most of that knowledge on the job, and I really wish I had learned as part of the CS program. I sincerely hope that the situation has changed since my graduation.

Here are a few of my thoughts

1. Require an internship

2. Make Linux our default platform

3. Require databases, make 147 an elective

4. Add more individual projects

5. Let students chose projects

6. Achieve better integration with CmpE. More course sharing.

Employer Comments

The survey tried to gauge how well SJSU graduates were doing relative to others with respect to our stated objectives. The responses were generally good. Here are a few employer comments:

. What other qualities should SJSU CS graduates have besides those already mentioned?

  • Integrity , good communication
  • They are motivated but seems to lack the leadership and think outside of the box
  • Better ability to speak English.
  • Graduates should try to do internships over the summer to further gain professional experience.
  • Stronger grounding in computing vocabulary and cross-functional team skills.
  • More hands on experience with their projects, and exposure to Unix, Linux platforms as well. Good trouble shooting and problem solving skills would help