/intro-prog

Introduction to Programming course based on CS50

Primary LanguageHTML

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.

Requirements

There are some requirements to be able to follow the notes and do the problem sets.

  1. 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.

  2. 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
        
  3. 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.

  4. You need a GitHub account. If you don’t have one, create one at https://www.github.com.

Problem Sets

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.

Resources

  • 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/