Tool chain for C/C++
- git/github
- Github Organization: https://github.com/ucsb-cmptgcs-1a-f17
- All enrolled students in CMPTGCS 1A for Fall 2017 have been enrolled in this organization
- That gives you the ability to create repos “owned” by the organization, instead of you.
- Creating repos under this organization, instead of your personal account has some benefits:
- Your instructor, and any helpers for the class (mentors, TAs, etc.) automatically have access
- Doesn’t count as a private repo against your own account’s limit (if/when you lose your “student discount” of unlimited repos, no problem.)
- Doesn’t clutter up your personal github space.
- Hello World programs in C and C++
- editors and IDEs
- gcc, clang, g++ and clang++ compilers
- make and Makefiles
- various kinds of files:
.c
,.h
,.cpp
,.hpp
,.o
, executable - debugger: gdb
Creating your account on submit.cs
- Go to https://submit.cs.ucsb.edu
- Click “Create Account”.
- Use your @umail.ucsb.edu account to create your account.
- Then, login at https://submit.cs.ucsb.edu
- Click “Join Class”, and find the button “Join CMPTGCS_1a_f17”. Click it.
Logging into CSIL from a terminal prompt (for simple command line stuff without graphics)
These instructions work at the following terminal prompts:
- Mac OS
- Terminal
- Linux (also any other reasonable Unix-based system)
- Any terminal/shell
- Windows
- the “git bash shell” provided by git for Windows
- shells provided by Cygwin
- The Microsoft provided bash for Windows (on Windows 10, and we assume, subsequent versions of Windows)
Assuming your CSIL username is cgaucho, use:
ssh cgaucho@csil-07.cs.ucsb.edu
BUT: csil-07
should not be taken literally. Use any of csil-01
, csil-02
, csil-03
, etc. through csil-48
.
Other ways to connect (simple command line without graphics)
- PuTTY on Windows. Hostname is csil-01.cs.ucsb.edu (or any of 01 through 48).
Connecting with X11 Graphics
- On MacOS:
- You need an extra download, XQuartz
- Then, just use “ssh -Y …” instead of “ssh”
- On Unix/Linux:
- Just using “ssh -Y … “ instead of “ssh” should work.
- On Windows:
- Easiest known free solution: MobaXTerm (usually just “works”)
- Another known free solution: PuTTY + XMing (requires a bit of configuration)
- X11 server built into Cygwin
Useful Unix Commands
- Make a whole directory path at once:
mkdir -p foo/bar/fum/fiddle
- Remote secure copy (via “scp”, a cousin of “ssh”, the “secure shell”) a file from CSIL to current directory
on your local machine
scp yourusername@csil-01.cs.ucsb.edu:/some/directory/on/csil/some_file.cpp .
-
Scp files with a wildcard, e.g.
*.cpp
. Note that you have to “escape” the wildcard, so that it gets interpreted on the remote system instead of at the local shell.scp yourusername@csil-01.cs.ucsb.edu:/some/directory/on/csil/\*.cpp .
-
Scp entire directory. Note that you have to “escape” the wildcard, so that it gets interpreted on the remote system instead of at the local shell.
scp -r yourusername@csil-01.cs.ucsb.edu:/some/directory/on/csil .
Test-Driven Development in C++
Google Test and Google Mock are frameworks that support test-driven development in C++.
https://github.com/UCSB-CMPTGCS-1A-F16/gtest-demo