Skip to content
Betsalel (Saul) Williamson edited this page Jan 3, 2021 · 34 revisions

Warning !!! This tutorial is currently under construction... Proceed at your own risk

Welcome to the Programming Tutorial wiki!

Introduction

This course focuses on the fundamentals of programming through progressively more complicated tutorials. After completing this course, you should have the knowledge to start creating simple programs.

The tutorials which are already or to be included in this guide are as follows:

  1. "Hello World!" - Introduction to Programming
  2. Crack The Code - Crash Course in C

The author disclaims copyright to this source code and the tutorial may be freely shared with the CC BY 4.0 license. To share, please include the following in any slides or documents:

The tutorial is reproduced or modified from work created and shared by Betsalel (Saul) Williamson <saul.williamson@ieee.org> and used according to terms described in the Creative Commons 4.0 Attribution License.

Requirements

This guide makes the following assumptions:

  • You have an interest in learning programming, but don't know where to get started, or have already started programming and are looking for additional material to bolster your mad skillz.
  • You may need to have administrative access to install the setup portions of a tutorial, but not for the coding parts.

If you are using a computer in the Pitt ECE labs, you can talk to Bill or Jim to get account access so that you can complete this guide.

Licenses and Using Other People's Code

Before we get started, we need to touch on a very human aspect of code. The author is not a lawyer and the following information should be taken as general information and is not legal advice. If you feel that anything is incorrect please contact the author.

Your computer doesn't care where you get your 1's and 0's from. But you're not a computer. The following information has the US perspective. Other cultures and international laws may differ from the US. Nonetheless, the following advice is a good general rule to follow.

Whenever you start using other people's code you need to follow the license or instructions that other people post in their code. If you come across a file without any information in the header of the file, DO NOT USE THAT PIECE OF CODE. Regardless of where you fall on the line of personal conscience it is a professional responsibility to respect the wishes and creativity of fellow coders.

Places where you need to look at the license information before copying:

  1. Everywhere.

From Copyright.Gov

Copyright Registration of Computer Programs Circular 61 Revised 10/2019:

The copyright law does not protect the functional aspects 
of a computer program, such as the program’s algorithms, 
formatting, functions, logic, or system design.

If there is no copyright, then you must ask for permission before using the code. Contact the author and tell them what you intend to do with it. They may be nice and give you free access to use the code for any non-commercial purposes (i.e. you won't make money off of it).

Common places which are acceptable to copy from:

  1. When the author says clearly that this code is Open Source, waives copyright, or you have in writing something to the effect that the author(s) are OK with you using the code for your intended purpose.
  2. Places where copyright exemption clauses are in effect (like a classroom for instruction purposes only).
  3. Stack Exchange or other code forums where people are providing help with expressed intent to help people understand how the basic mechanics of the code works. See stackoverflow.com/legal for more information.

Places where it may be acceptable to copy from:

  1. See w3schools for what they term as OK to copy. Note that US Copyright states "short phrases" cannot be copyrighted.

Places where is it not acceptable to copy from:

  1. Using code that was given for instruction purposes only and making a profit off of it (commercial purposes).
  2. When you are told to have your own code and you take your friend's code WITHOUT permission.
  3. You remove the copyright and license file from the file header.
  4. You login to a server without permission and copy the code you find that may or may not have licenses or headers.

For more information about best practices in using Open Source code see Google's very nice guide and explanation here https://opensource.google.com/docs/thirdparty/.

For more information about US Copyright see https://www.copyright.gov/circs/circ01.pdf.

Style Guide

Code

All code will use this font. You should be very careful about the white space symbols like the space, tabs, and new-line characters or carriage returns. Also look out for the semi-colons, periods, and other small symbols. You should copy the information with this font exactly for it to work on your machine.

Notes

Text with this font are notes that provide asides, history, or add additional context to the information in the tutorial. It is not required that you read the notes to complete the tutorial, but the author hopes that you may find it useful or interesting.

Distracting Language

Certain parts of the English language should be on their way out as society progresses to become more inclusive. Becoming a good programmer does not depend on your race, ethnicity, gender, or sexual orientation.

To promote ease of reading, the author avoids using gendered nouns and pronouns or expressions that are rooted in racism. When writing in the third person, the author will refer to the programmer or use they when grammatically appropriate in place of gendered pronouns.

Thank You's

Thank you Bill McGahey and Jim Lyle for your support and guidance during the creation of this tutorial and for running SERC to help the folks walking through their door! From soldering to working with institutions and different personalities their guidance has been invaluable.

Thank you to the student section of IEEE for helping me find students to run through this material before general release.

Lastly, I would like to thank my father Tsuri and my dear friend Jordan H. for teaching me that:

  1. Code isn't always about the 1's and 0's,
  2. Keeping things simple is harder than it looks, and
  3. If you only use a hammer everything looks like a nail

Updates

  • Jan 1, 2021 - Generated from m4 template

Previous Page | Next Page