Skip to content

Commit

Permalink
Revisit About page (#127)
Browse files Browse the repository at this point in the history
* update course profile

* update prerequisites
  • Loading branch information
pkeilbach authored Oct 5, 2024
1 parent 5e1cc9d commit 85f5035
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 42 deletions.
45 changes: 22 additions & 23 deletions docs/about/course_profile.md
Original file line number Diff line number Diff line change
@@ -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.
54 changes: 35 additions & 19 deletions docs/about/prerequisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/).

0 comments on commit 85f5035

Please sign in to comment.