This repository contains notes for the Introduction to Programming class at UPY. The content is heavily based on the CS50 course by David Malan at Stanford.
There are some requirements to be able to follow the notes and do the problem sets.
- You need Linux, so please either install a distribution on your machine or
setup a virtual machine from within Windows. Instructions to setup a virtual
machine can be found here:
https://blog.storagecraft.com/the-dead-simple-guide-to-installing-a-linux-virtual-machine-on-windows/
I recommend Xubuntu, as it is able to run with fewer resources than other distributions. Download it at https://xubuntu.org.
Another alternative is the Windows Subsystem for Linux (WSL), which give you access to a Linux terminal in Windows. To install the WSL follow this instructions: https://docs.microsoft.com/en-us/windows/wsl/install-win10. Remember that if using WSL you need to change to your Windows working directory every time you start up WSL.
- You need to install the compiler and git to upload the solutions to the
problem sets to GitHub. Run the following code in a terminal of your Linux
OS:
sudo apt update sudo apt install gcc git
- You’ll also need the CS50 library. If on Xubuntu, install it by running the
following in the terminal.
sudo apt install curl curl -s https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | sudo bash sudo apt-get install libcs50
If not on Xubuntu, follow the instructions at https://github.com/cs50/libcs50.
- You need a GitHub account. If you don’t have one, create one at https://www.github.com.
This are the GitHub Classroom links for the problem sets, you need to follow them only once. After you have accepted the assignment, you should have a private copy of the assignment repository for you to work it.
- Problem set 2: https://classroom.github.com/a/KvrOkHjM
- Problem set 3: https://classroom.github.com/a/o-UiyyI2
- Problem set 4: https://classroom.github.com/a/gRI-2e-n
- Problem set 5: https://classroom.github.com/a/YRxFWIP6
- We will use the command line heavily throughout the course, a list of common used command can be found at: resources/01-command-line.org
- To submit the solutions to the problem sets, you are required to push your code
onto GitHub. To learn how to work with GitHub repositories, please follow the
tutorial at:
In summary, every time you want to submit your work, you’ll need to perform two actions on the command line from within the folder’s repository:
git commit -a -m "<useful message here>" git push
- The CS50 C reference can be found here: https://reference.cs50.net/
- The CS50 C style guide can be found here: https://cs50.readthedocs.io/style/c/