🚀
╔══════════════════════════════════════════════════════════════════════════╗
β•‘  __   __ _____ ____   _____     _____  ___  ____  _____ _   _  _____   β•‘
β•‘  \ \ / /|_   _| __ ) | ____|   / ____|/ _ \|  _ \|_   _| \ | |/ ____|  β•‘
β•‘   \ V /   | | |  _ \ |  _|    | |    | | | | | | | | | |  \| | |  __   β•‘
β•‘    | |    | | | |_) || |___   | |____| |_| | |_| | | | | |\  | |__| |  β•‘
β•‘    |_|   |___||____/ |_____|   \_____|\___/|____/ |___| |_| \_|\_____|  β•‘
β•‘                                                                          β•‘
β•‘         Programming with Natural Language for Human Rights              β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
        
welcome.sh
cat course_info.txt
WORKSHOP: NLP & Vibe-Coding for Human Rights

WELCOME: In January 2024, Andrej Karpathy tweeted that "The hottest new programming language is English" - and pinned it to his profile. In this course, you'll learn how to leverage natural language to build powerful tools for human rights work - no computer science degree required. If you can describe what you want, you can build it. But be prepared to leave your comfort zone and dive into the basics of how computers process text.

AUTHOR: Łukasz Szoszkiewicz | Adam Mickiewicz University
πŸ—ΊοΈ THE JAGGED TECHNOLOGICAL FRONTIER

We're standing on what Ethan Mollick calls the "jagged technological frontier" - AI capabilities are uneven, excelling in unexpected areas while failing in others. As human rights experts, we must experiment to discover where and how LLMs can be integrated into our work. No one will do it for us.

πŸ“– Read: "Centaurs and Cyborgs on the Jagged Frontier" by Ethan Mollick

What is Natural Language Processing?
nlp_intro.md

DEFINITION:

Natural Language Processing (NLP) is a field of artificial intelligence that enables computers to understand, interpret, and generate human language. It's the bridge between human communication and machine computation.

Key NLP tasks include:
β€’ Search: Find relevant documents from large collections
β€’ Classification: Categorize documents by topic, sentiment, or type
β€’ Extraction: Pull out specific information (names, dates, concepts)
β€’ Analysis: Discover patterns and trends in text data
β€’ Summarization: Condense long documents into key points

What is Vibe-Coding?
vibe_coding_intro.md

DEFINITION:

Vibe-coding is programming through natural language conversation with AI assistants. Instead of writing code syntax, you describe what you want to build in plain English (or Italian!).

THE PARADIGM SHIFT:

  • βœ“ Focus on ideas and outcomes, not syntax
  • βœ“ Iterate rapidly through conversation
  • βœ“ Learn "on demand" - depth-wise, not breadth-wise
  • βœ“ Accessible to domain experts without CS degrees
pros_cons.json
{
  "advantages": {
    "accessibility": "Opens programming to non-technical experts",
    "speed": "Rapid prototyping and iteration",
    "focus": "Concentrate on solving problems, not syntax",
    "learning": "Learn programming concepts as needed"
  },
  "limitations": {
    "control": "Less fine-grained control over implementation",
    "debugging": "Harder to understand generated code deeply",
    "dependency": "Reliant on AI capabilities - need to leverage domain expertise",
    "optimization": "May not produce the most efficient code"
  },
  "read_more": {
    DataCamp: What is Vibe Coding?
  }
}
🧯 ANTI-HYPE: start simple

Vibe-coding shines for simple, useful tools: a document search engine, a lightweight analytics dashboard, or a short report generator. Human rights experts often miss exactly these basics: decision/document search, filtering, and XLSX export. Build step by step and shift towards your own code changes as you learn. Over-ambitious first projects often end like this:

Ambitious project goes wrong (funny meme)
β€œShip the simple thing first, then grow.”
πŸ’‘ MESSAGES FROM ANDREJ KARPATHY

How to become expert at thing:

  1. Iteratively take on concrete projects and accomplish them depth wise, learning "on demand"
  2. Teach/summarize everything you learn in your own words
  3. Only compare yourself to younger you, never to others

"LLMs are the new operating system - Software 3.0"
Watch: Software Is Changing (Again)

πŸ”¬ WHY WE USE GOOGLE COLAB (NOT JUST AI)

Writing code in Google Colab and implementing the data analysis process ourselves (extraction, cleaning, text classification) provides:

πŸ’‘ To start: Go to colab.research.google.com, sign in with Gmail (create a new account if needed), and click "New Notebook". It's the fastest way to start coding - no installation required!

βš–οΈ WHY HUMAN RIGHTS NEEDS NLP & AI

Human rights work is fundamentally about text: treaties, reports, legal documents, testimonies. Even basic NLP techniques can be gamechangers for human rights work:


Read about promisies and pitfalls of NLP and AI in judiciary in the recent report of the SR on Independence of Judges and Lawyers (A/80/169)

How machine learning helps advance access to human rights information
HURIDOCS is using machine learning to facilitate text classification for the UPR Info.

πŸ”§ DAY 1: Basics of Natural Language Processing

πŸ”§ WHAT TO INSTALL BEFORE DAY 2

macOS:

python3 --version

Windows:

πŸš€ DAY 2: Building Your Own App - Document Database

πŸ’» LOCAL DEPLOYMENT OF YOUR APP

Quick setup for testing your app:

  1. In one folder:
    • index.html (the html file you developed yesterday)
    • ccpr.json (dataset that you already have)
  2. In terminal in this folder:
# Python
python -m http.server 8000 --bind localhost
# or python3 -m http.server 8000 --bind localhost
  1. Open in browser: http://localhost:8000
Seed prompt
seed_prompt.md

Example prompt:

"Create a complete web application for searching
UN treaty body documents with the following functions:
1. Paragraph-Level Extraction - Extract the first 20 paragraphs from the UN document attached - Each paragraph maintains its original numbering (1-20) - Full text preservation with proper formatting 2. Thematic Labeling System - Each paragraph has been categorized with relevant UN human rights framework themes - come up with 6 most relevant. Display in the output why and how did you select and defined categories. 3. Advanced Search Functionality - Keyword Search: Find individual terms (e.g., "information," "speech") - Thematic Filtering: Filter by specific human rights themes - Highlight Results: Search terms highlighted in yellow - Real-time Search: Instant results as you type 4. User Interface - Modern, responsive design similar to OHCHR style - Live dashboard with stats about filtered documents - theme distribution, term frequency, and bigrams - Glass morphism effects and professional appearance - Color-coded theme tags for easy identification - Paragraph numbering system for reference - Intuitive copy text and ciattion function - Mobile-friendly responsive layout"
Try cutting-edge models for free: LM Arena (instead of uploading the dataset, indicate the samle document, e.g., CCPR/C/GC/37 (right of peaceful assembly)

Example output (Sonnet 4.5): Here's what you get (one prompt, zero tweaks!)

πŸš€ BEYOND GOOGLE COLAB: CLAUDE CODE & CODEX

Once you're comfortable with vibe-coding basics, graduate to professional tools:

Claude Code / Codex - The Difference:


Claude Code/Codex creates the ENTIRE project structure - ready to be uploaded!
Resources & Tools
resources.sh
#!/bin/bash

echo "=== ESSENTIAL TOOLS ==="
echo "β€’ Claude/Gemini - Your vibe-coding partner"
echo "β€’ LM Arena - Free (limited) access to cutting-edge models
echo "β€’ Google Colab - Free Python environment"
echo "β€’ Dataset (CCPR)"
echo "β€’ UN Treaty Body Database"

echo "=== TOOLS FOR THE NEXT LEVEL ==="
echo "β€’ GitHub - Code sharing and version control"
echo "β€’ Hugging Face - Open source datasets, and models"
echo "β€’ PyCharm - Coding environment with educational license"
echo "β€’ PythonAnywhere - Easy web app deployment"

echo ""
echo "=== ADDITIONAL MATERIALS ==="
echo "β€’ Karpathy: Software Is Changing (Again)"
echo "β€’ Karpathy: We’re summoning ghosts, not building animals [podcast]"
echo "β€’ Mollick: Centaurs and Cyborgs"
echo "β€’ Mollick: The Cybernetic Teammate"
echo "β€’ My favourite repo for PDF -> JSON conversion"
echo "β€’ Repo for powerful OCR (tested on travaux preparatoires) "
echo "β€’ DataCamp: What is Vibe Coding?< [Pros and Cons]"
echo "β€’ Two-week-long intensive summer school on human rights, law, and computational social sciences"

echo ""
echo "=== EXAMPLE PROJECTS ==="
echo "β€’ UN Treaty Body Database"
echo "β€’ Polish Constitutional Court Explorer"
echo "β€’ Your future projects here!"
Course Philosophy
🎯 MY APPROACH

Learning through building: I won't teach you programming theory. Instead, you'll build real tools for human rights work and learn what you need along the way.

Effort over entertainment: This course requires effort. It's not meant to be easy, but it will be rewarding when you build something that helps real people.

Compare to yourself: Don't worry about others' progress. Focus on what you couldn't do yesterday but can do today.

Ready to Start?
start_journey.sh
#!/bin/bash

echo "Starting your vibe-coding journey..."
echo ""
echo "Remember:"
echo "  [βœ“] You don't need to be a programmer"
echo "  [βœ“] You already have domain expertise"
echo "  [βœ“] AI will be your coding partner"
echo "  [βœ“] You'll build something meaningful"
echo ""
echo "The best time to start was yesterday."
echo "The second best time is now."
echo ""
read -p "Press [ENTER] to begin your transformation..."
echo ""
echo "Welcome to the future of human rights tech! πŸš€"
echo "See you in Venice!"
Contact & Information
contact_info.txt

AUTHOR:

Łukasz Szoszkiewicz

Adam Mickiewicz University, PoznaΕ„

🌐 lszoszk.github.io

VENUE:

Global Campus of Human Rights

Venice, Italy

QUESTIONS?

Bring them to class - the best questions come from confusion!

Remember: There are no stupid questions, only missed opportunities to learn.