1 of 2

Course Components:

Lecture Participation: submit these handouts via Gradescope app

Lab Participation: be in lab, participate in discussions

Weekly Quizzes: online; do 9am on Mondays except week 1, which will be due 9am on Wednesday

Lab Reports: every 2 weeks (2, 4, 6, 8, 10), on your Github Pages site (see lab 1)

Skill Demonstrations/Oral Exams: Week 3, 5, 7, 9 scheduled outside of class, make-up in finals week

Name:

PID:

Lecture

Lab

Quizzes

Lab Reports

Skill Demos

CSE15L – Software Tools & Techniques Laboratory (Spring 2023)

When you complete this course, you should be able to:

  1. Use terminal commands to navigate directory structures, manipulate files, and build projects
  2. Use git and Github to download and upload code to and from git repositories
  3. Use ssh and related tools to connect to and work on remote servers
  4. Use a command-line debugger to inspect running programs
  5. Recognize, run, and adapt build files (like make) and scripts (like bash)
  6. Set up and run a unit-testing library (at least for Java, like JUnit)
  7. Diagnose problematic program behavior better than when you started the course

That's a lot of stuff! Is this what you expected? What is a question you have about course content?

Course checklist:

2 of 2

Name:

PID:

Some Key Commands

cat <path1> <path2> ... - “Concatenate” Used to print the contents of one or more files given by the paths

ls <path> - “List” Used to list the files and folders the given path

pwd - “Print working directory” Used to display the current working directory

cd <path> - “Change Directory” Used to switch the current working directory to the given path

Example file structure:

/Users/

|- joe/

|- lecture1/

|- Hello.java

|- README

|- messages/

|- en-us.txt (English, USA)

|- es-mx.txt (Espanol, Mexico)

|- zh-cn.txt (Chinese, PRC)

Absolute path: Where a single file or folder is within a filesystem Example: /Users/joe/lecture1/README

Root folder/directory: The folder that isn't contained in any other folder. Often written as / or C:\\

Relative path: A part of a path that doesn't start with the root. Example: lecture1/README

Current/working directory: An absolute path to a directory that a program or terminal uses to resolve relative paths.

Parent directory: The directory “above” or “outside” the current directory. In paths, written ..

Consider the following working directories, relative paths, and corresponding absolute paths. Fill in the blanks.

To resolve a relative path, join it with the current working directory, then collapse directory names that are followed by ...

Working Directory (pwd) Relative Path Absolute Path

/Users/joe lecture1 /Users/joe/lecture1

/Users/joe/lecture1/messages ../Hello.java /Users/joe/lecture1/Hello.java

/Users/joe/lecture1 /Users/joe/lecture1/messages/en-us.txt

/ Users/joe

/Users/joe/lecture1 ..

/Users/joe/lecture1 Goodbye.java

/Users/joe/ messages/