[lug] This Wednesday May 3rd: Hands-on Introduction to C workshop

Paul Walmsley paul at booyaka.com
Mon May 1 20:41:28 MDT 2017


Some folks on this list might be interested.  This Wednesday we'll do a 
hands-on "Introduction to C" workshop in Boulder:

https://www.meetup.com/SolidStateDepot/events/239655615/

We'll do all of our work in Linux, but of course the underlying language 
concepts are common to other platforms too.


- Paul


Hands-on Introduction to C Workshop

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 programimng
- 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






More information about the LUG mailing list