This commit is contained in:
2025-04-09 10:22:44 +02:00
commit 96ff5392c8
330 changed files with 28300 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
## source: https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.h text
*.hpp text
*.c text
*.cpp text
*.py text
*.ipynb text
*.md text
*.txt text
*.csv text
+358
View File
@@ -0,0 +1,358 @@
# custom
build
doc
.cache
.vscode
.idea
# https://github.com/github/gitignore/blob/main/CMake.gitignore
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
# ttps://github.com/github/gitignore/blob/main/C.gitignore
# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
# https://github.com/github/gitignore/blob/main/C%2B%2B.gitignore
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# source: https://github.com/github/gitignore/blob/main/Python.gitignore
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# jetbrain IDEs: https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
# VSCODE source: https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
+138
View File
@@ -0,0 +1,138 @@
# Labor Setup (Praxisteil, 150min)
- **Fragen Sie frühzeitig nach, falls Unklarheiten bestehen**.
- Fragen Sie alles, was Ihnen im Rahmen der Lehrveranstaltung wichtig erscheint.
- Es gibt keine Einschränkungen für die Zusammenarbeit zwischen Studierenden beim Bearbeiten der untenstehenden Aufgaben.
- Sie haben das Labor erfolgreich absolviert, wenn Sie alle drei Teilaufgaben bei einem Betreuer **demonstriert** haben.
- Melden Sie sich bei einem Betreuer, sobald Sie sich in der Lage sehen alle drei Aufgaben zu demonstrieren.
---
Im heutigen Labor sollen Sie die folgenden drei Aufgaben abarbeiten.
---
### A. Vervollständigen der Konfiguration im Labor
Sie sollen die Konfiguration der Entwicklungsumgebung auf Ihrem Laborrechner mit den unten stehenden Befehlen vervollständigen (nur Schritt 2. und 5. nehmen eine Konfigurationsänderung vor, alle anderen Schritte sind rein informativ, sollen aber trotzdem ausgeführt werden).
1. **Betriebssystem**, bereits installiert.
```shell
uname -a
```
2. **git**, bereits installiert, **aber noch nicht konfiguriert** (Email und Namen in den Befehlen bitte anpassen)
```shell
git version
# TODO: adapt the student ID and name in the commands below
git config --global user.email "eXXXXXXX@student.tuwien.ac.at"
git config --global user.name "Firstname Lastname"
git config --global init.defaultBranch main
git config --global credential.helper "cache --timeout 300"
```
3. **Compiler/Tools**, bereits installiert.
```shell
gcc --version
g++ --version
gdb --version
clangd --version
cmake --version
```
4. **VSCode**, bereits installiert.
```shell
code --version
```
5. **VSCode Erweiterungen**, **noch nicht installiert**.
```shell
code --install-extension ms-python.python
code --install-extension ms-toolsai.jupyter
code --install-extension ms-vscode.cpptools
code --install-extension llvm-vs-code-extensions.vscode-clangd
```
**Demonstration:** Führen Sie die folgenden Befehle aus:
```shell
git config --get user.name # should print your name
git config --get user.email # should print your student-email
code --list-extensions # should list all installed vscode extensions
```
---
### B. Kennenlernen der Systemkonfiguration im Labor und Einüben der Labor-Abgabe via TUWEL
1. TUWEL im Web-Browser aufrufen und einloggen
2. Anweisungen der Aufgabe unter [Labor Setup: Abgabe (demo)](https://tuwel.tuwien.ac.at/course/view.php?id=62042#coursecontentcollapse3) folgen
**Demonstration:** Die von Ihnen hochgeladene Datei `task.cpp` in TUWEL.
---
### C. Hausübung 1 "Schnelldurchgang"
Schritt-für-Schritt Anleitung des Abgabeprozesses für `exercise1` mit *git*: https://sgit.iue.tuwien.ac.at/360050/git
Sie sollen **Aufgabe 2** (Task2) der ersten Hausübung `exercise1` bearbeiten und dabei alle nötigen Befehle um die Hausübungen abzugeben kennenlernen:
- Kopieren der Angabe in Ihren persönlichen Bereich auf dem git-Server:
- Navigieren Sie zu [https://sgit.iue.tuwien.ac.at/360050/exercise1](https://sgit.iue.tuwien.ac.at/360050/exercise1)
- Klicken Sie oben rechts auf **Fork** und dann auf **Fork Repository**. Das Repo *exercise1* sollte jetzt in Ihrem persönlichem Bereich verfügbar sein (s. oben rechts *'Profile'*).
- Herunterladen der Hausübung 1 vom Git-Server und öffnen in VSCode:
```shell
mkdir 360050 # just a recommendation for a directory structure
cd 360050
# NOTE: next command prompts for username/password
# NOTE: replace eXXXXXXX with your student ID
# NOTE: --recursive is important, otherwise the 'modules' folder will be empty
git clone --recursive https://sgit.iue.tuwien.ac.at/eXXXXXXX/exercise1.git
cd exercise1
code .
#TODO: check if all files are present, especially inside the 'modules' folder
```
---
---
- Bearbeiten Sie **Aufgabe 2** der Hausübung 1 **(task2.main.cpp)**:
- Die genaue Beschreibung und Anforderungen finden Sie in **main.ipynb**
---
---
- Wenn Sie fertig sind nutzen Sie folgende Befehle um die lokalen Änderungen an der Hausübung (Ihre Lösung) auf den git-Server hochzuladen:
```shell
git status # some files should be marked as modified or new (red)
git add . # add all files to staging area (green)
git status # check staging (green)
git commit -m "task2 done" # apply all changes
# NOTE: next command prompts for username/password
git push
```
- Wenn Sie nachträglich etwas an Ihrer Lösung geändert haben und diese Änderungen auf den Git-Server hochladen wollen, führen Sie folgende Befehle aus:
```shell
git status # modified files are marked (red)
git add . # add all files to staging area (green)
git status # check staging (green)
git commit -m "changes done" # apply all changes
git push
```
**Demonstration:** Öffnen Sie Ihr Abgabe-Repo auf http://sgit.iue.tuwien.ac.at im Browser und offnen Sie Ihre Loesung in **task2.main.cpp** im Browser.