CS48—Computer Science Project

A course taught in the Dept. of Computer Science at UC Santa Barbara

The official catalog course description is:

Computer Science Project

Number: CMPSC 48
Level: Undergraduate
Units: 4

Prerequisite: Computer Science 32 with a grade of C or better. Team-based project development. Topics include software engineering and professional development practices, interface design, advanced library support; techniques for team-oriented design and development, testing and test-driven development, and software reliability and robustness. Students present and demonstrate final projects.

This site is maintained in this github repo: https://github.com/ucsb-cs48/ucsb-cs48.github.io

  • Bower—A general Package Manger for web app components
  • Browserify—Package up npm modules into a js file you can include on client side web page
  • Heroku—Deploying next.js apps on Heroku
  • JavaScript—Getting Started with Learning JavaScript
  • JavaScript: this—The this keyword in JavaScript
  • JQuery—A library that makes JavaScript easier to use.
  • MacOS—MacOS specific advice for working with Next.js, Node, React
  • Next.js—A framework based on node and React
  • Node—Making web apps using server-side JavaScript using node.js
  • Node: Linux—Installing and working with Node, npm, nvm on Linux
  • Node: MacOS—Installing and working with Node, npm, nvm on MacOS
  • Node: Windows—Installing and working with Node, npm, nvm on Windows
  • React—A JavaScript library for building user interfaces
  • React: Storybook—A tool for cataloging, documenting and testing React components
  • Testing—Testing Next.js apps
  • Testing: cypress—End to end testing of Javascript web applications
  • Testing: jest—Simple unit testing of plain old JavaScript functions

Certainly errors in software are more difficult to fix than errors in books. In fact, my main conclusion after spending ten years of my life working on the TEX project is that software is hard. It’s harder than anything else I’ve ever had to do. While I was working on the TEX program, I was unable to do full-time teaching. Although I love teaching, I had to take a year off from it because there was just too much to keep in my head at one time. Writing a book is a little more difficult than writing a technical paper, but writing software is a lot more difficult than writing a book.

Turing Award winner Donald E. Knuth, from All Questions Answered, lecture presented by Donald Knuth on October 5, 2001, at the Technische Universität, München, Germany. Appeared in Notices of the AMS 49:3, pp. 318-324.