Course Syllabus
SYLLABUS
Natural Language Processing (draft syllabus)
|
Semester & Location: |
Summer 2027 Session 1 - DIS Copenhagen |
| Type & Credits: |
Summer course - 3 credits |
|
Faculty: |
Iraklis Moutidis |
|
Time: |
TBA |
|
Classroom: |
TBA |
|
Major Disciplines: |
Computer Science, Mathematics, Statistics |
|
Related Disciplines: |
|
|
Prerequisites: |
One year of computer science at university level. One of the computer science courses should be in data structures or algorithms. Knowledge of at least one object-oriented programming language (e.g. Java, Python). |
|
Program Contact: |
CE@dis.dk |
Course Description
Did machines actually get smarter than us? Are we smart to begin with or we are a statistical outcome after many years of evolution? In this class we are going to explore those deep questions under the prism of Natural Language Processing (NLP) and learn how Large Language Models work (Spoiler alert they are not magical entities). We will explore how machines understand, generate, and reason with human language through hands-on projects and real-world applications. The course covers the foundations of text processing, embeddings, transformers, prompt engineering, retrieval-augmented generation (RAG), and ethical considerations surrounding generative AI. Through practical labs using Python and modern AI Libraries and APIs, we will learn how to build intelligent applications such as chatbots, semantic search engines, document analyzers, and AI assistants. In addition we will learn how to use existing tools to generate knew knowledge and enhance the performance of our applications. By the end of the course, we will have both theoretical understanding and practical experience working with state-of-the-art language technologies that are transforming industries worldwide.
Course Outline
Topic 1 — Introduction to NLP
Topic 2 — Text Processing Fundamentals
Topic 3 — Statistical NLP
Topic 4 — Word Embeddings
Topic 5 — Neural Networks for NLP
Topic 6 — Transformers and Attention 1
Topic 7 — Transformers and Attention 2
Topic 8 — Large Language Models
Topic 9 — Prompt Engineering
Topic 10 — Text Generation and Chatbots
Topic 11 — Retrieval-Augmented Generation (RAG)
Topic 12 — NLP Applications
Topic 13 — Evaluating NLP Systems
Topic 14 — Ethics and Responsible AI
Topic 15 — Final Project Presentations
Learning Objectives
- Explain the fundamental concepts, techniques, and applications of Natural Language Processing and their role in modern AI systems.
- Analyze textual data using standard NLP preprocessing methods, including tokenization, normalization, stemming, and lemmatization.
- Apply statistical and machine learning approaches to solve common NLP tasks such as text classification, sentiment analysis, and information extraction.
- Evaluate the performance of NLP models using appropriate metrics and critically assess their strengths, limitations, and potential biases.
- Develop and implement basic NLP solutions using contemporary tools and libraries to address real-world language processing problems.
Faculty

Iraklis Moutidis
PhD in Computer Science from the University of Exeter, with expertise in data science, natural language processing, and network analysis. Research includes misinformation detection, news mining, and entity-relationship analysis, alongside professional experience at CERTH, CERN, and IT University of Copenhagen. With DIS since 2025.
Readings
- Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition
- Hands-On Large Language Models: Language Understanding and Generation
- Natural Language Processing with Transformers: Building Language Applications with Hugging Face
Field Studies
Field studies will involve visiting firms or researchers involved in the use and/or development of LLMs.
Approach to Teaching
The course is designed around the principle of constructive alignment. The two major components in the course—the assignments and the final project—implement this principle by stating clear outcome goals of every activity and the course as a whole.
Assignments: Leading up to each session, students are given a "preparation goal" and a suggested list of materials they can use to reach it. Sessions start with a lecture (~1.5h hour) that introduces the topic of the day, and then students work through a set of technical exercises. The students are required to hand in their completed exercises each week throughout the course (40% of their final grade). This gives the student a clear outcome goal for each session: "show up prepared and complete the exercises". It gives incentive to prepare and work focused.
Final project: From the beginning of the course the students are aware that an outcome of the course is a project that, if done well, can add value to their professional portfolio. The project is a small study on some popular topic of their own choosing that they can investigate with data they have scraped or downloaded from the Internet. They submit the project in two parts: First, each team must compose a proposal presentation which demonstrates that they have made a plan for their project and are able to hypothesize about the outcomes. Second, after they have completed their project they must communicate the results in the popular format of a blog post. The proposal presentation is a fun exercise that serves as a platform for sharing ideas between groups (we view them all in class) but it also forces them to start with a very comprehensive idea of the outcome in mind.
Expectations of the Students
Students are expected to participate on the class. Asking and answering questions is highly recommended as well as discussing about topics related with this class. Students are also expected to reach the preparation goal leading up to each session. Students who have little or no experience coding in Python should either follow a Python tutorial before the course starts, or prepare to invest some hours getting up to speed with the language once we start. Students should have a working laptop computer. It is advised that each machine has a least 8 GB of RAM and a reasonable processor (if it’s bought after 2020 you should be fine). The Unix operating system is preferred (OSX and Linux), but not a necessity.
Evaluation
During the course you will hand in exercises solved in class. Furthermore, you will complete a larger project that uses tools which have been taught in the class. You will be allowed to define your own project, but you will also get assistance from the teacher. Both project and assignments are group efforts. The teacher will correct the weekly assignments, giving you a continuous idea of where they stand in terms of learning goals.
During the programming projects, you are allowed to consult freely with any of the other students and the instructor. Contributions from other students, however, must be acknowledged with citations in your final report, as required by academic standards. Contributions to your presentations must similarly be acknowledged. Needless to say, the right to consult does not include the right to copy — programs, papers, and presentations must be your own original work.
The participation grade reflects a student's contributions to classes, exercises, comments on other students' questions on the Discussion boards, attendance and engagement with guest speakers and during field studies. Inappropriate and/or unprofessional behavior (e.g., sleeping during presentations, being rude towards our hosts during field studies) results in a score of 0 for participation for the entire semester.
Grading
| Assignment |
Percent |
| Participation: behavior that promotes learning by you and others |
30% |
|
Assignments |
40% |
|
Final Project: (10% proposal presentation, 10% project report and 10% presentation) |
30% |
Use of AI and LLMs
The use of AI tools is highly discouraged but it is not prohibited. The students should avoid its usage on the assignments and the final project but they can use it as a source of inspiration, general information and graphics creation. Keep in mind that the whole point of this class is to learn and to do so you need to practice, make mistakes and learn from them.
DIS Accommodations Statement
Your learning experience in this class is important to me. If you have approved academic accommodations with DIS, please make sure I receive your DIS accommodations letter within two weeks from the start of classes. If you can think of other ways I can support your learning, please don't hesitate to talk to me. If you have any further questions about your academic accommodations, contact Academic Support acadsupport@disstockholm.se.
DIS Academic Regulations
Please make sure to read the Academic Regulations on the DIS website. There you will find regulations on:
Course Summary:
| Date | Details | Due |
|---|---|---|