Problem Solving with Computers I
About this course
This site is maintained in this github repo: https://github.com/ucsb-cs16/ucsb-cs16.github.io. If you are a CS department faculty member or TA that should have access to this page, contact Phill Conrad to request permission.
- Catalog Description including pre-requisites
- A more detailed look at course prerequisites including a list of specific skills and knowledge you need before starting the course.
- Older materials from Conrad’s 16wiki site.
- Older materials from Conrad’s personal website
Previous Offerings of CS16
- Problem Solving with C++, 9th Edition—Required C++ textbook
- antipatterns—Things to avoid in your code
- atom—graphical editor available on CSIL, plus Mac, Windows, Linux
- bash—Unix command line shell, and a programming language
- code—Visual Studio Code, a free-open source graphical editor available on CSIL, plus Mac, Windows, Linux
- compilers—programs that translate C++ to machine code (g++, clang)
- C++—The C++ programming language
- C++: data types—int, float, double, etc.
- C++ functions—C++ function prototypes
- C++ pointers, initialization—What is the initial value of a pointer variable?
- CSIL: Copying files—Copying files between your local computer and CSIL
- CSIL: disk quota and file quota issues—How to diagnose and fix
- CSIL: git configuration—Configuring your CSIL account to use git
- Eclipse—One of several choices for a Java IDE
- editors—An overview of programs for editing C++ code
- emacs—general purpose text editor with programmer-friendly features
- emacs: customization—making changes that happen every time you run emacs
- git/github—An introduction. git vs. github.com vs. github.ucsb.edu, repos, etc.
- git: basic workflow—The basics: git add..., git commit..., git push ...
- git: cloning your first repo—A guide for those new to git
- github: creating private repos under an organization—for closed source class assignments
- github: using ssh keys—generating public/private key pair, uploading public key to github
- IDEs for C++—Integrated Development Environments for C++ (CLion, Eclipse, Netbeans, etc.)
- make—most commonly used old-school build tool for C/C++ projects
- makefile—explanation of the Makefile elements
- Pair Programming Guidelines—The guidelines for successful pair programming
- ssh-remote—Connecting to CSIL remotely from your Mac, Linux or Windows machine
- emacs hints—Getting started if you've never used emacs before
- vim hints—Getting started if you've never used vim before
- sshfs—Accessing your files on CSIL directly from your Mac, Linux or Windows machine
- Test Driven Development (TDD)—General information about best practices
- Unix: Misc tools—Various useful command line tools you may not know about
- vim—a widely used text editor among Unix users
- vim: basic eight—eight things you need to know how to do for your survival
- vim: customization—customizing vim for your purposes
- X11—Dealing with X11 DISPLAY issues