Hands-on Introduction to C


Details
Do you have some programming experience in a language other than C, and want to learn C? Have you ever tried to start learning C, but have been turned off by an abstract presentation? We have a workshop for you!
THIS WEDNESDAY, May 3rd, at 7 PM, a group of us from Solid State Depot will host a "hands-on introduction to C" workshop.
In this workshop, you'll be writing, compiling, and debugging basic C programs. You'll implement everything hands-on. You'll learn how to use software tools to write better C, so you can keep learning after the workshop ends. We'll demonstrate concepts through pragmatic examples. We'll implement everything in userspace, on Linux, but the
concepts will be transferrable to Mac and Windows environments.
WHAT WE'LL COVER
- Introduction to C
- Compiling and running your code
- Common C libraries: the C standard library and POSIX
- Finding and using other libraries
- How warnings and static analysis can help you
- Basic tracing and debugging with gdb and valgrind
- Where to get help: manpages, the web
WHAT YOU'LL NEED
Of course, you're welcome to just come and listen. But we like to get folks involved at our workshops, and to dive in, you'll want to bring a laptop.
The best way to be prepared is to install our ISO image into a virtual machine before you come to the hackerspace. This is because our Internet connection is limited and can be easily overwhelmed. This is also the best approach for Mac laptops which cannot easily boot from a USB drive. To install our ISO image into a virtual machine, make sure you have a virtual machine host, like VirtualBox or VMWare, installed on your laptop. (You can download VirtualBox for free from https://www.virtualbox.org/ )
Next, download this ISO image:
https://utopia.booyaka.com/~paul/ssd/c-intro-workshop-1/live-image-amd64.hybrid.iso
This image is large (about 1.2GB), and will take some time to download.
(The SHA256 checksum of this file, for folks who are into such things, is 4f493fea0ee4d75722944ded6f74d26876060e1594d5cf40a7548caabf9684b2.)
Once it's downloaded, add a new virtual machine using your virtual machine host. It is a Debian 64-bit Linux virtual machine. The virtual CDROM drive should be set to point to the ISO file, mentioned above. The virtual machine should have at least 1GB of RAM dedicated to it. No virtual hard drive is needed.
When you boot the virtual machine, you should see a screen with a yellow hard hat on it. Press ENTER to boot into the "Debian Live" image. Within about thirty seconds, you should see a desktop pop up, ready to use.
For folks who have brought a laptop that can boot from USB, we'll also have some USB flash drives to borrow for the duration of the workshop that contain the workshop image.
... If you already have Linux running on your laptop, there might be no need to use our image. Please make sure the following packages are installed (example for Debian-based installations):
sudo apt-get install make gcc build-essential ltrace gdb firefox-esr cppcheck sparse splint libcurl4-openssl-dev apache2 strace libglib2.0-dev hexedit valgrind
WHAT WE WON'T COVER IN ANY DETAIL
- Multicore/multithreading
- Embedded C programming
- Binary and object file structure
- Kernel/bootloader development
- Language subtleties and lawyering
WHAT DOES IT COST?
This workshop is free for Solid State Depot members. For folks who haven't become members yet of one of Boulder's hidden gems, please bring a $10-$25 donation for Solid State Depot.
WHEN IS IT AGAIN?
This Wednesday, May 3rd, at 7:00 PM.
WORKSHOP HOSTS
Ben Sembera
Paul Walmsley

Hands-on Introduction to C