Week 1

What are we doing today?

  • Instructor introductions
  • Overview of the RoboJackets software training program
  • Navigating and manipulating files and directories in the Linux terminal
  • Using Git and GitHub for version control
  • Do a fun exercise to practice using git

Meet Evan

evan-bretl-hiking.jpg

  • Evan Bretl
    • 3rd year, Computer Science (Intelligence + Mod/Sim threads)
    • Inside RoboJackets: Software Training Coordinator, RoboRacing Software Lead, former RoboRacing Project Manager
    • Outside RoboJackets: Volleyball, AI Club
  • How to contact me

Meet Evan

ol3f6LJ.jpg

  • Evan Strat
    • 2nd year, Computer Science (Intelligence + Mod/Sim threads)
    • Inside RoboJackets: IT Coordinator, IGVC Software
    • Outside RoboJackets: Play clarinet in marching band
    • More robot than human
  • How to contact me

Meet Dallas

dallas.png

  • Dallas Downing
    • 3rd year, Computer Science (Intelligence + Media)
    • Inside RJ: IGVC Project Manager, Outreach Mentor, Volunteer, PR Committee
    • Outside RJ: various random hobbies
  • How to contact me

Meet Andrew

5Qa0VHl.jpg

  • Andrew Tuttle
    • 3rd year, Computer Science (Theory, Intelligence)
    • Inside RJ: IGVC Software Lead
    • Outside RJ: Dungeon Master and general geek
  • How to contact me

Meet Jason

izC5WWA.jpg

  • Jason Gibson
    • Senior, Computer Science (Threads: Devices, Intelligence)
    • Inside RoboJackets: President
    • Outside RoboJackets: Avid lover of dad jokes
  • How to contact me

Meet Matthew

nDgF0NX.jpg

  • Matthew Woodward
    • Senior, Computer Engineering
    • Inside RoboJackets: RoboCup Project Manager
    • Outside RoboJackets: Triangle Fraternity, GTRI Underwater Robotics
  • How to contact me

Why are you here?

  • Learn the basics of software development
  • Get up to speed on technologies and techniques common to most RoboJackets teams

Overview of Training

  • Basic C syntax sessions
    • Useful if you have never used a language with C-style syntax before
    • We expect you to know C++ loops and basic data types
  • Week 2: C++ essentials, building on basic C syntax
  • Weeks 3-4: C++ Standard Template Library
  • Weeks 5-8: Advanced C++ topics (pointers, references, classes/interfaces)

The Linux terminal

  • Powerful text-based interface for interacting with your computer
  • (Almost) everything is a file or a folder
  • It lets you navigate your folders and manipulate files quickly
  • There are lots of tiny tools and commands you can use to do useful things

ATTENTION WINDOWS USERS

  • The Linux terminal is not the same as Windows Command Prompt
  • You will install Git Bash in order to use Linux commands
  • Installation instructions have been distributed to the training-sw email list

Basic commands

Command Use
cd Change to a different directory
ls List files in this directory
mkdir Make a new directory
rm Remove a file
rmdir Remove a directory
echo Write arguments to the standard output
  • Note: folder = directory

Basic commands

Command Use
cp Copy a file
mv Move a file
man Access documentation about a command
grep Search for a string
history Shows your command history

Basic hotkeys

  • Up/down arrow keys: Cycle through your command history (great for recent commands)
  • Ctrl+R: Search through your command history (great for less recent commands)
  • Tab: Complete this command/file/directory name
  • Tab-Tab: Show possible completions
  • Ctrl+C: NOT COPY! Stops the current command.
  • Ctrl+Z: NOT UNDO! Sends the current command to the background.
    • Use fg to bring it back to the foreground.
  • Ctrl+Shift+C: Copy (in Linux)
  • Ctrl+Shift+V: Paste (in Linux)
  • Ctrl+D: Exit the shell.

Git