1/* ================================================================ 2 curso-videos.js â Catálogo central de vÃdeos del curso. 3 4 ÃNICA fuente de verdad de los vÃdeos. Los archivos de datos 5 (curso-datos.js / curso-datos-en.js) solo guardan la referencia: 6 { t:"video", ref:"cpu-ciclo" } 7 8 Estructura de cada entrada: 9 "<ref>": { 10 es: <variante en castellano> | null si no hay, 11 en: <variante en inglés> | null si no hay 12 } 13 14 Una variante es un vÃdeo HABLADO en ese idioma: 15 yt · id de YouTube 16 start · segundo de inicio (opcional) 17 canal · nombre del canal 18 min · duración, en el idioma de la interfaz { es, en } 19 tit · tÃtulo mostrado, en el idioma de la interfaz { es, en } 20 nota · texto bajo el vÃdeo, en el idioma de la interfaz { es, en } 21 22 OJO: tit/min/nota van por idioma de INTERFAZ, no del vÃdeo. Un vÃdeo 23 inglés visto desde el curso español muestra su ficha en castellano. 24 25 Reglas de resolución (curso-app.js · renderVideo): 26 · Curso ES â pestaña ES por defecto; EN como segunda pestaña. 27 · Curso EN â pestaña EN por defecto; ES como segunda pestaña. 28 · Si falta la variante del idioma activo, se usa la otra en 29 silencio y no se muestra conmutador. 30 ================================================================ */ 31"use strict"; 32 33window.VIDEOS = { 34 "tedx-kayser": { 35 es: null, 36 en: { 37 yt:"69OAhVh6POY", 38 canal:"TEDxTUM · Lin Kayser", 39 min:{ es:"~13 min", en:"~13 min" }, 40 tit:{ es:"Construyamos máquinas tan complejas como la naturaleza", 41 en:"Let's build machines as complex as nature" }, 42 nota:{ es:"La charla TED del propio autor del libro. Explica, con ejemplos visuales impresionantes, qué es la IngenierÃa Computacional y por qué va a transformar la ingenierÃa. Está en inglés: activa los subtÃtulos en español desde el icono de ajustes del reproductor de YouTube.", 43 en:"The TED talk by the very author of the book. With impressive visual examples, it explains what Computational Engineering is and why it is going to transform engineering." } 44 } 45 }, 46 47 "cpu-ciclo": { 48 es: { 49 yt:"-URf73z9tKY", 50 canal:"Aprende conmigo Informática", 51 min:{ es:"~10 min", en:"~10 min" }, 52 tit:{ es:"La CPU: cómo ejecuta una instrucción (captar, descodificar, ejecutar)", 53 en:"The CPU: how it executes an instruction (fetch, decode, execute)" }, 54 nota:{ es:"Para ver «por dentro» lo que cuenta esta lección: cómo la CPU capta instrucciones y datos y los procesa paso a paso. Va algo más a fondo de lo necesario; quédate con la idea del ciclo captar â descodificar â ejecutar.", 55 en:"To see \"inside\" what this lesson describes: how the CPU fetches instructions and data and processes them step by step. It goes a bit deeper than necessary; keep the idea of the fetch â decode â execute cycle." } 56 }, 57 en: { 58 yt:"jFDMZpkUWCw", 59 canal:"Computer Science Lessons", 60 tit:{ es:"El ciclo de la CPU, paso a paso: captar, descodificar, ejecutar", 61 en:"The CPU cycle step by step: fetch, decode, execute" }, 62 nota:{ es:"Animación de lo que cuenta esta lección: cómo la CPU capta cada instrucción, la descodifica y la ejecuta. Entra en detalle de registros; quédate con la idea del ciclo completo.", 63 en:"An animation of what this lesson describes: how the CPU fetches each instruction, decodes it and executes it. It goes into register-level detail; keep the idea of the whole cycle." } 64 } 65 }, 66 67 "variables-tipos": { 68 es: { 69 yt:"QOExkIgWKHM", 70 canal:"Tec Gurus", 71 min:{ es:"~12 min", en:"~12 min" }, 72 tit:{ es:"Variables y tipos de datos en programación", 73 en:"Variables and data types in programming" }, 74 nota:{ es:"Refuerza la idea de variable como «caja con nombre y tipo». Los ejemplos no son de C#, pero el concepto es idéntico en todos los lenguajes.", 75 en:"It reinforces the idea of a variable as a \"box with a name and type\". The examples are not in C#, but the concept is identical in all languages." } 76 }, 77 en: { 78 yt:"Fc9htmvVZ9U", 79 canal:"CS50", 80 tit:{ es:"Tipos de datos: qué cabe en una variable y cuánto ocupa", 81 en:"Data types: what fits in a variable and how much space it takes" }, 82 nota:{ es:"De la serie de vÃdeos cortos de CS50 (Harvard). Explica por qué cada variable tiene un tipo y qué impl
82ica eso en memoria. C# funciona exactamente asÃ: tipado estático.", 83 en:"From CS50's (Harvard) short-video series. It explains why every variable has a type and what that means in memory. C# works exactly this way: static typing." } 84 } 85 }, 86 87 "poo-intro": { 88 es: { 89 yt:"uNlB7141umY", 90 canal:"Soy Dalto", 91 min:{ es:"~10 min", en:"~10 min" }, 92 tit:{ es:"Programación orientada a objetos explicada en 10 minutos", 93 en:"Object-oriented programming explained in 10 minutes" }, 94 nota:{ es:"Un repaso visual y rápido del paradigma que estás leyendo: clases, objetos y los pilares de la orientación a objetos. Ideal para fijar las ideas antes de hacer los ejercicios.", 95 en:"A quick visual review of the paradigm you are reading about: classes, objects and the pillars of object orientation. Ideal for fixing the ideas in place before doing the exercises." } 96 }, 97 en: { 98 yt:"pTB0EiLXUC8", 99 canal:"Programming with Mosh", 100 tit:{ es:"La programación orientada a objetos, explicada sin rodeos", 101 en:"Object-oriented programming, simplified" }, 102 nota:{ es:"Repaso visual y rápido del paradigma que estás leyendo: clases, objetos y por qué existe la orientación a objetos. Ideal para fijar las ideas antes de los ejercicios.", 103 en:"A quick visual review of the paradigm you are reading about: classes, objects and why object orientation exists. Ideal for fixing the ideas in place before the exercises." } 104 } 105 }, 106 107 "compilador-interprete": { 108 es: { 109 yt:"yco1-Xd3Ew4", 110 canal:"Minor Hernández Navarro", 111 min:{ es:"~8 min", en:"~8 min" }, 112 tit:{ es:"Compilador vs. intérprete: diferencias clave", 113 en:"Compiler vs. interpreter: key differences" }, 114 nota:{ es:"Visualiza la diferencia entre compilar (traducir todo de golpe, como hace C#) e interpretar (traducir sobre la marcha, como hace Python).", 115 en:"It visualises the difference between compiling (translating everything at once, as C# does) and interpreting (translating on the fly, as Python does)." } 116 }, 117 en: { 118 yt:"I1f45REi3k4", 119 canal:"Coding Mentors", 120 tit:{ es:"Compilador frente a intérprete: la diferencia clave", 121 en:"Compiler vs interpreter: the key difference" }, 122 nota:{ es:"Visualiza la diferencia entre compilar (traducir todo de golpe, como hace C#) e interpretar (traducir sobre la marcha, como hace Python).", 123 en:"It visualises the difference between compiling (translating everything at once, as C# does) and interpreting (translating on the fly, as Python does)." } 124 } 125 }, 126 127 "csharp-primeros-pasos": { 128 es: { 129 yt:"L-f8u0hwi4Y", 130 start:365, 131 canal:"MoureDev · Brais Moure", 132 min:{ es:"~1 h · ve el tramo del entorno", en:"~1 h · watch the environment section" }, 133 tit:{ es:"Curso de C# desde cero: primeros pasos", 134 en:"C# course from scratch: first steps" }, 135 nota:{ es:"Tutorial práctico de uno de los mejores divulgadores de programación en español. El vÃdeo arranca en el punto en que se prepara el entorno y se escribe el primer programa en C#, con la pantalla a la vista para que lo hagas en paralelo. Tenlo a mano durante todo el Módulo 1.", 136 en:"A hands-on tutorial by one of the best programming educators in Spanish. The video starts at the point where the environment is set up and the first C# program is written, with the screen in view so you can do it in parallel. Keep it handy throughout Module 1." } 137 }, 138 en: { 139 yt:"ZVGutgqBMUM", 140 canal:"Visual Studio Code", 141 tit:{ es:"Preparar el entorno: C# y .NET en VS Code, paso a paso", 142 en:"Setting up: C# and .NET in VS Code, step by step" }, 143 nota:{ es:"GuÃa oficial del equipo de VS Code: instalar el SDK de .NET, añadir la extensión de C# y ejecutar tu primer programa. Es justo lo que necesitas para el Ejercicio 0.", 144 en:"The official guide from the VS Code team: install the .NET SDK, add the C# extension and run your first program. Exactly what you need for Exercise 0." } 145 } 146 }, 147 148 "poo-pilares": { 149 es: { 150 yt:"SI7O81GMG2A", 151 canal:"BitBoss", 152 min:{ es:"~15 min", en:"~15 min" }, 153 tit:{ es:"POO: abstracción, encapsulamiento, herencia y polimorfismo", 154 en:"OOP: abstraction, encapsulation, inheritance and polymorphism" }, 155 nota:{ es:"Una panorámica de los cuatro pilares de la programación orientada a objetos. Te da el mapa completo de lo que vas a aprender en todo este módulo.", 156 en:"An overview of the four pillars of object-oriented programming. It gives you the complete map of what you are going to learn throughout this module." } 157 }, 158 en: { 159 yt:"1ONhXmQuWP8", 160 canal:"Keep On Coding", 161 tit:{ es:"Los cuatro pilares de la POO: abstracción, encapsulamiento, herencia y polimorfismo", 162 en:"The four pillars of OOP: abstraction, encapsulation, inheritance and polymorphism" }, 163 nota:{ es:"Recorre los cuatro pilares con ejemplos de código en pantalla. Son los cuatro conceptos que sostienen todo lo que viene a partir de aquÃ.", 164 en:"It walks through the four pillars with code examples on screen. These are the four concepts that underpin everything from here on." } 165 } 166 }, 167 168 "csharp-herencia": { 169 es: { 170 yt:"jvfUsKQgj88", 171 canal:"PÃldoras Informáticas", 172 min:{ es:"~14 min", en:"~14 min" }, 173 tit:{ es:"Curso C#: herencia â concepto y explicación teórica", 174 en:"C# course: inheritance â concept and theoretical explanation" },
175 nota:{ es:"Una explicación pausada de la herencia en C#, de uno de los canales de formación más veteranos en español. Refuerza la idea de clase base y clase derivada.", 176 en:"A measured explanation of inheritance in C#, from one of the most veteran training channels in Spanish. It reinforces the idea of base class and derived class." } 177 }, 178 en: { 179 yt:"EvSyka9vJho", 180 canal:"Bro Code", 181 tit:{ es:"Herencia en C#: clase base y clases derivadas", 182 en:"Inheritance in C#: base class and derived classes" }, 183 nota:{ es:"Herencia con un ejemplo mÃnimo y directo en C#. FÃjate en cómo la clase derivada reutiliza lo de la base sin repetir una lÃnea de código.", 184 en:"Inheritance with a minimal, direct example in C#. Notice how the derived class reuses the base without repeating a single line of code." } 185 } 186 }, 187 188 "polimorfismo": { 189 es: { 190 yt:"tjjecfz9Cvk", 191 canal:"Fredy Geek", 192 min:{ es:"~9 min", en:"~9 min" }, 193 tit:{ es:"¿Qué es el polimorfismo?", 194 en:"What is polymorphism?" }, 195 nota:{ es:"El polimorfismo explicado de forma visual y breve: cómo una misma función se comporta distinto según el tipo real del objeto.", 196 en:"Polymorphism explained in a visual and brief way: how the same function behaves differently depending on the real type of the object." } 197 }, 198 en: { 199 yt:"nYCMW3kfTvs", 200 canal:"Bro Code", 201 tit:{ es:"Polimorfismo en C#: un mismo método, comportamientos distintos", 202 en:"Polymorphism in C#: one method, different behaviours" }, 203 nota:{ es:"El polimorfismo directamente en C#, asà que ves la sintaxis exacta que vas a escribir tú. Es el pilar que más cuesta al principio: mÃralo dos veces si hace falta.", 204 en:"Polymorphism directly in C#, so you see the exact syntax you will write yourself. It is the pillar that takes longest to click: watch it twice if you need to." } 205 } 206 }, 207 208 "csharp-interfaces": { 209 es: { 210 yt:"Yd5TBVTvfF4", 211 canal:"Felipe Gavilán", 212 min:{ es:"~13 min", en:"~13 min" }, 213 tit:{ es:"Entendiendo las interfaces en C#", 214 en:"Understanding interfaces in C#" }, 215 nota:{ es:"Las interfaces en C# explicadas con ejemplos en código, por uno de los formadores de C# en español más reconocidos. Ideal para ver en pantalla lo que acabas de leer.", 216 en:"Interfaces in C# explained with code examples, by one of the most recognized C# trainers in Spanish. Ideal for seeing on screen what you have just read." } 217 }, 218 en: { 219 yt:"RuhGv81tpoU", 220 canal:"Bro Code", 221 tit:{ es:"Interfaces en C#: el contrato que una clase se compromete a cumplir", 222 en:"Interfaces in C#: the contract a class commits to" }, 223 nota:{ es:"Qué es una interfaz y para qué sirve, con varias clases implementando el mismo contrato. En IngenierÃa Computacional son la forma de tratar geometrÃas distintas con el mismo código.", 224 en:"What an interface is and what it is for, with several classes implementing the same contract. In Computational Engineering they are how you handle different geometries with the same code." } 225 } 226 }, 227 228 "agil-vs-cascada": { 229 es: { 230 yt:"fPPPJWViewA", 231 canal:"Alberto Vázquez · Openinnova", 232 min:{ es:"~9 min", en:"~9 min" }, 233 tit:{ es:"MetodologÃa ágil frente a cascada", 234 en:"Agile methodology versus waterfall" }, 235 nota:{ es:"El contraste entre el modelo en cascada (planificarlo todo antes de empezar) y el enfoque iterativo. Es justo la diferencia de mentalidad que explica esta lección.", 236 en:"The contrast between the waterfall model (planning everything before starting) and the iterative approach. It is exactly the mindset difference that this lesson explains." } 237 }, 238 en: { 239 yt:"XGOxLyWFfl0", 240 canal:"Hussein Nasser", 241 tit:{ es:"Ãgil frente a cascada: dos formas de organizar un proyecto", 242 en:"Agile vs waterfall: two ways to organise a project" },
243 nota:{ es:"Un ingeniero de software contando ambas metodologÃas con ventajas, inconvenientes y ejemplos reales de proyecto. Explica por qué el desarrollo iterativo acabó imponiéndose.", 244 en:"A software engineer walking through both methodologies with pros, cons and real project examples. It explains why iterative development ended up winning." } 245 } 246 }, 247 248 "csharp-enum": { 249 es: { 250 yt:"gj1AA7ZkuSc", 251 canal:"PÃldoras Informáticas", 252 min:{ es:"~12 min", en:"~12 min" }, 253 tit:{ es:"Curso C#: el tipo enum", 254 en:"C# course: the enum type" }, 255 nota:{ es:"El tipo enum en C#, paso a paso: cómo se declara, cómo se usa y por qué conviene cuando un valor solo puede tomar unas pocas opciones concretas.", 256 en:"The enum type in C#, step by step: how it is declared, how it is used and why it is useful when a value can only take a few specific options." } 257 }, 258 en: { 259 yt:"3p0OJErAbEI", 260 canal:"Bro Code", 261 tit:{ es:"El tipo enum en C#: nombres en lugar de números sueltos", 262 en:"The enum type in C#: names instead of loose numbers" }, 263 nota:{ es:"Declaración de un enum, sus valores subyacentes y su uso dentro de un switch. Sirve para que el código se lea como lo que significa, no como una lista de números.", 264 en:"Declaring an enum, its underlying values and using it inside a switch. It makes your code read as what it means, not as a list of numbers." } 265 } 266 }, 267 268 "voxeles": { 269 es: { 270 yt:"nUc6iPox0js", 271 canal:"lucasmelor", 272 min:{ es:"~8 min", en:"~8 min" }, 273 tit:{ es:"Vóxeles: una tecnologÃa que imita la realidad", 274 en:"Voxels: a technology that mimics reality" }, 275 nota:{ es:"Para visualizar bien la idea de vóxel âel «pÃxel en 3D»â antes de empezar a crear geometrÃa con PicoGK.", 276 en:"To properly picture the idea of a voxel âthe \"pixel in 3D\"â before starting to create geometry with PicoGK." } 277 }, 278 en: { 279 yt:"M3iI2l0ltbE", 280 canal:"Sebastian Lague", 281 tit:{ es:"De la rejilla de vóxeles a la malla: marching cubes", 282 en:"From voxel grid to mesh: marching cubes" }, 283 nota:{ es:"Enseña visualmente cómo se guarda un volumen en una rejilla 3D de valores y cómo se extrae de ahà una superficie. Es exactamente el paso que da PicoGK al convertir tus vóxeles en geometrÃa exportable.", 284 en:"It shows visually how a volume is stored in a 3D grid of values and how a surface is extracted from it. This is exactly the step PicoGK takes when turning your voxels into exportable geometry." } 285 } 286 }, 287 288 "csharp-bucle-for": { 289 es: { 290 yt:"XZozP-IHl38", 291 canal:"PrograLabs", 292 min:{ es:"~7 min", en:"~7 min" }, 293 tit:{ es:"¿Cómo funciona un bucle for en C#?", 294 en:"How does a for loop work in C#?" }, 295 nota:{ es:"El bucle for explicado paso a paso: las tres partes del paréntesis y cómo se repite el bloque de código. Es la estructura que usas para generar mucha geometrÃa sin repetirte.", 296 en:"The for loop explained step by step: the three parts of the parentheses and how the code block repeats. It is the structure you use to generate lots of geometry without repeating yourself." } 297 }, 298 en: { 299 yt:"yuRdCZMuak0", 300 canal:"dotnet", 301 tit:{ es:"El bucle for en C#: inicialización, condición e incremento", 302 en:"The for loop in C#: initialisation, condition and increment" }, 303 nota:{ es:"Del canal oficial de .NET. Las tres partes de un bucle for y cuándo conviene usarlo. Lo vas a usar constantemente para recorrer geometrÃa punto a punto.", 304 en:"From the official .NET channel. The three parts of a for loop and when to use it. You will use it constantly to walk through geometry point by point." } 305 } 306 }, 307 308 "archivo-stl": { 309 es: { 310 yt:"wXUPUaSuQCM", 311 canal:"SHARE HORIZONS", 312 min:{ es:"~6 min", en:"~6 min" }, 313 tit:{ es:"Qué es un archivo STL", 314 en:"What an STL file is" }, 315 nota:{ es:"Para entender el formato STL âla malla de triángulosâ que vas a cargar en el Fixture Maker. Es el formato estándar para intercambiar geometrÃa 3D.", 316 en:"To understand the STL format â the triangle mesh â that you will load into the Fixture Maker. It is the standard format for exch
316anging 3D geometry." } 317 }, 318 en: { 319 yt:"Gkjyi-6bl6Q", 320 canal:"Joko Engineeringhelp", 321 tit:{ es:"Formatos 3D: qué es un STL y en qué se diferencia de STEP, IGES u OBJ", 322 en:"3D file formats: what an STL is and how it differs from STEP, IGES and OBJ" }, 323 nota:{ es:"Sitúa el STL entre los formatos de ingenierÃa: malla de triángulos frente a sólido paramétrico. Entender esa diferencia es clave antes de exportar tus piezas.", 324 en:"It places STL among the engineering formats: triangle mesh versus parametric solid. Understanding that difference matters before you export your parts." } 325 } 326 }, 327 328 "matrices-transformacion": { 329 es: { 330 yt:"bCf4N53Uw2k", 331 canal:"Señales y Sistemas", 332 min:{ es:"~10 min", en:"~10 min" }, 333 tit:{ es:"Matrices de transformación", 334 en:"Transformation matrices" }, 335 nota:{ es:"Para ver de dónde sale la magia: cómo una matriz codifica una traslación, una rotación o un escalado. En C# no tendrás que hacer estas cuentas a mano, pero entenderlas ayuda.", 336 en:"To see where the magic comes from: how a matrix encodes a translation, a rotation or a scaling. In C# you will not have to do these calculations by hand, but understanding them helps." } 337 }, 338 en: { 339 yt:"kYB8IZa5AuE", 340 canal:"3Blue1Brown", 341 tit:{ es:"Transformaciones lineales y matrices", 342 en:"Linear transformations and matrices" }, 343 nota:{ es:"Del canal 3Blue1Brown, la referencia visual del álgebra lineal. Muestra que una matriz no es una tabla de números: es un movimiento del espacio. Con esa idea, rotar y escalar geometrÃa deja de ser magia.", 344 en:"From 3Blue1Brown, the visual reference for linear algebra. It shows that a matrix is not a table of numbers: it is a movement of space. With that idea, rotating and scaling geometry stops being magic." } 345 } 346 }, 347 348 /* ---------- Itinerario Python (asignatura Programación · UPV) ---------- */ 349 350 "py-primeros-pasos": { 351 es: { 352 yt:"5K5fx44pKZg", 353 canal:"Python Hacks", 354 min:{ es:"~10 min", en:"~10 min" }, 355 tit:{ es:"Instalar VS Code para Python y ejecutar tu primer «Hola mundo»", 356 en:"Install VS Code for Python and run your first \"Hello world\"" }, 357 nota:{ es:"Los mismos pasos que has dado en «Prepara tu ordenador», pero viéndolos hacer. Ãtil si algo no te ha salido a la primera: fÃjate sobre todo en la casilla «Add python.exe to PATH» del instalador.", 358 en:"The same steps you followed in \"Set up your computer\", but watching someone do them. Useful if something did not work first time: pay attention to the installer's \"Add python.exe to PATH\" checkbox." } 359 }, 360 en: null 361 }, 362 363 "py-venv": { 364 es: { 365 yt:"qD8j5J6wFuw", 366 canal:"Nico Dev", 367 min:{ es:"~12 min", en:"~12 min" }, 368 tit:{ es:"Entornos virtuales en Python, explicados con calma", 369 en:"Python virtual environments, explained calmly" }, 370 nota:{ es:"Por qué cada proyecto necesita su propio entorno y qué ocurre exactamente al crearlo y activarlo. Si el «(.venv)» del principio de la lÃnea te suena a magia, este vÃdeo lo desmonta.", 371 en:"Why each project needs its own environment and what exactly happens when you create and activate it. If the \"(.venv)\" at the start of the prompt feels like magic, this video takes it apart." } 372 }, 373 en: { 374 yt:"N5vscPTWKOk", 375 canal:"Corey Schafer", 376 tit:{ es:"Por qué deberÃas usar entornos virtuales", 377 en:"Why you should use virtual environments" }, 378 nota:{ es:"El clásico de Corey Schafer. Usa la herramienta antigua (virtualenv) en vez de venv, pero el razonamiento de por qué hacen falta es el mejor explicado que hay.", 379 en:"The Corey Schafer classic. It uses the older tool (virtualenv) rather than venv, but the reasoning about why environments are needed is the best explanation around." } 380 } 381 }, 382 383 "py-funciones": { 384 es: { 385 yt:"g78juF9pB_w", 386 canal:"Code Hive", 387 min:{ es:"~15 min", en:"~15 min" }, 388 tit:{ es:"Funciones en Python: parámetros y return, con ejemplos", 389 en:"Functions in Python: parameters and return, with examples" }, 390 nota:{ es:"Repasa con ejemplos lo que cuenta la lección: definir, llamar, pasar parámetros y devolver. FÃjate en la diferencia entre imprimir dentro de la función y devolver el resultado: es lo que se evalúa.", 391 en:"Goes over the lesson's content with examples: defining, calling, passing parameters and returning. Watch the difference between printing inside the function and returning the result: that is what gets assessed." } 392 }, 393 en: null 394 }, 395 396 "py-pytest": { 397 es: { 398 yt:"JZ0TMkwMgp8", 399 canal:"UskoKruM2010", 400 min:{ es:"~20 min", en:"~20 min" }, 401 tit:{ es:"pytest: pruebas unitarias en Python, de cero", 402 en:"pytest: unit testing in Python from scratch" }, 403 nota:{ es:"Instalación, primer archivo de pruebas y ejecución, en el mismo orden que la lección. Verlo hacer una vez ayuda a que el «pytest» de la terminal deje de dar respeto.", 404 en:"Installation, first test file and running the suite, in the same order as the lesson. Watching it done once helps make the terminal's \"pytest\" less intimidating." } 405 }, 406 en: { 407 yt:"IpeyumlDVkE", 408 canal:"Execute Automation", 409 tit:{ es:"Introducción a pytest", 410 en:"Introduction and getting started with pytest" }, 411 nota:{ es:"Primer capÃtulo de una serie sobre pytest. Va algo más allá de lo que necesitas ahora; con los primeros minutos tienes cubierto lo de la lección.", 412 en:"First episode of a pytest series. It goes somewhat beyond what you need right now; the first few minutes cover the lesson's material." } 413 } 414 }, 415 416 "py-colecciones": { 417 es: { 418 yt:"T9cHfVOdu1Y", 419 canal:"ITMadrid TV", 420 min:{ es:"~25 min", en:"~25 min" }, 421 tit:{ es:"Listas, diccionarios y tuplas en Python", 422 en:"Lists, dictionaries and tuples in Python" }, 423 nota:{ es:"Las tres estructuras del módulo, una detrás de otra y con ejemplos. Buen repaso antes del cuestionario; presta atención a cuándo conviene cada una.", 424 en:"The module's three structures, one after another and with examples. A good review before the quiz; pay attention to when each one is the right choice." } 425 }, 426 en: null 427 }, 428 429 "py-ficheros": { 430 es: { 431 yt:"LfSGeCt50Z0", 432 canal:"Dimas", 433 min:{ es:"~20 min", en:"~20 min" }, 434 tit:{ es:"Leer y escribir ficheros de texto en Python, con ejercicio", 435 en:"Reading and writing text files in Python, with an exercise" }, 436 nota:{ es:"Los modos de apertura y el bloque <code>with</code> en acción, con un ejercicio resuelto al final. Comprueba que en el vÃdeo también se acuerdan del salto de lÃnea al escribir.", 437 en:"Opening modes and the <code>with</code> block in action, with a worked exercise at the end. Check that the video also remembers the newline when writing." } 438 }, 439 en: null 440 }, 441 442 "py-tkinter": { 443 es: { 444 yt:"Nn0AVbGVMhk", 445 canal:"Academia Coder", 446 min:{ es:"~20 min", en:"~20 min" }, 447 tit:{ es:"Interfaces gráficas con tkinter: la primera ventana", 448 en:"Graphical interfaces with tkinter: the first window" }, 449 nota:{ es:"La primera ventana, los widgets básicos y el bucle de eventos. FÃjate en el orden: crear el widget y colocarlo son dos pasos distintos, y olvidar el segundo no da ningún error.", 450 en:"The first window, the basic widgets and the event loop. Watch the order: creating a widget and placing it are two separate steps, and forgetting the second raises no error." } 451 }, 452 en: { 453 yt:"TuLxsvK4svQ", 454 canal:"Bro Code", 455 tit:{ es:"Curso completo de tkinter", 456 en:"Python Tkinter full course" }, 457 nota:{ es:"Curso entero de tkinter en un solo vÃdeo. No hace falta verlo seguido: úsalo como referencia y salta al widget que necesites en cada momento.", 458 en:"A whole tkinter course in one video. No need to watch it in one sitting: use it as a reference and jump to the widget you need." } 459 } 460 }, 461 462 "git-intro": { 463 es: { 464 yt:"FIHex32iB-c", 465 canal:"Cirilo Bidó · Programación Android", 466 min:{ es:"~15 min", en:"~15 min" }, 467 tit:{ es:"Git y GitHub en 15 minutos", 468 en:"Git and GitHub in 15 minutes" }, 469 nota:{ es:"Lo esencial para trabajar en grupo: repositorio, add, commit, push y pull. Con esto y la lección tienes de sobra para los proyectos de la asignatura.", 470 en:"The essentials for group work: repository, add, commit, push and pull. With this and the lesson you have plenty for the subject's projects." } 471 }, 472 en: null 473 } 474};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.