Programming Historian Introductory and intermediate programming lessons for humanists https://programminghistorian.org Appel à contributions (édition française) <p><em>Programming Historian en français</em> recherche des propositions de nouvelles leçons originales ou de traductions, pour une publication en 2026-2027.</p> Fri, 20 Feb 2026 00:00:00 +0000 https://programminghistorian.org/posts/appel-a-contributions https://programminghistorian.org/posts/appel-a-contributions Convocatoria de propuestas (edición en español) <p><em><a href="/es/lecciones">Programming Historian en español</a></em> busca propuestas para lecciones nuevas o traducciones para su publicación a lo largo de 2026. Entendemos que los calendarios académicos son diferentes en cada hemisferio y por eso hemos creado dos fechas de entrega: simplemente envía tu trabajo dentro de la fecha que aplique a tu ubicación.</p> Fri, 16 Jan 2026 00:00:00 +0000 https://programminghistorian.org/posts/convocatoria-de-propuestas https://programminghistorian.org/posts/convocatoria-de-propuestas Bulletin // Boletín // Bulletin // Boletim <p><figure><img src="/images/logos/ph-bulletin-banner.png" alt="Banner showing the four Programming Historian logos and the title Bulletin in each language " /><figcaption></figcaption> </figure></p> Fri, 19 Dec 2025 00:00:00 +0000 https://programminghistorian.org/posts/bulletin-issue-09 https://programminghistorian.org/posts/bulletin-issue-09 Call for Proposals (English edition) <p>The <a href="/en/lessons/">English edition of Programming Historian</a> seeks proposals for new original lessons or translations to be considered for publication in 2026.</p> Fri, 14 Nov 2025 00:00:00 +0000 https://programminghistorian.org/posts/en-call-for-proposals-2025-6 https://programminghistorian.org/posts/en-call-for-proposals-2025-6 Call for Participation - ENABLAR <p><figure><img src="/images/blog/ENABLAR/ENABLAR-banner.jpg" alt="Banner showing Jisc and Programming Historian logos alongside the project wordmark for the ENABLAR project, which reads ENABLAR, ENABling Library and Archive participation in digital Research co-learning communities" /><figcaption></figcaption> </figure></p> Thu, 30 Oct 2025 00:00:00 +0000 https://programminghistorian.org/posts/enablar-call-for-participants https://programminghistorian.org/posts/enablar-call-for-participants Bulletin // Boletín // Bulletin // Boletim <p><figure><img src="/images/logos/ph-bulletin-banner.png" alt="Banner showing the four Programming Historian logos and the title Bulletin in each language " /><figcaption></figcaption> </figure></p> Tue, 30 Sep 2025 00:00:00 +0000 https://programminghistorian.org/posts/bulletin-issue-08 https://programminghistorian.org/posts/bulletin-issue-08 Chamada Aberta para Propostas (edição em português) <p>A <a href="/pt/licoes/">edição em português do <em>Programming Historian</em></a> está com chamada aberta para propostas de novas lições originais ou traduções para publicação em 2025-6.</p> Wed, 06 Aug 2025 00:00:00 +0000 https://programminghistorian.org/posts/chamada-aberta-para-propostas https://programminghistorian.org/posts/chamada-aberta-para-propostas Appel à Évaluateur·ices (édition française) <p>La revue interdisciplinaire <em><a href="https://programminghistorian.org/fr/lecons/">Programming Historian en français</a></em> recherche des spécialistes des humanités numériques pour évaluer ses leçons en 2025 et 2026.</p> Wed, 02 Jul 2025 00:00:00 +0000 https://programminghistorian.org/posts/fr-appel-evaluateur-ices https://programminghistorian.org/posts/fr-appel-evaluateur-ices Bulletin // Boletín // Bulletin // Boletim <p><figure><img src="/images/logos/ph-bulletin-banner.png" alt="Banner showing the four Programming Historian logos and the title Bulletin in each language " /><figcaption></figcaption> </figure></p> Fri, 27 Jun 2025 00:00:00 +0000 https://programminghistorian.org/posts/bulletin-issue-07 https://programminghistorian.org/posts/bulletin-issue-07 Bulletin // Boletín // Bulletin // Boletim <p><figure><img src="/images/logos/ph-bulletin-banner.png" alt="Banner showing the four Programming Historian logos and the title Bulletin in each language " /><figcaption></figcaption> </figure></p> Fri, 28 Mar 2025 00:00:00 +0000 https://programminghistorian.org/posts/bulletin-issue-06 https://programminghistorian.org/posts/bulletin-issue-06 Teaching History and Languages with a Strategy Computer Game: 0&#x0338; A.D. in the Classroom This lesson demonstrates how to prepare a geographically accurate historical battle scene in the free and open source computer game 0&#x0338; A.D. You will learn to use a multisensory, interactive environment for teaching or learning ancient history and pre-modern languages. Wed, 04 Jun 2025 00:00:00 +0000 https://programminghistorian.org/en/lessons/teach-history-and-languages-with-strategy-game https://programminghistorian.org/en/lessons/teach-history-and-languages-with-strategy-game Creating Choropleth Maps with Python and Folium This lesson demonstrates how to visualize data through choropleth maps using Python and the Folium library. It discusses common problems encountered with choropleth maps and explains how to add interactive elements and save the maps for sharing. Thu, 08 May 2025 00:00:00 +0000 https://programminghistorian.org/en/lessons/choropleth-maps-python-folium https://programminghistorian.org/en/lessons/choropleth-maps-python-folium Creating a Dashboard for Interactive Data Visualization with Dash in Python This lesson shows how to create interactive web-based dashboards using Python's Dash library. Using two news media case studies, this lesson provides a practical guide for making digital humanities research outputs more accessible and engaging. Fri, 28 Mar 2025 00:00:00 +0000 https://programminghistorian.org/en/lessons/interactive-data-visualization-dashboard https://programminghistorian.org/en/lessons/interactive-data-visualization-dashboard Visualizing Urban and Demographic Data in R with ggplot2 This lesson demonstrates how to use R's ggplot2 package to create sophisticated data visualizations through a 'grammar of graphics' framework. Using historical data about European sister-city relationships in the post-second world war period, including partnerships, population sizes, and geographic distances, the lesson guides readers through the process of creating various plots while exploring urban and demographic patterns. Thu, 27 Mar 2025 00:00:00 +0000 https://programminghistorian.org/en/lessons/urban-demographic-data-r-ggplot2 https://programminghistorian.org/en/lessons/urban-demographic-data-r-ggplot2 Simulating Historical Communication Networks in Python This lesson will introduce the core concepts, methodologies and discussions surrounding simulation methods for historical inquiry. You will learn the basics of programming a simulation model by building an Agent-Based Model of historical letter exchanges using the Python library mesa. Wed, 22 Jan 2025 00:00:00 +0000 https://programminghistorian.org/en/lessons/simulating-historical-communication-networks-python https://programminghistorian.org/en/lessons/simulating-historical-communication-networks-python Analyzing Multilingual French and Russian Text using NLTK, spaCy, and Stanza This lesson covers tokenization, part-of-speech tagging, and lemmatization, as well as automatic language detection, for non-English and multilingual text. You’ll learn how to use the Python packages NLTK, spaCy, and Stanza to analyze a multilingual Russian and French text. Wed, 13 Nov 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/analyzing-multilingual-text-nltk-spacy-stanza https://programminghistorian.org/en/lessons/analyzing-multilingual-text-nltk-spacy-stanza Text Mining YouTube Comment Data with Wordfish in R In this lesson, you will learn how to download YouTube video comments and use the R programming language to analyze the dataset with Wordfish, an algorithm designed to identify opposing ideological perspectives within a corpus. Wed, 07 Aug 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/text-mining-youtube-comments https://programminghistorian.org/en/lessons/text-mining-youtube-comments Facial Recognition in Historical Photographs with Artificial Intelligence in Python In this lesson, you’ll learn computer vision and machine learning principles for object recognition, and how to apply these principles using Python to recognize and classify smiling faces in historical photographs. Tue, 25 Jun 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/facial-recognition-ai-python https://programminghistorian.org/en/lessons/facial-recognition-ai-python Working with Named Places: How and Why to Build a Gazetteer A digital gazetteer records information associated with specific places. This lesson teaches you how to create a gazetteer from a historical text, using the Linked Places Delimited (LP-TSV) format. Wed, 27 Mar 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/space-place-gazetteers https://programminghistorian.org/en/lessons/space-place-gazetteers Designing a Deck of Timeline Cards for Tabletops and Tabletop Simulator This lesson demonstrates how to use nanDECK to design and publish your own deck of printed or digital playing cards, and use them to test a group's knowledge of historical events through a _Timeline_-like game mechanic. This lesson will also highlight best practices for handling digitized historical objects. Mon, 18 Mar 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/designing-a-timeline-tabletop-simulator https://programminghistorian.org/en/lessons/designing-a-timeline-tabletop-simulator Gestionar fuentes primarias digitales con Tropy El propósito de este tutorial es mostrar a los investigadores cómo iniciar un proyecto de Tropy con el fin de gestionar las imágenes digitales de sus fuentes primarias. https://programminghistorian.org/es/lecciones/gestionar-fuentes-primarias-digitales-con-tropy https://programminghistorian.org/es/lecciones/gestionar-fuentes-primarias-digitales-con-tropy Utilizar Datos Abiertos Enlazados para describir revistas académicas con Wikidata Esta lección introduce Wikidata y proporciona una guía paso a paso para integrar metadatos de revistas y personas utilizando datos abiertos enlazados. Explora las mejores prácticas para insertar y gestionar los metadatos en Wikidata, con el fin de incrementar la visibilidad y accesibilidad de recursos en entornos digitales. https://programminghistorian.org/es/lecciones/datos-abiertos-enlazados-wikidata https://programminghistorian.org/es/lecciones/datos-abiertos-enlazados-wikidata Georreferenciación y visualización de itinerarios con Recogito y Visone En este tutorial aprenderás sobre tecnologías de anotación, georreferenciación y visualización de datos en un flujo de trabajo con dos softwares gratuitos que se han venido desarrollando al interior de la comunidad global de humanistas digitales, Recogito y Visone. No exploraremos todas las posibilidades de estas herramientas, sino que apenas usaremos las que nos permitirán visualizar un itinerario sobre un mapa. https://programminghistorian.org/es/lecciones/georreferenciacion-visualizacion-con-recogito-y-visone https://programminghistorian.org/es/lecciones/georreferenciacion-visualizacion-con-recogito-y-visone Uso de las colecciones del HathiTrust para el análisis de textos literarios en R Esta lección demustra los pasos para crear un conjunto de datos de textos usando la API de la biblioteca digital HathiTrust. Los datos obtenidos permitirán aplicar técnicas de minería textual para estudiar los textos. https://programminghistorian.org/es/lecciones/uso-las-colecciones-hathitrust-mineria-textual-R https://programminghistorian.org/es/lecciones/uso-las-colecciones-hathitrust-mineria-textual-R Análisis de redes sociales de personajes teatrales (parte 2) En esta lección aprenderás a realizar un Análisis de Redes Sociales con los personajes de un texto teatral. Aprenderás sobre la importación de datos a Gephi, la creación de visualizaciones, la implementación de medidas y algoritmos, y el análisis e interpretación de los resultados. https://programminghistorian.org/es/lecciones/analisis-redes-sociales-teatro-2 https://programminghistorian.org/es/lecciones/analisis-redes-sociales-teatro-2 Análisis de redes sociales de personajes teatrales (parte 1) En esta lección aprenderás a realizar un Análisis de Redes Sociales a partir de los personajes de un texto teatral. Esta primera parte sienta las bases de la metodología y se centra en la extracción y estructuración de los datos. https://programminghistorian.org/es/lecciones/analisis-redes-sociales-teatro-1 https://programminghistorian.org/es/lecciones/analisis-redes-sociales-teatro-1 Generadores de texto e imágenes usando gramáticas libres de contexto en Aventura.js Esta lección te enseña a crear generadores de texto e imágenes usando la librería Aventura.js para el lenguaje de programación JavaScript https://programminghistorian.org/es/lecciones/generadores-aventura https://programminghistorian.org/es/lecciones/generadores-aventura Introducción al web scraping usando R En esta lección conocerás la técnica de adquisición de datos conocida como web scraping y aprenderás a extraer datos textuales publicados en una página web. https://programminghistorian.org/es/lecciones/introduccion-al-web-scraping-usando-r https://programminghistorian.org/es/lecciones/introduccion-al-web-scraping-usando-r Creación de aplicaciones web interactivas con R y Shiny Esta lección demuestra cómo crear un mapa web interactivo usando R y Shiny. En la lección, diseñarás e implementarás una aplicación simple, que consiste en un control deslizante que permite a los usuarios seleccionar un rango de fechas y mostrar un conjunto de puntos correspondientes en un mapa interactivo. Wed, 26 Apr 2023 00:00:00 +0000 https://programminghistorian.org/es/lecciones/creacion-de-aplicacion-shiny https://programminghistorian.org/es/lecciones/creacion-de-aplicacion-shiny Lectura Escalable de Datos Estructurados En esta lección introduciremos la lectura escalable y cómo aplicar este flujo de trabajo a tus análisis de datos estructurados Wed, 30 Oct 2024 00:00:00 +0000 https://programminghistorian.org/es/lecciones/lectura-escalable-de-datos-estructurados https://programminghistorian.org/es/lecciones/lectura-escalable-de-datos-estructurados Enrichir ses données avec le processus de réconciliation d’OpenRefine Cette leçon vous initie à enrichir un jeu de données de recherche avec d’autres données liées provenant de sources externes telles que Wikidata. Cet enrichissement, basé sur un processus nommé &laquo;&nbsp;réconciliation&nbsp;&raquo;, est géré par OpenRefine. https://programminghistorian.org/fr/lecons/enrichir-donnees-reconciliation-openrefine https://programminghistorian.org/fr/lecons/enrichir-donnees-reconciliation-openrefine Préserver et rendre identifiables les logiciels de recherche avec Software Heritage Cette leçon présente des modalités d'archivage adaptées aux spécificités du logiciel et à différents profils d’utilisateur·ices. Les bonnes pratiques pour citer les logiciels, ainsi que des méthodes pour explorer efficacement les fonds de Software Heritage, seront abordées. https://programminghistorian.org/fr/lecons/preserver-logiciels-recherche https://programminghistorian.org/fr/lecons/preserver-logiciels-recherche Des sources aux données, concevoir une base de données en sciences humaines et sociales avec nodegoat Cette leçon permet de prendre en main le logiciel nodegoat pour construire une base de données relationnelle dans le cadre d'une recherche en sciences humaines. https://programminghistorian.org/fr/lecons/concevoir-base-donnees-nodegoat https://programminghistorian.org/fr/lecons/concevoir-base-donnees-nodegoat Créer des visualisations interactives avec Plotly Cette leçon montre comment créer des visualisations de données interactives avec la bibliothèque &laquo;&nbsp;open source&nbsp;&raquo; Plotly. Le jeu de données utilisé provient du ministère de l'éducation nationale, et comptabilise le nombre de personnes admises aux différents baccalauréats. Wed, 24 Sep 2025 00:00:00 +0000 https://programminghistorian.org/fr/lecons/visualisations-interactives-plotly https://programminghistorian.org/fr/lecons/visualisations-interactives-plotly La reconnaissance automatique d'écriture à l'épreuve des langues peu dotées Ce tutoriel a pour but de décrire les bonnes pratiques pour la création d'ensembles de données et la spécialisation des modèles en fonction d'un projet HTR (*Handwritten Text Recognition*) ou OCR (*Optical Character Recognition*) sur des documents qui n'utilisent pas l'alphabet latin et donc pour lesquels il n'existe pas ou très peu de données d'entraînement déjà disponibles. Le tutoriel a ainsi pour but de montrer des approches de *minimal computing* (ou d'investissement technique minimal) pour l'analyse de collections numériques à grande échelle pour des langues peu dotées. Notre tutoriel se concentrera sur un exemple en grec ancien, puis proposera une ouverture sur le traitement d'écritures arabes maghrébines manuscrites. https://programminghistorian.org/fr/lecons/transcription-automatisee-graphies-non-latines https://programminghistorian.org/fr/lecons/transcription-automatisee-graphies-non-latines Introduction à Heurist Ce tutoriel présente l'utilisation d'Heurist, un logiciel de gestion de base de données dédié aux sciences humaines et sociales. En s'appuyant sur un jeu de données de sites de fouilles archéologiques, il illustre le fonctionnement d'Heurist et ses fonctionnalités. https://programminghistorian.org/fr/lecons/introduction-a-heurist https://programminghistorian.org/fr/lecons/introduction-a-heurist Détecter la réutilisation de texte avec Passim Dans cette leçon, vous serez initié à la détection automatique de la réutilisation des textes avec la bibliothèque Passim. Vous apprendrez comment installer et exécuter Passim et ses dépendances, comment préparer vos textes en tant que fichiers d'entrée adaptés à l'utilisation de Passim et, enfin, comment traiter la sortie générée par Passim pour effectuer des analyses de base. Fri, 10 Sep 2021 00:00:00 +0000 https://programminghistorian.org/fr/lecons/detecter-la-reutilisation-de-texte-avec-passim https://programminghistorian.org/fr/lecons/detecter-la-reutilisation-de-texte-avec-passim Calibrer des âges radiocarbone avec R Cette leçon vous apprend à calibrer des âges radiocarbone avec R. Après un rappel sur le principe du radiocarbone et les enjeux de la calibration, cette leçon explique pas à pas comment réaliser la calibration d'un ensemble de dates et comment explorer et présenter les résultats. https://programminghistorian.org/fr/lecons/calibration-radiocarbone-avec-r https://programminghistorian.org/fr/lecons/calibration-radiocarbone-avec-r Introduction aux carnets Jupyter Les carnets Jupyter proposent un environnement dans lequel il est possible de combiner librement le code informatique et le texte en langage naturel. Cette leçon explique comment installer le logiciel Jupyter Notebook, comment créer et exécuter des carnets Jupyter, et dans quels contextes ces carnets peuvent se révéler particulièrement utiles. Wed, 21 Oct 2020 00:00:00 +0000 https://programminghistorian.org/fr/lecons/introduction-aux-carnets-jupyter-notebooks https://programminghistorian.org/fr/lecons/introduction-aux-carnets-jupyter-notebooks Analyse de documents avec TF-IDF Cette leçon présente une méthode de traitement automatique des langues et de recherche d'informations nommée Term Frequency - Inverse Document Frequency (tf-idf). Elle en expose les fondations et introduit à l'occasion des questions et des concepts liés à l'analyse de textes. Mon, 27 Jun 2022 00:00:00 +0000 https://programminghistorian.org/fr/lecons/analyse-de-documents-avec-tfidf https://programminghistorian.org/fr/lecons/analyse-de-documents-avec-tfidf Investigar a literatura lusófona através dos tempos usando a Literateca Esta lição ensina a utilizar o projeto Acesso a corpos / Disponibilização de corpos (AC/DC) para analisar textos literários em português, apresentando os resultados da pesquisa através de vários tipos de visualização produzidos com a linguagem R. https://programminghistorian.org/pt/licoes/investigar-literatura-lusofona-literateca https://programminghistorian.org/pt/licoes/investigar-literatura-lusofona-literateca Visualização básica de dados tabulares com R Nesta lição são apresentadas algumas formas básicas de interagir com o R, detalhando o conceito de folha de registo (em inglês, "dataframe"), sua inspeção, manipulação e modificação. Também é dada uma introdução a visualizações simples, como os gráficos de barras e de caixa. https://programminghistorian.org/pt/licoes/visualizacao-basica-dados-tabulares-r https://programminghistorian.org/pt/licoes/visualizacao-basica-dados-tabulares-r Git como ferramenta metodológica em projetos de História (parte 1) A lição procura caracterizar sistemas de controlo de versões, tendo o Git como exemplo, e analisar as possibilidades do seu uso para a pesquisa em História. Para tanto, pretende-se apresentar detalhadamente as principais funções e recursos do Git para o controlo de versões localmente, desde a configuração inicial do programa até à sua aplicação em um exemplo prático. https://programminghistorian.org/pt/licoes/git-ferramenta-metodologica-projetos-historia-1 https://programminghistorian.org/pt/licoes/git-ferramenta-metodologica-projetos-historia-1 Sumarização de narrativas acerca de eventos do passado documentados na web utilizando Python: o caso do Arquivo.pt Nesta lição aprenderá a criar automaticamente resumos de eventos do passado a partir de conteúdos históricos arquivados da web. Em particular, demonstraremos como obter resultados relevantes ao combinar o uso da API do Arquivo.pt com a utilização do *Conta-me Histórias* permitindo, desta forma, processar um elevado volume de dados num curto espaço de tempo. https://programminghistorian.org/pt/licoes/sumarizacao-narrativas-web-python https://programminghistorian.org/pt/licoes/sumarizacao-narrativas-web-python Reconhecimento automático de manuscritos para o teste de idiomas não latinos Este tutorial tem como objetivo descrever as boas práticas para a criação de conjuntos de dados e para a especialização dos modelos em função de um projeto HTR (Handwritten Text Recognition – em português, Reconhecimento de Texto Manuscrito) ou OCR (Optical Character Recoginition – em português, Reconhecimento Ótico de Caracteres) de documentos que não utilizam o alfabeto latino e, portanto, para os quais não existe ou é muito escassa a existência de dados para processamento. Assim, este tutorial visa mostrar abordagens de "minimal computing" (em português, computação mínima) para analisar coleções digitais de grande escala em línguas não latinas. O nosso tutorial concentrar-se-á num exemplo em grego antigo, propondo uma abertura ao tratamento de manuscritos em árabe magrebino. Fri, 15 Mar 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/transcricao-automatica-grafias-nao-latinas https://programminghistorian.org/pt/licoes/transcricao-automatica-grafias-nao-latinas Criando uma aplicação Web interativa com R e Shiny Esta lição demonstra como construir um mapa interativo na web usando R e a biblioteca Shiny. Na lição, será projetado e implementado um aplicativo simples, que consiste num controlo deslizante que permite ao usuário selecionar um intervalo de datas e exibir um conjunto de pontos correspondentes num mapa interativo. Sat, 14 Oct 2023 00:00:00 +0000 https://programminghistorian.org/pt/licoes/aplicacao-web-interativa-r-shiny-leaflet https://programminghistorian.org/pt/licoes/aplicacao-web-interativa-r-shiny-leaflet Algoritmos de agrupamento (clustering) utilizando scikit-learn em Python Este tutorial demonstra como aplicar algoritmos de agrupamento (clustering) utilizando Python a conjuntos de dados com duas aplicações práticas concretas. O primeiro exemplo utiliza os algoritmos de agrupamento para identificar grupos autoritários de autores Greco-romanos baseados nas suas publicações e respetiva receções. O segundo caso utiliza os mesmos algoritmos sobre dados textuais para descobrir grupos semânticos. Após terminar este tutorial conseguirá utilizar a biblioteca scikit-learn de Python em tarefas de agrupamento nos seus próprios conjuntos de dados, adicionando assim um método indispensável na sua caixa de ferramentas de análise exploratória de dados. Thu, 03 Oct 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/algoritmos-agrupamento-scikit-learn-python https://programminghistorian.org/pt/licoes/algoritmos-agrupamento-scikit-learn-python Introdução à codificação de textos em TEI (parte 1) Com esta lição, (a primeira de duas partes) aprenderá as bases de TEI-XML para codificar textos Fri, 11 Mar 2022 00:00:00 +0000 https://programminghistorian.org/pt/licoes/introducao-codificacao-textos-tei-1 https://programminghistorian.org/pt/licoes/introducao-codificacao-textos-tei-1 Visualização e animação de tabelas históricas com R Esta lição lhe mostrará como cruzar referências, produzir gráficos e animar um conjunto de dados históricos disponíveis numa tabela. Fri, 19 Nov 2021 00:00:00 +0000 https://programminghistorian.org/pt/licoes/visualizacao-animacao-tabelas-historicas-R https://programminghistorian.org/pt/licoes/visualizacao-animacao-tabelas-historicas-R Análise de sentimentos em R com 'syuzhet' Esta lição ensina uma maneira de obter e analisar dados sobre emoções e sentimentos em uma narrativa. Wed, 02 Mar 2022 00:00:00 +0000 https://programminghistorian.org/pt/licoes/analise-sentimento-R-syuzhet https://programminghistorian.org/pt/licoes/analise-sentimento-R-syuzhet From Sources to Data: Designing a Database for the Humanities and Social Sciences with nodegoat This lesson teaches you how to use the nodegoat software to build a relational database for research in the humanities. Thu, 29 Feb 2024 00:00:00 +0000 https://programminghistorian.org/en/lessons/designing-database-nodegoat https://programminghistorian.org/en/lessons/designing-database-nodegoat Introduction to Encoding Texts in TEI (Part 1) This lesson teaches you the basics of using TEI-XML to encode texts, and demonstrates how to create a minimal TEI document. Part 2 of this lesson is forthcoming. Tue, 27 Jul 2021 00:00:00 +0000 https://programminghistorian.org/en/lessons/encoding-texts-tei-1 https://programminghistorian.org/en/lessons/encoding-texts-tei-1 Corpus Analysis with Voyant Tools In this lesson, you will learn how to organise a set of texts into a corpus and perform some basic linguistic analysis using the Voyant Tools platform. Sat, 20 Apr 2019 00:00:00 +0000 https://programminghistorian.org/en/lessons/corpus-analysis-voyant-tools https://programminghistorian.org/en/lessons/corpus-analysis-voyant-tools Calibrating Radiocarbon Dates with R After reviewing the basic principles and challenges of radiocarbon dating, this lesson teaches you how to use the R programming language to calibrate a set of dates, and then explore and present your results. Wed, 24 Mar 2021 00:00:00 +0000 https://programminghistorian.org/en/lessons/calibrating-radiocarbon-dates-r https://programminghistorian.org/en/lessons/calibrating-radiocarbon-dates-r Sentiment Analysis with 'syuzhet' using R This lesson teaches you how to obtain and analyse narrative texts for patterns of sentiment and emotion. Tue, 23 Mar 2021 00:00:00 +0000 https://programminghistorian.org/en/lessons/sentiment-analysis-syuzhet https://programminghistorian.org/en/lessons/sentiment-analysis-syuzhet Introduction to Map Warper This lesson introduces basic use of Map Warper for historical maps. It guides you from upload to export, demonstrating methods for georeferencing and producing visualizations. Wed, 17 Nov 2021 00:00:00 +0000 https://programminghistorian.org/en/lessons/introduction-map-warper https://programminghistorian.org/en/lessons/introduction-map-warper Downloading Web Pages with Python This lesson introduces Uniform Resource Locators (URLs) and explains how to use Python to download and save the contents of a web page to your local hard drive. Tue, 17 Jul 2012 00:00:00 +0000 https://programminghistorian.org/en/lessons/working-with-web-pages https://programminghistorian.org/en/lessons/working-with-web-pages Working with Text Files in Python In this lesson you will learn how to manipulate text files using Python. Tue, 17 Jul 2012 00:00:00 +0000 https://programminghistorian.org/en/lessons/working-with-text-files https://programminghistorian.org/en/lessons/working-with-text-files Working with batches of PDF files Learn how to perform OCR and text extraction with free command line tools like Tesseract and Poppler and how to get an overview of large numbers of PDF documents using topic modeling. Thu, 30 Jan 2020 00:00:00 +0000 https://programminghistorian.org/en/lessons/working-with-batches-of-pdf-files https://programminghistorian.org/en/lessons/working-with-batches-of-pdf-files Setting Up an Integrated Development Environment for Python (Windows) This lesson will help you set up an integrated development environment for Python on a computer running the Windows operating system. Tue, 17 Jul 2012 00:00:00 +0000 https://programminghistorian.org/en/lessons/windows-installation https://programminghistorian.org/en/lessons/windows-installation Lectura Escalable de Datos Estructurados En esta lección introduciremos la lectura escalable y cómo aplicar este flujo de trabajo a tus análisis de datos estructurados Wed, 30 Oct 2024 00:00:00 +0000 https://programminghistorian.org/es/lecciones/lectura-escalable-de-datos-estructurados https://programminghistorian.org/es/lecciones/lectura-escalable-de-datos-estructurados Creación de aplicaciones web interactivas con R y Shiny Esta lección demuestra cómo crear un mapa web interactivo usando R y Shiny. En la lección, diseñarás e implementarás una aplicación simple, que consiste en un control deslizante que permite a los usuarios seleccionar un rango de fechas y mostrar un conjunto de puntos correspondientes en un mapa interactivo. Wed, 26 Apr 2023 00:00:00 +0000 https://programminghistorian.org/es/lecciones/creacion-de-aplicacion-shiny https://programminghistorian.org/es/lecciones/creacion-de-aplicacion-shiny Descargar múltiples registros mediante cadenas de consulta Descargar un solo registro de un sitio web es fácil, aunque la descarga de muchos registros a la vez –una necesidad cada vez más frecuente– es mucho más eficiente utilizando un lenguaje de programación como Python. En esta lección escribiremos un programa que descargará una serie de registros del Old Bailey Online usando criterios de búsqueda personalizada y los guardará en un directorio de nuestro equipo. Sat, 30 Jul 2022 00:00:00 +0000 https://programminghistorian.org/es/lecciones/descarga-multiples-registros-usando-cadenas-de-consulta https://programminghistorian.org/es/lecciones/descarga-multiples-registros-usando-cadenas-de-consulta Análisis de correspondencia para la investigación histórica usando R Este tutorial explica cómo implementar e interpretar un análisis de correspondencia, el que puede ser utilizado para identificar relaciones entre datos categóricos. Mon, 11 Apr 2022 00:00:00 +0000 https://programminghistorian.org/es/lecciones/analisis-de-correspondencia-en-r https://programminghistorian.org/es/lecciones/analisis-de-correspondencia-en-r Creación de sitios estáticos con Jekyll y GitHub Pages Esta lección te ayudará a crear un sitio web seguro completamente gratuito, fácil de mantener y sobre el que tendrás control total, como un blog académico, un sitio web de proyectos o un portafolio en línea. Mon, 01 Mar 2021 00:00:00 +0000 https://programminghistorian.org/es/lecciones/sitios-estaticos-con-jekyll-y-github-pages https://programminghistorian.org/es/lecciones/sitios-estaticos-con-jekyll-y-github-pages Introducción a la transcodificación, edición y visualización de datos audiovisuales con FFmpeg Esta lección introduce las funciones básicas de FFmpeg, una herramienta libre de línea de comandos utilizada para manipular y analizar materiales audiovisuales. Fri, 11 Dec 2020 00:00:00 +0000 https://programminghistorian.org/es/lecciones/introduccion-a-ffmpeg https://programminghistorian.org/es/lecciones/introduccion-a-ffmpeg Georreferenciar con QGIS 2.0 En esta lección aprenderás cómo georreferenciar mapas históricos para que puedan añadirse a un SIG (Sistema de Información Geográfica) como una capa ráster. Fri, 05 Jun 2020 00:00:00 +0000 https://programminghistorian.org/es/lecciones/georreferenciar-qgis https://programminghistorian.org/es/lecciones/georreferenciar-qgis Análisis de redes temporal en R Aprende a utilizar R para analizar cómo cambian las redes a lo largo del tiempo. Tue, 23 Apr 2019 00:00:00 +0000 https://programminghistorian.org/es/lecciones/analisis-temporal-red https://programminghistorian.org/es/lecciones/analisis-temporal-red Descarga automatizada con Wget Wget es un programa útil que se ejecuta a través de la línea de comandos de tu computadora. Sirve para recuperar material en línea. Thu, 29 Nov 2018 00:00:00 +0000 https://programminghistorian.org/es/lecciones/descarga-automatizada-con-wget https://programminghistorian.org/es/lecciones/descarga-automatizada-con-wget Introducción a Topic Modeling y MALLET Esta lección explica qué es *topic modeling* y por qué podrías querer utilizarlo en tus investigaciones. Luego aprenderás cómo instalar y trabajar con MALLET, una caja de herramientas para procesamiento de lenguajes naturales (PLN) con la que *topic modeling* se puede llevar a la práctica. Wed, 31 Oct 2018 00:00:00 +0000 https://programminghistorian.org/es/lecciones/topic-modeling-y-mallet https://programminghistorian.org/es/lecciones/topic-modeling-y-mallet Créer des visualisations interactives avec Plotly Cette leçon montre comment créer des visualisations de données interactives avec la bibliothèque &laquo;&nbsp;open source&nbsp;&raquo; Plotly. Le jeu de données utilisé provient du ministère de l'éducation nationale, et comptabilise le nombre de personnes admises aux différents baccalauréats. Wed, 24 Sep 2025 00:00:00 +0000 https://programminghistorian.org/fr/lecons/visualisations-interactives-plotly https://programminghistorian.org/fr/lecons/visualisations-interactives-plotly Compter et exploiter ses donnees de recherche avec Unix Cette leçon montre comment les données de la recherche, lorsqu'elles sont classées de manière claire et prévisible, peuvent être décomptées et explorées grâce au shell Unix. Wed, 17 Sep 2025 00:00:00 +0000 https://programminghistorian.org/fr/lecons/compter-exploiter-donnees-unix https://programminghistorian.org/fr/lecons/compter-exploiter-donnees-unix Gestion et manipulation des données avec R Cette leçon guide les chercheurs et chercheuses dans l'organisation de leurs données pour les rendre &laquo;&nbsp;propres&nbsp;&raquo;, et les aide à prendre en main les packages R qui leur permettront de conduire des analyses de base sur ces données. Wed, 08 Jan 2025 00:00:00 +0000 https://programminghistorian.org/fr/lecons/gestion-manipulation-donnees-r https://programminghistorian.org/fr/lecons/gestion-manipulation-donnees-r Normaliser des données textuelles avec Python L'objectif de cette leçon est de reprendre la liste créée dans la leçon &laquo;&nbsp;Du HTML à une liste de mots&nbsp;&raquo; et de la rendre plus simple à analyser en normalisant ses données. Thu, 05 Sep 2024 00:00:00 +0000 https://programminghistorian.org/fr/lecons/normaliser-donnees-textuelles-python https://programminghistorian.org/fr/lecons/normaliser-donnees-textuelles-python Analyse de réseau avec Python Cette leçon présente différents indicateurs de réseau et la manière de les interpréter lorsque l'on travaille avec des données relationnelles en sciences humaines et sociales. Vous apprendrez à utiliser la bibliothèque Python NetworkX pour calculer et interpréter ces indicateurs. Fri, 26 Apr 2024 00:00:00 +0000 https://programminghistorian.org/fr/lecons/analyse-reseau-python https://programminghistorian.org/fr/lecons/analyse-reseau-python Introduction à l'interface en ligne de commande Bash et Zsh Cette leçon vous apprendra comment entrer des commandes dans une interface en ligne de commande, plutôt qu'à travers une interface graphique. Les interfaces en ligne de commande présentent des avantages pour les utilisateurs qui ont besoin de plus de précision dans leur travail. Elles permettent de détailler le lancement de certains programmes, en autorisant l'ajout d'argument pour spécifier exactement la façon dont vous voulez que votre programme se lance. De plus, il est possible de les automatiser facilement en créant des scripts, qui peuvent être considérés comme des recettes (une suite d'instructions précises) reposant sur des commandes au format textuel. Wed, 24 Apr 2024 00:00:00 +0000 https://programminghistorian.org/fr/lecons/intro-a-bash-et-zsh https://programminghistorian.org/fr/lecons/intro-a-bash-et-zsh Démarrer avec Omeka Classic Omeka.net permet de créer un site web facilement afin de valoriser une collection de contenus. Cette leçon explique comment créer un site Omeka, le configurer, y ajouter des extensions et des contenus, et organiser ces contenus en collections. Tue, 19 Mar 2024 00:00:00 +0000 https://programminghistorian.org/fr/lecons/demarrer-avec-omeka-classic https://programminghistorian.org/fr/lecons/demarrer-avec-omeka-classic Du HTML à une liste de mots (partie 2) Dans cette leçon, nous allons implémenter l'algorithme découvert dans la leçon &laquo;&nbsp;Du HTML à une liste de mots, partie 1&nbsp;&raquo;, afin d'apprendre à découper une chaine de caractères en une liste de mots. Thu, 09 Nov 2023 00:00:00 +0000 https://programminghistorian.org/fr/lecons/du-html-a-une-liste-de-mots-2 https://programminghistorian.org/fr/lecons/du-html-a-une-liste-de-mots-2 Analyser des données tabulaires avec R Cette leçon montre comment analyser rapidement de grands jeux de données tabulaires, pour rendre la recherche plus rapide et plus efficace. Fri, 29 Sep 2023 00:00:00 +0000 https://programminghistorian.org/fr/lecons/analyse-donnees-tabulaires-R https://programminghistorian.org/fr/lecons/analyse-donnees-tabulaires-R Du HTML à une liste de mots (partie 1) Dans cette leçon en deux parties, nous allons utiliser les compétences acquises dans la leçon &laquo;&nbsp;Télécharger des pages web avec Python&nbsp;&raquo;, et voir comment supprimer les *balises HTML* de la page de la transcription du procès-verbal de Benjamin Bowsey en 1780 dans le but de créer un texte propre et réutilisable. Nous réaliserons cette tâche en utilisant les *opérateurs et méthodes de chaines de caractères* propres à Python, ainsi que nos compétences relatives à la *lecture attentive*. Nous introduirons ensuite les concepts de *boucles* et *d’instructions conditionnelles* afin de répéter notre processus de traitement et de tester certaines conditions nous permettant de séparer le contenu des balises HTML. Pour finir, nous convertirons les données obtenues et enregistrées sous la forme d’un texte sans balises HTML en une *liste de mots* qui pourra par la suite être triée, indexée et investie lors d’analyses statistiques. Wed, 13 Sep 2023 00:00:00 +0000 https://programminghistorian.org/fr/lecons/du-html-a-une-liste-de-mots-1 https://programminghistorian.org/fr/lecons/du-html-a-une-liste-de-mots-1 Introdução ao Map Warper Nesta lição aprenderá à georreferenciar imagens digitais com informação geográfica e vinculá-la a sistemas de informação geográfica. Thu, 18 Dec 2025 00:00:00 +0000 https://programminghistorian.org/pt/licoes/introducao-map-warper https://programminghistorian.org/pt/licoes/introducao-map-warper Utilizar Gazetteers para Extrair Conjuntos de Palavras-chave de Textos Corridos Esta lição irá ensiná-lo a usar o Python para extrair um conjunto de palavras-chave rapidamente e de forma sistemática de um conjunto de textos. Wed, 22 Jan 2025 00:00:00 +0000 https://programminghistorian.org/pt/licoes/extrair-palavras-chave https://programminghistorian.org/pt/licoes/extrair-palavras-chave Instalando o QGIS e adicionando camadas Nessa lição, fará a instalação do programa QGIS, o downloado de arquivos geoespaciais como shapefiles e GeoTIFFs, e a criação de um mapa a partir de vários vetores e camadas raster. Wed, 15 Jan 2025 00:00:00 +0000 https://programminghistorian.org/pt/licoes/qgis-camadas https://programminghistorian.org/pt/licoes/qgis-camadas Geocodificando Dados Históricos com o QGIS Aprenda a usar o QGIS para converter listas de nomes de lugares em coordenadas geográficas, permitindo que os mapeie. Wed, 15 Jan 2025 00:00:00 +0000 https://programminghistorian.org/pt/licoes/geocodificando-qgis https://programminghistorian.org/pt/licoes/geocodificando-qgis Introdução à Linha de Comando Bash Essa lição lhe ensinará como enviar comandos utilizando uma interface de linha de comando, ao invés de uma interface gráfica. Interfaces de linha de comando possuem vantagens para usuários de computador que precisam de maior precisão em seu trabalho, como historiadores(as) digitais. Permitem mais detalhamento ao rodar alguns programas, visto que você pode adicionar modificações para especificar exatamente como deseja que um programa seja executado. Além do mais, podem ser facilmente automatizados através de scripts, que são basicamente conjuntos de comandos baseados em texto. Wed, 11 Dec 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/introducao-linha-comando-bash https://programminghistorian.org/pt/licoes/introducao-linha-comando-bash Algoritmos de agrupamento (clustering) utilizando scikit-learn em Python Este tutorial demonstra como aplicar algoritmos de agrupamento (clustering) utilizando Python a conjuntos de dados com duas aplicações práticas concretas. O primeiro exemplo utiliza os algoritmos de agrupamento para identificar grupos autoritários de autores Greco-romanos baseados nas suas publicações e respetiva receções. O segundo caso utiliza os mesmos algoritmos sobre dados textuais para descobrir grupos semânticos. Após terminar este tutorial conseguirá utilizar a biblioteca scikit-learn de Python em tarefas de agrupamento nos seus próprios conjuntos de dados, adicionando assim um método indispensável na sua caixa de ferramentas de análise exploratória de dados. Thu, 03 Oct 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/algoritmos-agrupamento-scikit-learn-python https://programminghistorian.org/pt/licoes/algoritmos-agrupamento-scikit-learn-python Download Automático com Wget O Wget é um programa muito útil, que corre no computador através da linha de comandos, para facilitar o acesso a material online. Thu, 13 Jun 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/download-automatico-wget https://programminghistorian.org/pt/licoes/download-automatico-wget Reconhecimento automático de manuscritos para o teste de idiomas não latinos Este tutorial tem como objetivo descrever as boas práticas para a criação de conjuntos de dados e para a especialização dos modelos em função de um projeto HTR (Handwritten Text Recognition – em português, Reconhecimento de Texto Manuscrito) ou OCR (Optical Character Recoginition – em português, Reconhecimento Ótico de Caracteres) de documentos que não utilizam o alfabeto latino e, portanto, para os quais não existe ou é muito escassa a existência de dados para processamento. Assim, este tutorial visa mostrar abordagens de "minimal computing" (em português, computação mínima) para analisar coleções digitais de grande escala em línguas não latinas. O nosso tutorial concentrar-se-á num exemplo em grego antigo, propondo uma abertura ao tratamento de manuscritos em árabe magrebino. Fri, 15 Mar 2024 00:00:00 +0000 https://programminghistorian.org/pt/licoes/transcricao-automatica-grafias-nao-latinas https://programminghistorian.org/pt/licoes/transcricao-automatica-grafias-nao-latinas Criando uma aplicação Web interativa com R e Shiny Esta lição demonstra como construir um mapa interativo na web usando R e a biblioteca Shiny. Na lição, será projetado e implementado um aplicativo simples, que consiste num controlo deslizante que permite ao usuário selecionar um intervalo de datas e exibir um conjunto de pontos correspondentes num mapa interativo. Sat, 14 Oct 2023 00:00:00 +0000 https://programminghistorian.org/pt/licoes/aplicacao-web-interativa-r-shiny-leaflet https://programminghistorian.org/pt/licoes/aplicacao-web-interativa-r-shiny-leaflet Introdução ao Jupyter Notebook Jupyter Notebook fornece um ambiente onde você pode trabalhar com facilidade o seu código na linguagem Python. Esta lição descreve como instalar o software Jupyter Notebook, como executar e criar ficheiros para o Jupyter Notebook. Fri, 02 Jun 2023 00:00:00 +0000 https://programminghistorian.org/pt/licoes/introducao-jupyter-notebooks https://programminghistorian.org/pt/licoes/introducao-jupyter-notebooks