PC Setup for hy100

Author: al3xandros

Last Updated: Fri Feb 6 13:58:41 UTC 2026

Tags: csduoccsd uocPC Setup for hy100

Page Source

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:

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

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.