Opinion
Computing Profession Letters to the editor

Start CS Students Off with Industry Best Practices

Posted
  1. Introduction
  2. Inspire Ethical Behavior Within the Profession
  3. Footnotes
Letters to the Editor, illustration

Lamenting that CS Students are often not exposed to best practices in the classroom, software engineer Thomas A. Limoncelli offered advice for serving students better in his article "Four Ways to Make CS and IT More Immersive" (Oct. 2017). We agree with that sentiment, as we reported in our Viewpoint "Crossing the Software Education Chasm" (May 2012), describing development of a course very much in line with Limoncelli’s recommendations. We continue to welcome instructors to use our course materials and approach for Engineering Software as a Service, or ESaaS, originally developed at the University of California, Berkeley, as a way to follow Limoncelli’s guidelines:

Use best-of-breed dev/ops tools from the start. In our ESaaS course, students use Git from day one, including (in their open-ended design project) badges for coverage, CodeClimate, and continuous integration.

Homework programs, even Hello World, should generate Web pages, not text. This requires some minimum understanding of SaaS architecture, languages, and moving parts. ESaaS’s week-two assignment requires that students modify and deploy to the public cloud a simple SaaS app built with the Sinatra framework. The goal is to get them "thinking SaaS" early on by addressing several questions: How is state persisted? How does the app interact with the user? How do routes and URIs map to actions the user wants to take? And how can apps be structured as a set of RESTful resources and operations?

Curricula should start with a working system that reflects best practices, not just build from low-level to higher-level abstractions. The same assignment requires that students examine the code of a simple Sinatra app that demonstrates good coding practices, including integration and unit tests—before being introduced to creating or reading code for such tests.

Focus on reading, understanding, and adding value to existing systems, a practice much more common in software engineering than greenfield development. ESaaS includes a two-part homework assignment on enhancing legacy code, but, more valuable for students, an increasing fraction of available team projects for nonprofits undertaken in Berkeley’s version of the course—10 of 11 projects in Summer 2017 and 13 of 20 projects in Fall 2017—are functioning legacy systems in need of additional features. Agile-Ventures, a U.K. nonprofit with which we work closely and whose developer-training programs closely follow the ESaaS pedagogy and methodology, also curates a portfolio of such "legacy systems" to support its mission of training developers to contribute to open-source projects in agile teams, as do several other colleges using our materials.

We applaud Limoncelli for urging CS instructors to more closely track best practices in industry. We invite students and instructors to try our free two-part (soon three-part) MOOC sequence—called Agile Development Using Ruby on Rails—on edX and invite instructors to avail themselves of the wealth of instructor materials available through http://www.saas-book.info/, including auto-graders to relieve them of having to manually grade these realistic assignments.

Armando Fox and David Patterson, Berkeley, CA, and Sam Joseph, Harrow, U.K.

Back to Top

Inspire Ethical Behavior Within the Profession

In his Editor’s Letter "Computing Is a Profession" (Oct. 2017), Editor In Chief Andrew A. Chien said those in computing should welcome, educate, and mentor new generations, not just as programmers but as professionals. We agree. That is why, in 2010, we and 15 other individuals established The Pledge of the Computing Professional (http://computing-professional.org/) to recognize graduates of computing programs as professionals in service to society, as the Order of the Engineer (http://www.order-of-the-engineer.org/) does with graduates of U.S. engineering programs. Today, 38 institutions in the U.S. conduct the Pledge’s rite-of-passage ceremony as part of their graduation activities. Graduates taking the Pledge sign a certificate both publicly and in the presence of their peers and are then presented with a pin to remind them of their commitment to self-accountability through ethical and moral behavior within the profession.

The Pledge has been endorsed by the Order of the Engineer, the ACM Special Interest Group on Computers and Society, and the ACM Committee on Professional Ethics. We would welcome a more comprehensive collaboration with ACM toward our mutual goal of promoting the attributes of deep technical expertise, essential, valued, societal contribution, and the need to adhere to high ethical and technical standards characteristic of the noblest ambitions of the profession.

For more on the Pledge, see http://computing-professional.org/ or contact us directly.

John K. Estell, Ada, OH, and Ken Christensen, Tampa, FL

Back to Top

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More