CS at Pepperdine University:

How I was forced to shutdown my project, NetWave

Micah Benn
7 min readJul 19, 2016

Although I am fortunate enough to attend a respected university in southern California overlooking the Pacific Ocean, I have been unfortunate in having university administration threaten disciplinary actions if I did not shutdown my research project, NetWave.

a view from behind Pepperdine University overlooking the Pacific Ocean in Malibu, California

To understand the current situation, one must also understand the background of the Computer Science program at Pepperdine. You see, we actually do not have a dedicated CS major — rather, what we call CS is actually the contract majors of Computer Science/Math and Computer Science/Philosophy, which encompasses elements of the math and philosophy majors (respectively) to complement what CS courses the university offers.

How does one then find success in the job market, when that individual is up against graduates from universities with full Computer Science programs? One must learn skills not taught in the classroom. Knowing this, I began work on a research project to simulate our senior capstone as a learning measure.

I conceptualized the idea of NetWave (and began a bit of it) while studying abroad in Switzerland, after needing a way to generate a list of courses that would have allowed me to stay abroad another semester while not falling behind in the CS course sequence. Because the CS/Math major is not a dedicated major, certain courses are not offered every year; this means that failing to take certain courses one semester could put one behind two years because he/she would have not yet met its prerequisite(s).

I then took immediate interest in the reasoning behind why certain courses were offered at particular times, and was curious as to how I might create a data mining and machine learning algorithm to aid administration in their efforts at scheduling future courses.

Computer Science answers the question, “What can be automated?”

Part I: Contact

Our course management software, WaveNet, does not offer an official API that would allow me to quickly query courses and in turn generate a collection of courses to begin playing with data mining. Thus, I decided to contact the department responsible for WaveNet. Before doing so, I began work on a WaveNet for Mac client, using what API I had gathered from reverse engineering the web client, in an effort to establish my credibility as a legitimate student who was serious about a formal request to access a database dump.

WaveNet for Mac

On January 24, 2016, I contacted upper management in the department and requested a meeting to demo it to a portion of the team. Although the meeting went very well, I was denied access to a database dump of courses over the concerns of who would maintain it after I graduate. I brought up the possibility of my might having to resort to generating a course database on my own––the Head (who’s name I’ll not mention for legal reasons) seemingly suggested, in a joking way, I include a four-second delay as to not overload the university servers.

I thus began expanding my collection of WaveNet APIs, and eventually created a script that looped through their database to generate my own situated in MongoDB.

Part II: Aiming for Production

When I returned from Switzerland to the US in December, I began to conceptualize production plans for the aforementioned WaveNet for Mac. Thus throughout its development from here on, there was a side to the research project that was aimed at being released to the university student body. The reason? Among other things such as improving student life, I needed more data to work with––anonymous student data collected with his/her explicit consent; I am simply following the models of Google, Facebook, and Apple — three tech giants with user data used to improve user experience.

In order to reach more students, I began work on migrating the Mac client into a web application written in Python; I learned Python, and gained experience with both Amazon AWS and encryption over winter break to accomplish this. At this time, I had already reverse engineered a good amount of the WaveNet API to create a practical, third-party implementation of the service that was ready for a weekend beta. Because I now had my own course database as part of the project, I could offer course searching at speeds 92% faster than searching directly through WaveNet.

On March 4, thinking it was ready for a controlled beta release and because I needed to test how well my servers handled the additions I added over Spring Break, I posted about it in the Pepperdine Class of 2018 Facebook group. It was well-received, and on March 8, I figured I should present it to our President (a very down-to-earth individual, different from the typical university president, who is often found on main campus talking with students). I emailed him about it, who, with 100% positive intentions, forwarded it to others he thought might be interested in it (side note: in no way do I consider him responsible for the shutdown of NetWave; everyone knows him to be on students’ sides).

Part III: Sparking Internal Discussion and Shutdown

It’s beginning to sound more like a product now, right? Let that not be the case, for I feel as if Pepperdine also began to overlook the research aspect as well.

The next day, on March 9, I was contacted via iMessage by the aforementioned Head — he requested a meeting with me in our cafe. Concerns were brought to his attention by those CC’d in the aforementioned email, and he requested I stop production plans. He cited concerns over system stability, security, and user privacy.

System stability: According to him, NetWave had the capacity to overload university servers and disrupt all operations that used PeopleSoft (which pretty much is all operations). I believe that this reasoning is BS. How in the world can NetWave, which sends controlled and successive requests to Pepperdine’s servers to loop through their database, actually take down PeopleSoft? Do they not have measures in place to throttle repeated requests made in short periods of time, as to thwart DDoS attacks? All universities should have this protective measure.

Security and User Privacy: The team over at his department were concerned about my handling student data. Quite frankly, they do not trust a good-standing CS student to handle data that a student has granted NetWave access to. Ports are whitelisted, the database uses at-rest encryption, I encrypt user credentials with AES-256 bit encryption, web traffic is served over HTTPS, and a production environment would have used self-encrypting drives. Does Pepperdine not have confidence in the material they’re teaching their CS students? It is no different than if a user was accessing Twitter via a third-party service. Twitter is a service just as much as WaveNet is a service.

I complied that day, yet was fired later on.

Why? On March 14, I used the software to auto-register myself for courses and communicated with him that I had circumvented his department’s efforts at blocking the IP addresses of my servers.

a demo of automatic course registration

Later in the day, after a receiving no responses to my communications with him, he let me know that I had been fired from my student job at the IT department. It wasn’t until I was later discussing this with my CS professor that I found out he meant I completely abandon the project, as opposed to my interpretation that he meant abandoning production plans. Because abandoning the project would have meant hours/days/weeks/months of coding wasted, I knew for a fact that this was not what he had communicated in our meeting.

Part IV: Product is Gone, Followed by the Research Effort

In a meeting with the Head, I had asked what would happen should I continue the project as a student, rather than as a student employee, if I were to be fired from the IT department. I was told that I could be brought before the academic administration, which implies that further failing to comply with their wishes could eventually warrant probation or expulsion. Because I did not want to chance this, I put everything on the shelf and open-sourced the portion of NetWave that communicated with WaveNet. With no way to get live data to work with, and its future prospect of being integrated into the community, I could no longer continue the research project.

successful third-party web implementation of WaveNet

On April 8, I was contacted yet again by the Head and asked to pull the NetWave source code from GitHub or face confrontation with the Office of Community Standards that is responsible for hearing the cases of Pepperdine University students alleged to have violated the Code of Conduct. However, our Student Handbook, where the Code of Conduct is outlined, does not mention that what I did with NetWave was wrong.

WaveNet has no Terms of Use; therefore, I was well within my rights to build this product.

It’s over until I become a donor and help grow CS here.

Did I blur the lines between a product and a research project? No. All research projects should help others — that was what I was attempting to do here with the entirety of NetWave. Because the code will be gone from GitHub, and I was given directions to not share the code with anyone, it means that future and current Computer Science students at Pepperdine would be unable to use it to expand the capabilities of WaveNet for both academic and student-life purposes.

I am often asked if the on-campus employment with the IT department, meant to help grow the major, is sufficient to learn things not taught inside the classroom. It’s not. It does not provide an environment suitable to prepare one to work in Silicon Valley, for example, because there are no opportunities to experiment via side projects with the technologies you help develop without getting fired and reprimanded.

AirBnb has internal hackathons. Twitter does. And Facebook does too.

President Benton, please protect student research at Pepperdine University. Pepperdine cannot depend on its liberal arts prestige forever; it will eventually have to build its science programs to stay relevant.

Micah Benn

--

--