Department Philosophy

Here at EC Berkeley, each department is the domain of one instructor.  This lets each instructor tailor the course offerings to reflect each instructor's true talents.  

I am committed to education of the field of computer science, to the design and implementation of systems which are used to enhance personal and social expressions and needs, and to the socialization of students into the open source community and exposure to its ideals.  I believe that living an open source life leads to the greatest sharing of art, ideas, and implementation, and the advancement of society.

I believe in pedagogy through play.  I'm also a musician, and in music, students want to learn when they are excited about playing.  Joy of playing before Theory.  Understanding music theory opens up new levels of playing possibility, but if you have no joy in playing, you won't play enough to get really good.  In computer science socialism, I explore how to play in a programming environment, and have visual reward before even knowing what we are doing. We then teach theory and fundamentals in the space of play and wonder.

Computers and programming languages allow us to build things we dream up.  With the Open Source revolution, even restrictions such as time and money wane.  Computer Science Socialism, like art, is an endeavor that lets us express our ideas and our needs,  and gives us the tools to create reality. 

Computers have grown in complexity to the point of being tools of art themselves.  Using computers for manipulation of video and audio, we can change our impression of events that happened in time.  But using computers for personal expression, we can create images and moments that have yet to be lived.  

With computer science socialism,  I am excited for a society that creates and shares its creations.  We can create graphic arts, movies, music, poetry, stories, books, lectures, instruction.  And we can share these objects over the network.  We now also have frameworks for sharing our ideas and protecting them in the commons.  Computer Science Socialism is about learning computer techniques that we can use to make art, science, commerce, and social connection, and about putting our work into the public space for display, colaboration, and growth.

Laramie Crocker
Berkeley, CA

What do all the words mean on the department page?

The ideals of the Open Source movement; How to build software to satisfy our own needs while giving back to society.  Also, the idea that the Internet, as a Commons, needs contribution and social care.

Critical Thinking
We don't offer a specific class on critical thinking, but it's a topic that is sorely missing in our schools today, and in society in general, so we approach every pedagogic situation as an oportunity to practice critical thinking and non-linear problem solving.

Computer Science
Programming fundamentals, logic, and languages.


Tackling real-world scientific computing and discussing the tenents of science as a way of looking at the world.

  Computers are capable of being programmed to solve very complicated math problems, and in a sense, computer programs are effectively very complicated math problems themselves, but there is also a bit of simple math thatmust be learned to master programming.

  In other schools, this section is called "Computers and Music," which I find to be a bit dated.  I'm interested in teaching how digital audio workstations can be used to capture and create music.  There are fundamental music ideas that we can master in the digital environment, and there are new kinds of music that are purely possible because of the technology.
ProTools: Composing Flow  
This is a course offering wherein we'll discuss using the ProTools digital audio workstation as a composing tool.

We have several courses in Java, covering local applications and the server-side.  I find Java to be the best language for programming many systems, and I also find it rewarding to teach Java, even as a first language.  I find it simple yet powerful -- it has the ability to express most high and low level programming concepts, while being very accessible.  This makes it the ideal teaching language, in my mind.

Web 2.0   
I love Java for server-side programming, and I've done lots of work server-side and on desktop apps, but for the near-term, many exciting applications will be built with Web 2.0 technology -- browser-based applications, mash-ups, web services.
See also:
  Department Offerings   CSS Home   EC Berkeley Home