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

  • CSV files—reading and writing CSV (Comma Separated Value) files in Python
  • dictionaries—Mappings from keys to values
  • files—reading and writing files in Python
  • Flask: —Python Webapp Framework
  • for loops—for loops in Python, from basic to advanced
  • format—dealing with stuff such as print('a={0:5} b={1:7}'.format(a,b)
  • functional programming—e.g. using iter, list comprehensions, map, filter, etc.
  • json—Access JSON data in Python
  • MacOS—Using Python on MacOS
  • main blocks—All about that crazy looking `if __name__=="__main__":` thing that you see in some Python code
  • OOP: —Object Oriented Programming in Python
  • pytest—Unit Testing with the pytest module
  • Python 2 vs. Python 3—Understanding the difference and why it matters
  • scientific computing—Python tools for science and data analysis
  • Python: selenium—Automating a web browser (for web scraping)
  • Python: unittest—module for test-driven development in Python

  • 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
  • JavaScript—Getting Started with Learning JavaScript
  • JQuery—A library that makes JavaScript easier to use.
  • Node—Making web apps using server-side JavaScript using node.js
  • Node: MacOS—Installing and working with Node, npm, nvm on MacOS