PC Setup for hy100
Last Updated: Fri Feb 6 13:58:41 UTC 2026
Table Of Contents
Important
It is strongly reccomended that you first read through the post one time in order to understandthe context of the post's topic
This article aims to bring you up to speed with setting up your development environment and submitting your first introductory assignment. While doing that, an introduction to commonly used tools, technologies and terminology is discussed. This setup will also be needed for other classes that teach using the C and C++ programming languages.
Tools Needed
You will need software to write your code, software to execute your code and software to submit your code.
Software where you write code
This kind of software is called an IDE and are just text editors like MS Word or MS Notepad, but with alterations that make it easier to write code (more on that on another post).
There are multiple types of text editors that let you easily write code. Some of them are user friendly (VSCode, Code::Blocks) and some of them have a steeper learning curve (Vim, Emacs) and some others are very proffesional with a lot of tools that should not be used by begginers, as they will cause confusion (CLion, Visual Studio)
Software to execute your code
In the context of hy100, where the language teached is C, a compiler is used that converts code (text) to a binary format that is understood by the computer.
Usually the compiler is not a graphical application, meaning there will not be a new window that has a graphical interface to the compiler. The compiler is usually a Command Line Interface (CLI) application, meaning you will need a terminal to use it.
A terminal is a graphical application that accepts text from the user and with the help of the shell it uses text to execute and run computer programs. The shell takes the users input and parses it by splitting it roughly into words. Then the first word is the name of the program that the user wants to run, and the rest are configuration options used as input to the program. For the purposes of this article, and for simplicity reasons, the terms shell and terminal will be used interchangeably.
The most commonly used compilers are GCC and clang
Software to submit your code and assignments
To submit your code you will use 3 separate software, along with setting up a VPN connection to the network of the University.
Firstly, the assignment tools and tests are hosted on a GitLab instance that is only accessible through the University network, meaning, for acuiring, testng and submitting the assignments you will need to be connected to the University VPN.
To get the assignment tools and tests from gitlab to your computer, it's best to use git a cli program that easily makes a copy of the contents in gitlab to your local computer, and the other way around: copies the changes from your computer to gitlab. If your changes are visible on the gitlab website, then you have successfully completed one of 3 and the most difficult part of your assignment submission steps
For git to have access to your code, it needs an ssh
key. An ssh key is something like a very secure password that
is generated randomly using encryption algorithms. An ssh key is a pair
of keys, one private and one public. If some operation asks you for an
ssh key, they're reffering to the public one, the one ending in
.pub, and in particular, its contents
The Setup
Installing VSCode
I reccoment installing VSCode
Download and run the VSCode Installer and follow the instructions shown. The default options are fine, although some modifications to the configuration are reccomended.
Make sure to select all options on the "Select Additional Tasks" page, as these settings will make it easier to open your assignment with VSCode:
- Create a desktop icon
- add "Open with Code" action to Windows Explorer file context menu
- add "Open with Code" action to Windows Explorer directory context menu
Here is a reference video: https://www.youtube.com/watch?v=cu_ykIfBprI
Installing Git
Note
If you use a MacBook/Apple computer or linux, chances are you already have git installed. To check if it is installed, open a terminal and execute the following command:
git --version
If the output is something like: git version 2.47.2 then
you have successfully installed git.
Download and run the Git Installer. The default options are fine.
Here is a reference video: https://www.youtube.com/watch?v=TT8ktVp5j-k
Configuring Git
In order for git to work, it needs an email and a name of the person making using it. This can be set with the commands that follow. Be sure to change email to one of your own (need not be your academic) and the name to your own.
git config --global user.email "csdXXXX@csd.uoc.gr"
git config --global user.name "First Last"
Generating SSH Keys
To generate an SSH key pair
ssh-keygen -C csdXXXX@csd.uoc.gr
This Command will ask you for some information, like the location to store the key and a password/passphrase. You can leave both options to their default value by just pressing the enter key, without typing any text (you will need to press enter 3 times).
Here is a sample output that your output should be similar to:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Created directory '/home/user/.ssh'.
Enter passphrase for "/home/user/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:A9YJZxVecWb2GIgpYZknPGiloNBWGu4Y1iKcJswbn3Q hello
The key's randomart image is:
+--[ED25519 256]--+
|....o .+*=o+oo* |
|+o=+ .oBBo+..= + |
|+@+o E+ o=. . .|
|=+* o. . |
|...o S |
| . |
| |
| |
| |
+----[SHA256]-----+
If you get something like this:
/home/user/.ssh/id_ed25519 already exists.
Overwrite (y/n)?
then type "n" (without the quotes) to prevent the key generation program from overwriting your existing key. If there is an existing key you dont need to create a new one, however, you will need to note your public key.
Gitlab Setup
Gitlab Group
you will need to request access to the group for the current year of hy100 class. Use this link for direct search. Select the one for the current year. If the group does not exist yet, then ask the teacher about it. It can get delayed.
SSH Authentication
To easily download the assignment from GitLab,
Installing a compiler
If you have an Apple Computer/MacBook, then you can use
clang, which is probably preinstalled. If its not
preinstalled, then you will need to install XCode. Here is
a tutorial: https://www.youtube.com/watch?v=enUdXm1ablQ
If you use Linux, then you can use your package manager to install
the gcc package if its not already installed.
sudo apt install gcc
For windows, You can install mingw-w64 package that
contains gcc and other useful tools. You can follow the instructions on
this page to download and install gcc: https://www.msys2.org/
For windows, after installing gcc using msys2, then you will also need to setup your "PATH" Environment Variable, in order to use gcc from your terminal. Terminals opened before editing the Environment Variable will not be able to use gcc, until they are re-launched (So close all terminal windows and the VSCode app and re-open them).
Submitting your first assignment
Getting the assignment from GitLab
Completing your assignment
Submitting your assignment
Rubric
Once, to setup your machine
Local PC
GitLab
On Every Assignment
GitLab
Local PC
-
git add :/ git commit -m "assignment 4a"
-
git push
Troubleshooting guide - Most Common Problems
FAQ
Should I install WSL?
If you are a 1st
year student, then no. I think its too much hassle to configure your
coding environment to use WSL And moving files between WSL And windows
is unintuitive. However, I reccomend installing it after you gain some
experience using your tools of choice.
Should I install Linux?
If you are a
1st year student, then no. Similarly with WSL, to start using linux you
will need to do things somewhat differently than Windows and it will
require a steep learning curve. But, as with WSL, i suggest you give
linux a try because it will be easier to use the terminal more.
Should I Use VIM or EMACS?
Again, as a
1st year student, no. Those Editors have a very steep learning curve,
that will just frustrate you. However, VIM could be useful for editing
files on the university's computers.