From 85f50354c6134c92530f1df7a2668e65e658130b Mon Sep 17 00:00:00 2001 From: Pascal Keilbach <28002199+pkeilbach@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:12:46 +0200 Subject: [PATCH] Revisit About page (#127) * update course profile * update prerequisites --- docs/about/course_profile.md | 45 +++++++++++++++--------------- docs/about/prerequisites.md | 54 +++++++++++++++++++++++------------- 2 files changed, 57 insertions(+), 42 deletions(-) diff --git a/docs/about/course_profile.md b/docs/about/course_profile.md index 7430e1e..74e39b5 100644 --- a/docs/about/course_profile.md +++ b/docs/about/course_profile.md @@ -1,39 +1,38 @@ # Course Profile -## Objectives +## Description -This course aims to provide students with a foundational understanding of Natural Language Processing (NLP) concepts and techniques. -By the end of this course, students will be equipped to preprocess text data, engineer relevant features, and apply basic machine learning models on text data. -Additionally, students will gain insights into advanced NLP concepts like large language models and generative AI, along with their practical applications. +This course offers a comprehensive introduction to Natural Language Processing (NLP), focusing on both basic methods and modern techniques. Students will explore essential topics such as preprocessing, feature extraction, and classic algorithms like Logistic Regression and Naive Bayes, used for text classification. Core concepts in language modeling and vector space models will be covered, including Minimum Edit Distance for text similarity. -## Contents +Later in the course, students will delve into advanced NLP approaches, including word embeddings and sequence models, such as recurrent neural networks (RNNs) and their improvements with attention mechanisms. The course balances theory and practical application, preparing students to build and understand NLP systems in real-world contexts. Towards the end of the course, we will also touch on large language models, prompt engineering, and generative AI. -- NLP basics -- Text preprocessing -- NLP pipelines -- Feature engineering -- Vector space models -- Probabilistic models -- Sequence and attention models -- Generative AI and large language models -- Practical implications +## Learning Objectives + +By the end of this course, students will be able to: + +- Understand the **fundamentals** of Natural Language Processing (NLP) and its key applications. +- Apply various preprocessing techniques and feature extraction methods to **text data**. +- Analyze and implement basic models for **text classification**, such as Logistic Regression and Naive Bayes. +- Understand and utilize **advanced NLP techniques**, including word embeddings and sequence models. +- Explore the **concepts** behind large language models, prompt engineering, and generative AI. ## Assessment The course is graded based on a **written 90-minute exam** at the end of the semester. -To be admitted to the exam, it is required to - -- complete all assignments and -- give a presentation on an NLP topic. +To be admitted to the exam, you need to complete the [assignmnets](../assignments.md) and give a [presentation](../presentations/presentations.md). +You can earn **bonus points** for the exam through [contributions](https://github.com/pkeilbach/htwg-practical-nlp/blob/main/CONTRIBUTING.md) to the course repository (TBD). -The presentation and assignments are ungraded. +- **Exam** (graded) +- **Assignments** (ungraded) +- **Presentation** (ungraded) +- **Contributions** (TBD) ## Course Language -All course materials are provided in English. -Lectures will be held in German unless we have international students. -In this case, the lectures will also be in English. +All course materials are provided in **English**. +Lectures will be delivered in German, but can also be conducted in English if we have international students. ## Course Format -The course will be held in a **hybrid format**. There will be a few in-person lectures throughout the semester, but most of the course will be held online. +This course will be delivered in a **hybrid format**, consisting of both in-person and online lectures. +Note that in-person lectures will not be streamed, and online lectures will not be recorded. diff --git a/docs/about/prerequisites.md b/docs/about/prerequisites.md index ee16906..371a11b 100644 --- a/docs/about/prerequisites.md +++ b/docs/about/prerequisites.md @@ -2,32 +2,48 @@ The following skills are **recommended** to participate in the course. -1. **Basic programming skills** +## Basic Programming Skills - To complete the course, you will need basic programming skills. - If you visited an introduction to programming course, you should be good to go. - We don't want to bother with advanced programming concepts but get excited with NLP! - So don't worry if you just started with programming. +To complete the course, you will need basic programming skills. +If you visited an introduction to programming course, you should be good to go. -2. **Basic Python skills** +!!! info - The code for this lecture is written in Python, so it is definetely an advantage if you have worked with Python before. - However, if you are coming from a different langugage, you should be able to follow along. - I tried to keep the language specific parts to a minimum and will provide explanations where necessary. + I tried to design the coding exercises in a way that students with little programming experience can solve them. + If you know your basics about object oriented programming, you will be well equipped. + Any advanced concpets will be explained during the lecture. + In the end, we don't want to bother with advanced programming concepts but get excited with NLP! + So don't worry if you just started your programming journey, you are still encouraged to take the course! + +## Basic Python Skills + +The code for this lecture is written in Python, so it is definetely an advantage if you have worked with Python before. +However, if you are coming from a different langugage, you should be able to follow along. +I tried to keep the language specific parts to a minimum and will provide explanations where necessary. + +!!! tip Microsoft provides a nice [beginner Python course](https://learn.microsoft.com/en-us/training/paths/beginner-python/) that you can take to get up to speed. -3. **Basic knowledge of the Linux command line** +## Knowledge of the Linux Command Line + +Since the course is designed for a Linux development environment, it is recommended to have some basic skills with the Linux command line, i.e. the bash shell. +However, all required commands will be provided in the instructions, so it is not necessary to have extensive Linux command line skills. + +!!! tip + + Here is a basic [bash tutorial](https://learn.microsoft.com/en-us/training/modules/bash-introduction/) which may help if you are new to Linux. + +!!! info + + We use `make` commands to automate the setup process and simplify the commands. You can check out the [`Makefile`](https://github.com/pkeilbach/htwg-practical-nlp/blob/main/Makefile) to see what is actucally executed. If you have not used a `Makefile` before, you may find [this tuorial](https://makefiletutorial.com/) helpful. - Since the course is designed for a Linux development environment, it is recommended to have some basic skills with the Linux command line. - However, all required commands will be provided in the instructions, so it is not necessary to have Linux command line skills. - On Linux and Mac, the [setup](../getting_started.md) should work out of the box. +## Basic Knowledge of Git - If you are on Windows, it is recommended to use the [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/). - Native Windows is not supported, but you should still be able to get everything running in an Anacoda environment. +The course material is hosted on GitHub pages and you can access it through the browser. +As for the assignments, you will need to clone the repository and set up the development environment. +Since the course is under continuous development, you will need to pull the latest changes from time to time. -4. **Basic knowledge of Git** +!!! tip - The course material is hosted on GitHub pages and you can access it through the browser. - As for the assignments, you will need to clone the repository and set up the development environment. - Also since the course is still in development, you will need to pull the latest changes from time to time. + Here is a [Git tutorial](https://learn.microsoft.com/en-us/training/paths/intro-to-vc-git/) that you should complete in case you have not worked with git before. If you are new to GitHub, you might want to check out [this module](https://learn.microsoft.com/en-us/training/modules/introduction-to-github/).