[{"data":1,"prerenderedAt":3375},["ShallowReactive",2],{"content-query-RgvMosr7GN":3,"content-query-AT44bg6JPw":2674},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"type":9,"order":10,"body":11,"_type":2667,"_id":2668,"_source":2669,"_file":2670,"_stem":2671,"_extension":2672,"plainText":2673},"/modules/gen-ai/slides-intro","gen-ai",false,"","Introduction Slides","slides",1,{"type":12,"children":13,"toc":2636},"root",[14,22,29,36,42,48,53,60,141,145,151,246,251,317,321,327,332,585,589,595,619,623,629,657,661,667,715,719,725,827,831,839,843,849,925,929,935,939,945,983,987,993,1031,1037,1041,1060,1064,1069,1081,1099,1103,1109,1114,1224,1228,1234,1238,1244,1248,1254,1258,1397,1401,1427,1431,1437,1470,1474,1509,1513,1519,1560,1564,1620,1624,1630,1696,1700,1706,1710,1716,1720,2040,2044,2062,2066,2072,2084,2102,2105,2108,2132,2136,2142,2178,2182,2188,2192,2198,2202,2208,2231,2235,2243,2247,2253,2261,2374,2378,2386,2390,2396,2466,2470,2490,2494,2500,2505,2548,2552,2558,2562,2568,2572,2578,2606,2610,2622,2631],{"type":15,"tag":16,"props":17,"children":18},"element","style",{},[19],{"type":20,"value":21},"text","\n.reveal.overview {\n  background-color: gray;\n}\n",{"type":15,"tag":23,"props":24,"children":26},"h1",{"id":25},"generative-ai",[27],{"type":20,"value":28},"Generative AI",{"type":15,"tag":30,"props":31,"children":33},"h3",{"id":32},"a-pilot",[34],{"type":20,"value":35},"A Pilot",{"type":15,"tag":37,"props":38,"children":39},"p",{},[40],{"type":20,"value":41},"===",{"type":15,"tag":23,"props":43,"children":45},{"id":44},"overview",[46],{"type":20,"value":47},"Overview",{"type":15,"tag":37,"props":49,"children":50},{},[51],{"type":20,"value":52},"==",{"type":15,"tag":54,"props":55,"children":57},"h2",{"id":56},"a-brief-history-of-ai",[58],{"type":20,"value":59},"A Brief History of AI",{"type":15,"tag":61,"props":62,"children":64},"div",{"style":63},"font-size: smaller;",[65],{"type":15,"tag":66,"props":67,"children":68},"ul",{},[69,81,91,101,111,121,131],{"type":15,"tag":70,"props":71,"children":72},"li",{},[73,79],{"type":15,"tag":74,"props":75,"children":76},"strong",{},[77],{"type":20,"value":78},"1940s–1950s",{"type":20,"value":80},": neural computation, Turing’s questions and early machine intelligence",{"type":15,"tag":70,"props":82,"children":83},{},[84,89],{"type":15,"tag":74,"props":85,"children":86},{},[87],{"type":20,"value":88},"1956 onward",{"type":20,"value":90},": AI becomes a named research field, initially dominated by symbolic reasoning",{"type":15,"tag":70,"props":92,"children":93},{},[94,99],{"type":15,"tag":74,"props":95,"children":96},{},[97],{"type":20,"value":98},"1960s–1970s",{"type":20,"value":100},": strong optimism, expert systems and public investment",{"type":15,"tag":70,"props":102,"children":103},{},[104,109],{"type":15,"tag":74,"props":105,"children":106},{},[107],{"type":20,"value":108},"AI winters",{"type":20,"value":110},": limited computing, brittle systems, theoretical limits and unmet promises reduce confidence",{"type":15,"tag":70,"props":112,"children":113},{},[114,119],{"type":15,"tag":74,"props":115,"children":116},{},[117],{"type":20,"value":118},"1980s–2000s",{"type":20,"value":120},": expert systems, statistical learning, better data and larger computation",{"type":15,"tag":70,"props":122,"children":123},{},[124,129],{"type":15,"tag":74,"props":125,"children":126},{},[127],{"type":20,"value":128},"2010s onward",{"type":20,"value":130},": deep learning and foundation models enable broad generative capabilities",{"type":15,"tag":70,"props":132,"children":133},{},[134,139],{"type":15,"tag":74,"props":135,"children":136},{},[137],{"type":20,"value":138},"2022+",{"type":20,"value":140},": Chat LLM's (OpenAI launches public ChatGPT)",{"type":15,"tag":37,"props":142,"children":143},{},[144],{"type":20,"value":52},{"type":15,"tag":54,"props":146,"children":148},{"id":147},"from-ai-to-genai",[149],{"type":20,"value":150},"From AI to genAI",{"type":15,"tag":61,"props":152,"children":154},{"style":153},"font-size:0.82em; text-align:left; padding:0.6rem 1rem 1rem; border:2px solid lightgray; border-radius:8px;",[155,157,162,163],{"type":20,"value":156},"\n  ",{"type":15,"tag":74,"props":158,"children":159},{},[160],{"type":20,"value":161},"Artificial Intelligence",{"type":20,"value":156},{"type":15,"tag":61,"props":164,"children":169},{"className":165,"dataFragmentIndex":167,"style":168},[166],"fragment","0","margin-top:0.5rem; padding:0.6rem 1rem 1rem; border:2px solid lightgray; border-radius:8px;",[170,172,177,178,245],{"type":20,"value":171},"\n    ",{"type":15,"tag":74,"props":173,"children":174},{},[175],{"type":20,"value":176},"Machine Learning",{"type":20,"value":171},{"type":15,"tag":61,"props":179,"children":182},{"className":180,"dataFragmentIndex":181,"style":168},[166],"1",[183,185,190,191,244],{"type":20,"value":184},"\n      ",{"type":15,"tag":74,"props":186,"children":187},{},[188],{"type":20,"value":189},"Deep Learning",{"type":20,"value":184},{"type":15,"tag":61,"props":192,"children":196},{"className":193,"dataFragmentIndex":194,"style":195},[166],"2","margin-top:0.5rem; padding:0.6rem 1rem 1rem; background:lightgray; border-radius:8px;",[197,199,203,204,243],{"type":20,"value":198},"\n        ",{"type":15,"tag":74,"props":200,"children":201},{},[202],{"type":20,"value":28},{"type":20,"value":198},{"type":15,"tag":61,"props":205,"children":207},{"style":206},"display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem; margin-top:0.5rem; text-align:center;",[208,210,219,220,228,229,235,236,242],{"type":20,"value":209},"\n          ",{"type":15,"tag":61,"props":211,"children":213},{"style":212},"padding:0.6rem; background:white; border-radius:8px; border:2px solid white;",[214],{"type":15,"tag":74,"props":215,"children":216},{},[217],{"type":20,"value":218},"Language models",{"type":20,"value":209},{"type":15,"tag":61,"props":221,"children":225},{"className":222,"dataFragmentIndex":224,"style":212},[166,223],"semi-fade-out","3",[226],{"type":20,"value":227},"Image models",{"type":20,"value":209},{"type":15,"tag":61,"props":230,"children":232},{"className":231,"dataFragmentIndex":224,"style":212},[166,223],[233],{"type":20,"value":234},"Audio models",{"type":20,"value":209},{"type":15,"tag":61,"props":237,"children":239},{"className":238,"dataFragmentIndex":224,"style":212},[166,223],[240],{"type":20,"value":241},"Video models",{"type":20,"value":198},{"type":20,"value":184},{"type":20,"value":171},{"type":20,"value":156},{"type":15,"tag":37,"props":247,"children":248},{},[249],{"type":20,"value":250},"Note:",{"type":15,"tag":66,"props":252,"children":253},{},[254,259,269,279,289,294,312],{"type":15,"tag":70,"props":255,"children":256},{},[257],{"type":20,"value":258},"Most AI is not generative",{"type":15,"tag":70,"props":260,"children":261},{},[262,264],{"type":20,"value":263},"AI: expert systems, rule-based reasoning, search and planning, ",{"type":15,"tag":74,"props":265,"children":266},{},[267],{"type":20,"value":268},"and machine learning",{"type":15,"tag":70,"props":270,"children":271},{},[272,274],{"type":20,"value":273},"Machine learning: linear regression, random forests, clustering, ",{"type":15,"tag":74,"props":275,"children":276},{},[277],{"type":20,"value":278},"and deep learning",{"type":15,"tag":70,"props":280,"children":281},{},[282,284],{"type":20,"value":283},"Deep learning: image classifiers, speech recognition, anomaly detection, and ",{"type":15,"tag":74,"props":285,"children":286},{},[287],{"type":20,"value":288},"genAI",{"type":15,"tag":70,"props":290,"children":291},{},[292],{"type":20,"value":293},"genAI: Many current models are multimodal and span several of the four types",{"type":15,"tag":70,"props":295,"children":296},{},[297,299],{"type":20,"value":298},"Simplifications:\n",{"type":15,"tag":66,"props":300,"children":301},{},[302,307],{"type":15,"tag":70,"props":303,"children":304},{},[305],{"type":20,"value":306},"Generative AI sits inside deep learning in practice today, not by definition (earlier generative methods such as Markov chains were not deep learning)",{"type":15,"tag":70,"props":308,"children":309},{},[310],{"type":20,"value":311},"Not every language model is generative: encoder models such as BERT are used to classify and embed",{"type":15,"tag":70,"props":313,"children":314},{},[315],{"type":20,"value":316},"Language models are the focus of this module",{"type":15,"tag":37,"props":318,"children":319},{},[320],{"type":20,"value":52},{"type":15,"tag":54,"props":322,"children":324},{"id":323},"ai-capabilities",[325],{"type":20,"value":326},"AI Capabilities",{"type":15,"tag":16,"props":328,"children":329},{},[330],{"type":20,"value":331},"\n  .reveal .stepper .step { border: 2px solid lightgray; }\n  .reveal .stepper .step.fragment.current-fragment { border-color: blue; }\n  .reveal .stepper .step.first { border-color: blue; }\n  .reveal .stepper .step.first.fragment.visible { border-color: lightgray; }\n  .reveal .stepper.dim .step.fragment { opacity: 0.35; visibility: inherit; }\n  .reveal .stepper .step.first.fragment,\n  .reveal .stepper.dim .step.fragment.visible { opacity: 1; visibility: inherit; }\n  .reveal .stepper .detail.fragment.current-visible:not(.current-fragment),\n  .reveal .stepper .detail.fragment.fade-out.visible { display: none !important; }\n",{"type":15,"tag":61,"props":333,"children":337},{"className":334,"style":336},[335],"stepper","min-height:18em; font-size:0.82em; text-align:left;",[338,339,372,373,407,408,437,438,467,468,497,498,526,527,556,557],{"type":20,"value":156},{"type":15,"tag":61,"props":340,"children":345},{"className":341,"dataFragmentIndex":167,"style":344},[342,343,166],"step","first","display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;",[346,347,352,353,359,360,365,366,371],{"type":20,"value":171},{"type":15,"tag":74,"props":348,"children":349},{},[350],{"type":20,"value":351},"Create",{"type":20,"value":171},{"type":15,"tag":354,"props":355,"children":356},"span",{},[357],{"type":20,"value":358},"Generate",{"type":20,"value":171},{"type":15,"tag":354,"props":361,"children":362},{},[363],{"type":20,"value":364},"Summarize",{"type":20,"value":171},{"type":15,"tag":354,"props":367,"children":368},{},[369],{"type":20,"value":370},"Translate",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":374,"children":379},{"className":375,"dataFragmentIndex":167,"style":378},[376,166,377],"detail","fade-out","display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:start; margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;",[380,381,388,389,394,395,400,401,406],{"type":20,"value":171},{"type":15,"tag":382,"props":383,"children":385},"em",{"style":384},"color:gray;",[386],{"type":20,"value":387},"e.g.",{"type":20,"value":171},{"type":15,"tag":354,"props":390,"children":391},{},[392],{"type":20,"value":393},"Draft text, code, images, slides",{"type":20,"value":171},{"type":15,"tag":354,"props":396,"children":397},{},[398],{"type":20,"value":399},"Papers, meeting notes, transcripts",{"type":20,"value":171},{"type":15,"tag":354,"props":402,"children":403},{},[404],{"type":20,"value":405},"Languages, programming languages",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":409,"children":411},{"className":410,"dataFragmentIndex":167,"style":344},[342,166],[412,413,418,419,424,425,430,431,436],{"type":20,"value":171},{"type":15,"tag":74,"props":414,"children":415},{},[416],{"type":20,"value":417},"Understand",{"type":20,"value":171},{"type":15,"tag":354,"props":420,"children":421},{},[422],{"type":20,"value":423},"Classify",{"type":20,"value":171},{"type":15,"tag":354,"props":426,"children":427},{},[428],{"type":20,"value":429},"Extract",{"type":20,"value":171},{"type":15,"tag":354,"props":432,"children":433},{},[434],{"type":20,"value":435},"Detect",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":439,"children":442},{"className":440,"dataFragmentIndex":167,"style":378},[376,166,441],"current-visible",[443,444,448,449,454,455,460,461,466],{"type":20,"value":171},{"type":15,"tag":382,"props":445,"children":446},{"style":384},[447],{"type":20,"value":387},{"type":20,"value":171},{"type":15,"tag":354,"props":450,"children":451},{},[452],{"type":20,"value":453},"Publications, species, images, emails",{"type":20,"value":171},{"type":15,"tag":354,"props":456,"children":457},{},[458],{"type":20,"value":459},"Metadata, entities, keywords",{"type":20,"value":171},{"type":15,"tag":354,"props":462,"children":463},{},[464],{"type":20,"value":465},"Anomalies, fraud, tumors",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":469,"children":471},{"className":470,"dataFragmentIndex":181,"style":344},[342,166],[472,473,478,479,484,485,490,491,496],{"type":20,"value":171},{"type":15,"tag":74,"props":474,"children":475},{},[476],{"type":20,"value":477},"Find",{"type":20,"value":171},{"type":15,"tag":354,"props":480,"children":481},{},[482],{"type":20,"value":483},"Search",{"type":20,"value":171},{"type":15,"tag":354,"props":486,"children":487},{},[488],{"type":20,"value":489},"Recommend",{"type":20,"value":171},{"type":15,"tag":354,"props":492,"children":493},{},[494],{"type":20,"value":495},"Predict",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":499,"children":501},{"className":500,"dataFragmentIndex":181,"style":378},[376,166,441],[502,503,507,508,513,514,519,520,525],{"type":20,"value":171},{"type":15,"tag":382,"props":504,"children":505},{"style":384},[506],{"type":20,"value":387},{"type":20,"value":171},{"type":15,"tag":354,"props":509,"children":510},{},[511],{"type":20,"value":512},"Semantic search over documents",{"type":20,"value":171},{"type":15,"tag":354,"props":515,"children":516},{},[517],{"type":20,"value":518},"Papers, resources",{"type":20,"value":171},{"type":15,"tag":354,"props":521,"children":522},{},[523],{"type":20,"value":524},"Forecast outcomes with data",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":528,"children":530},{"className":529,"dataFragmentIndex":194,"style":344},[342,166],[531,532,537,538,543,544,549,550,555],{"type":20,"value":171},{"type":15,"tag":74,"props":533,"children":534},{},[535],{"type":20,"value":536},"Interact",{"type":20,"value":171},{"type":15,"tag":354,"props":539,"children":540},{},[541],{"type":20,"value":542},"Converse",{"type":20,"value":171},{"type":15,"tag":354,"props":545,"children":546},{},[547],{"type":20,"value":548},"Reason",{"type":20,"value":171},{"type":15,"tag":354,"props":551,"children":552},{},[553],{"type":20,"value":554},"Act",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":558,"children":560},{"className":559,"dataFragmentIndex":194,"style":378},[376,166,441],[561,562,566,567,572,573,578,579,584],{"type":20,"value":171},{"type":15,"tag":382,"props":563,"children":564},{"style":384},[565],{"type":20,"value":387},{"type":20,"value":171},{"type":15,"tag":354,"props":568,"children":569},{},[570],{"type":20,"value":571},"Chat assistants",{"type":20,"value":171},{"type":15,"tag":354,"props":574,"children":575},{},[576],{"type":20,"value":577},"Solve problems, infer conclusions",{"type":20,"value":171},{"type":15,"tag":354,"props":580,"children":581},{},[582],{"type":20,"value":583},"Use tools, execute workflows, control robots",{"type":20,"value":156},{"type":15,"tag":37,"props":586,"children":587},{},[588],{"type":20,"value":52},{"type":15,"tag":54,"props":590,"children":592},{"id":591},"four-roles-for-ai-in-research",[593],{"type":20,"value":594},"Four roles for AI in research",{"type":15,"tag":596,"props":597,"children":598},"ol",{},[599,604,609,614],{"type":15,"tag":70,"props":600,"children":601},{},[602],{"type":20,"value":603},"Research object: study AI systems, data, behaviour or impacts",{"type":15,"tag":70,"props":605,"children":606},{},[607],{"type":20,"value":608},"Research instrument: use AI to measure, classify, generate or analyse",{"type":15,"tag":70,"props":610,"children":611},{},[612],{"type":20,"value":613},"Research co-creator: use AI during ideation, drafting or interpretation",{"type":15,"tag":70,"props":615,"children":616},{},[617],{"type":20,"value":618},"Research infrastructure: embed AI in services, repositories, portals or workflows",{"type":15,"tag":37,"props":620,"children":621},{},[622],{"type":20,"value":52},{"type":15,"tag":54,"props":624,"children":626},{"id":625},"what-is-an-llm",[627],{"type":20,"value":628},"What is an LLM?",{"type":15,"tag":66,"props":630,"children":631},{},[632,637,642,647,652],{"type":15,"tag":70,"props":633,"children":634},{},[635],{"type":20,"value":636},"Predicts the next token, one at a time: fluent ≠ true",{"type":15,"tag":70,"props":638,"children":639},{},[640],{"type":20,"value":641},"Non-deterministic: same prompt, different answers",{"type":15,"tag":70,"props":643,"children":644},{},[645],{"type":20,"value":646},"Frozen at a training cutoff: doesn't know the latest library versions",{"type":15,"tag":70,"props":648,"children":649},{},[650],{"type":20,"value":651},"No separation between instructions and data: everything is just text in the context",{"type":15,"tag":70,"props":653,"children":654},{},[655],{"type":20,"value":656},"Context window: everything the model \"sees\" — fills up, degrades, gets compacted",{"type":15,"tag":37,"props":658,"children":659},{},[660],{"type":20,"value":52},{"type":15,"tag":54,"props":662,"children":664},{"id":663},"agent-model-harness",[665],{"type":20,"value":666},"Agent = Model + Harness",{"type":15,"tag":66,"props":668,"children":669},{},[670,680],{"type":15,"tag":70,"props":671,"children":672},{},[673,678],{"type":15,"tag":74,"props":674,"children":675},{},[676],{"type":20,"value":677},"Model",{"type":20,"value":679},": the LLM, stateless, only produces text",{"type":15,"tag":70,"props":681,"children":682},{},[683,688,690],{"type":15,"tag":74,"props":684,"children":685},{},[686],{"type":20,"value":687},"Harness",{"type":20,"value":689},": the loop around it — runs tools, enforces permissions, manages context\n",{"type":15,"tag":66,"props":691,"children":692},{},[693,698,710],{"type":15,"tag":70,"props":694,"children":695},{},[696],{"type":20,"value":697},"Tools: file edits, shell, web search, MCP servers",{"type":15,"tag":70,"props":699,"children":700},{},[701,703],{"type":20,"value":702},"Skills and instruction files ",{"type":15,"tag":704,"props":705,"children":707},"code",{"className":706},[],[708],{"type":20,"value":709},"AGENTS.md",{"type":15,"tag":70,"props":711,"children":712},{},[713],{"type":20,"value":714},"\"Memory\" is just files fed back into the context",{"type":15,"tag":37,"props":716,"children":717},{},[718],{"type":20,"value":52},{"type":15,"tag":54,"props":720,"children":722},{"id":721},"how-genai-fits-in-your-workflow",[723],{"type":20,"value":724},"How GenAI fits in your workflow",{"type":15,"tag":61,"props":726,"children":728},{"style":727},"display:grid; grid-template-columns:repeat(6, 1fr); gap:1rem; font-size:0.82em; text-align:left;",[729,730,748,749,766,767,784,785,808,809],{"type":20,"value":156},{"type":15,"tag":61,"props":731,"children":733},{"style":732},"grid-column:span 2; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;",[734,735,740,741,747],{"type":20,"value":171},{"type":15,"tag":74,"props":736,"children":737},{},[738],{"type":20,"value":739},"💬 Planning / Sparring",{"type":20,"value":171},{"type":15,"tag":37,"props":742,"children":744},{"style":743},"margin:0.4rem 0 0;",[745],{"type":20,"value":746},"Discuss architecture, talk through trade-offs, get a second opinion on your design",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":750,"children":752},{"className":751,"style":732},[166],[753,754,759,760,765],{"type":20,"value":171},{"type":15,"tag":74,"props":755,"children":756},{},[757],{"type":20,"value":758},"⌨️ Tab Completion",{"type":20,"value":171},{"type":15,"tag":37,"props":761,"children":762},{"style":743},[763],{"type":20,"value":764},"Inline suggestions as you type — low risk, high daily value",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":768,"children":770},{"className":769,"style":732},[166],[771,772,777,778,783],{"type":20,"value":171},{"type":15,"tag":74,"props":773,"children":774},{},[775],{"type":20,"value":776},"🧱 Code Block Generation",{"type":20,"value":171},{"type":15,"tag":37,"props":779,"children":780},{"style":743},[781],{"type":20,"value":782},"Ask for a function, a regex, a test — review and integrate manually",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":786,"children":789},{"className":787,"style":788},[166],"grid-column:span 3; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid blue;",[790,791,796,797,807],{"type":20,"value":171},{"type":15,"tag":74,"props":792,"children":793},{},[794],{"type":20,"value":795},"🤖 Agentic Coding",{"type":20,"value":171},{"type":15,"tag":37,"props":798,"children":799},{"style":743},[800,802],{"type":20,"value":801},"Model reads/writes files, runs tests, operates autonomously — ",{"type":15,"tag":382,"props":803,"children":804},{},[805],{"type":20,"value":806},"our focus today",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":810,"children":813},{"className":811,"style":812},[166],"grid-column:span 3; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;",[814,815,820,821,826],{"type":20,"value":171},{"type":15,"tag":74,"props":816,"children":817},{},[818],{"type":20,"value":819},"🌟 Autonomous Agents",{"type":20,"value":171},{"type":15,"tag":37,"props":822,"children":823},{"style":743},[824],{"type":20,"value":825},"Execute scheduled tasks, react to web hooks, no or little user interaction",{"type":20,"value":156},{"type":15,"tag":37,"props":828,"children":829},{},[830],{"type":20,"value":250},{"type":15,"tag":66,"props":832,"children":833},{},[834],{"type":15,"tag":70,"props":835,"children":836},{},[837],{"type":20,"value":838},"Different risk profiles per use-case",{"type":15,"tag":37,"props":840,"children":841},{},[842],{"type":20,"value":52},{"type":15,"tag":54,"props":844,"children":846},{"id":845},"what-you-can-use-it-for-today",[847],{"type":20,"value":848},"What You Can Use It For Today",{"type":15,"tag":61,"props":850,"children":852},{"style":851},"display:grid; grid-template-columns:1fr 1fr; gap:1rem; font-size:0.82em; text-align:left;",[853,854,871,872,889,890,907,908],{"type":20,"value":156},{"type":15,"tag":61,"props":855,"children":857},{"style":856},"padding:0.9rem; background:lightgray; border-radius:8px;",[858,859,864,865,870],{"type":20,"value":171},{"type":15,"tag":74,"props":860,"children":861},{},[862],{"type":20,"value":863},"🔍 Code Explanation",{"type":20,"value":171},{"type":15,"tag":37,"props":866,"children":867},{},[868],{"type":20,"value":869},"Paste unfamiliar code and ask for a walkthrough — useful for legacy scripts or inherited projects",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":873,"children":875},{"className":874,"style":856},[166],[876,877,882,883,888],{"type":20,"value":171},{"type":15,"tag":74,"props":878,"children":879},{},[880],{"type":20,"value":881},"♻️ Refactoring",{"type":20,"value":171},{"type":15,"tag":37,"props":884,"children":885},{},[886],{"type":20,"value":887},"Restructure working code for readability, performance, or style — with tests in place first",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":891,"children":893},{"className":892,"style":856},[166],[894,895,900,901,906],{"type":20,"value":171},{"type":15,"tag":74,"props":896,"children":897},{},[898],{"type":20,"value":899},"🧪 Tests & Docs",{"type":20,"value":171},{"type":15,"tag":37,"props":902,"children":903},{},[904],{"type":20,"value":905},"Generate unit tests and docstrings — read the tests, they reveal the model's assumptions",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":909,"children":911},{"className":910,"style":856},[166],[912,913,918,919,924],{"type":20,"value":171},{"type":15,"tag":74,"props":914,"children":915},{},[916],{"type":20,"value":917},"🚀 DevOps",{"type":20,"value":171},{"type":15,"tag":37,"props":920,"children":921},{},[922],{"type":20,"value":923},"CI config, Dockerfiles, environment files — well-covered territory with high AI reliability",{"type":20,"value":156},{"type":15,"tag":37,"props":926,"children":927},{},[928],{"type":20,"value":41},{"type":15,"tag":23,"props":930,"children":932},{"id":931},"strengths-weaknesses",[933],{"type":20,"value":934},"Strengths & Weaknesses",{"type":15,"tag":37,"props":936,"children":937},{},[938],{"type":20,"value":52},{"type":15,"tag":54,"props":940,"children":942},{"id":941},"well-suited",[943],{"type":20,"value":944},"Well Suited",{"type":15,"tag":66,"props":946,"children":947},{},[948,953,958,963,968,973,978],{"type":15,"tag":70,"props":949,"children":950},{},[951],{"type":20,"value":952},"🧑‍💻 Sparring partner / pair programmer / junior dev",{"type":15,"tag":70,"props":954,"children":955},{},[956],{"type":20,"value":957},"⚗️ Prototyping and exploring unfamiliar territory",{"type":15,"tag":70,"props":959,"children":960},{},[961],{"type":20,"value":962},"🤖 Automating repetitive or tedious tasks",{"type":15,"tag":70,"props":964,"children":965},{},[966],{"type":20,"value":967},"🌐 Popular frameworks and languages (Python, tidyverse, SQL…)",{"type":15,"tag":70,"props":969,"children":970},{},[971],{"type":20,"value":972},"🔍 Sifting through log files and stack traces",{"type":15,"tag":70,"props":974,"children":975},{},[976],{"type":20,"value":977},"📚 Learning about new-to-you technologies",{"type":15,"tag":70,"props":979,"children":980},{},[981],{"type":20,"value":982},"🔣 Regex (genuinely very good at this)",{"type":15,"tag":37,"props":984,"children":985},{},[986],{"type":20,"value":52},{"type":15,"tag":54,"props":988,"children":990},{"id":989},"dangerous-territory",[991],{"type":20,"value":992},"Dangerous Territory",{"type":15,"tag":66,"props":994,"children":995},{},[996,1001,1006,1011,1016,1021],{"type":15,"tag":70,"props":997,"children":998},{},[999],{"type":20,"value":1000},"📜 Gigantic inputs — clobbers the context window",{"type":15,"tag":70,"props":1002,"children":1003},{},[1004],{"type":20,"value":1005},"🔮 Used as an oracle or on autopilot",{"type":15,"tag":70,"props":1007,"children":1008},{},[1009],{"type":20,"value":1010},"📈 Feature creep — it will enthusiastically build things you didn't ask for",{"type":15,"tag":70,"props":1012,"children":1013},{},[1014],{"type":20,"value":1015},"🧩 Niche frameworks and languages",{"type":15,"tag":70,"props":1017,"children":1018},{},[1019],{"type":20,"value":1020},"🧮 Statistical reasoning — wrong tools/types, silent NA drops, off-by-one errors",{"type":15,"tag":70,"props":1022,"children":1023},{},[1024,1026],{"type":20,"value":1025},"✨ ",{"type":15,"tag":74,"props":1027,"children":1028},{},[1029],{"type":20,"value":1030},"Looks correct ≠ works correctly",{"type":15,"tag":37,"props":1032,"children":1034},{"style":1033},"font-size:0.75em; color:chocolate; margin-top:1rem;",[1035],{"type":20,"value":1036},"\n  The output reads like it was written by a competent analyst. That is exactly the danger.\n",{"type":15,"tag":37,"props":1038,"children":1039},{},[1040],{"type":20,"value":52},{"type":15,"tag":1042,"props":1043,"children":1044},"blockquote",{},[1045,1050],{"type":15,"tag":37,"props":1046,"children":1047},{},[1048],{"type":20,"value":1049},"\"LLMs doesn't know they are wrong. They don't know anything. They are very good at sounding right.\"",{"type":15,"tag":37,"props":1051,"children":1052},{},[1053],{"type":15,"tag":354,"props":1054,"children":1057},{"className":1055,"style":1056},[166],"color: gray;",[1058],{"type":20,"value":1059},"– Claude.ai, asked about LLMs",{"type":15,"tag":37,"props":1061,"children":1062},{},[1063],{"type":20,"value":250},{"type":15,"tag":37,"props":1065,"children":1066},{},[1067],{"type":20,"value":1068},"Who said this quote?",{"type":15,"tag":37,"props":1070,"children":1071},{},[1072,1074,1079],{"type":20,"value":1073},"LLMs are a ",{"type":15,"tag":74,"props":1075,"children":1076},{},[1077],{"type":20,"value":1078},"pattern matcher",{"type":20,"value":1080},", not reasoner:",{"type":15,"tag":66,"props":1082,"children":1083},{},[1084,1089,1094],{"type":15,"tag":70,"props":1085,"children":1086},{},[1087],{"type":20,"value":1088},"Hallucinations",{"type":15,"tag":70,"props":1090,"children":1091},{},[1092],{"type":20,"value":1093},"Overconfidence",{"type":15,"tag":70,"props":1095,"children":1096},{},[1097],{"type":20,"value":1098},"Domain Weakness",{"type":15,"tag":37,"props":1100,"children":1101},{},[1102],{"type":20,"value":52},{"type":15,"tag":54,"props":1104,"children":1106},{"id":1105},"up-skill-rather-than-de-skill",[1107],{"type":20,"value":1108},"Up-Skill rather than De-Skill",{"type":15,"tag":16,"props":1110,"children":1111},{},[1112],{"type":20,"value":1113},"\n  .reveal .upskill .fragment.current-visible:not(.current-fragment) { display: none; }\n  .reveal .upskill .fragment.fade-out.visible { display: none; }\n",{"type":15,"tag":66,"props":1115,"children":1119},{"className":1116,"style":1118},[1117],"upskill","display:block; min-height:11em; font-size:0.82em; text-align:left;",[1120,1121,1140,1141,1161,1162,1182,1183,1203,1204],{"type":20,"value":156},{"type":15,"tag":70,"props":1122,"children":1123},{},[1124,1129,1130,1139],{"type":15,"tag":74,"props":1125,"children":1126},{},[1127],{"type":20,"value":1128},"Locate technical information quickly",{"type":20,"value":171},{"type":15,"tag":66,"props":1131,"children":1133},{"className":1132,"dataFragmentIndex":167},[166,377],[1134],{"type":15,"tag":70,"props":1135,"children":1136},{},[1137],{"type":20,"value":1138},"Instead of reading through multiple documentation pages, you can ask AI to find the relevant function, argument, or method for your task.",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":70,"props":1142,"children":1144},{"className":1143,"dataFragmentIndex":167},[166],[1145,1150,1151,1160],{"type":15,"tag":74,"props":1146,"children":1147},{},[1148],{"type":20,"value":1149},"Summarise key concepts",{"type":20,"value":171},{"type":15,"tag":66,"props":1152,"children":1154},{"className":1153,"dataFragmentIndex":167},[166,441],[1155],{"type":15,"tag":70,"props":1156,"children":1157},{},[1158],{"type":20,"value":1159},"AI can condense long documentation into concise, understandable explanations. You can even ask AI to tailor explanations to your code and dataset.",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":70,"props":1163,"children":1165},{"className":1164,"dataFragmentIndex":181},[166],[1166,1171,1172,1181],{"type":15,"tag":74,"props":1167,"children":1168},{},[1169],{"type":20,"value":1170},"Clarify ambiguous points",{"type":20,"value":171},{"type":15,"tag":66,"props":1173,"children":1175},{"className":1174,"dataFragmentIndex":181},[166,441],[1176],{"type":15,"tag":70,"props":1177,"children":1178},{},[1179],{"type":20,"value":1180},"You can follow up iteratively, asking AI to rephrase explanations or provide examples.",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":70,"props":1184,"children":1186},{"className":1185,"dataFragmentIndex":194},[166],[1187,1192,1193,1202],{"type":15,"tag":74,"props":1188,"children":1189},{},[1190],{"type":20,"value":1191},"Code comprehension",{"type":20,"value":171},{"type":15,"tag":66,"props":1194,"children":1196},{"className":1195,"dataFragmentIndex":194},[166,441],[1197],{"type":15,"tag":70,"props":1198,"children":1199},{},[1200],{"type":20,"value":1201},"Paste code generated by AI or colleagues and ask for line-by-line explanations.",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":70,"props":1205,"children":1207},{"className":1206,"dataFragmentIndex":224},[166],[1208,1213,1214,1223],{"type":15,"tag":74,"props":1209,"children":1210},{},[1211],{"type":20,"value":1212},"Contextual learning",{"type":20,"value":171},{"type":15,"tag":66,"props":1215,"children":1217},{"className":1216,"dataFragmentIndex":224},[166,441],[1218],{"type":15,"tag":70,"props":1219,"children":1220},{},[1221],{"type":20,"value":1222},"Ask why certain functions or methods are used, what alternatives exist, and best practices.",{"type":20,"value":156},{"type":15,"tag":37,"props":1225,"children":1226},{},[1227],{"type":20,"value":52},{"type":15,"tag":54,"props":1229,"children":1231},{"id":1230},"exercise-1-ai-battle-15-min",[1232],{"type":20,"value":1233},"Exercise 1: AI Battle (15 min)",{"type":15,"tag":37,"props":1235,"children":1236},{},[1237],{"type":20,"value":41},{"type":15,"tag":23,"props":1239,"children":1241},{"id":1240},"access-deployment",[1242],{"type":20,"value":1243},"Access & Deployment",{"type":15,"tag":37,"props":1245,"children":1246},{},[1247],{"type":20,"value":52},{"type":15,"tag":54,"props":1249,"children":1251},{"id":1250},"hosting",[1252],{"type":20,"value":1253},"Hosting",{"type":15,"tag":16,"props":1255,"children":1256},{},[1257],{"type":20,"value":331},{"type":15,"tag":61,"props":1259,"children":1262},{"className":1260,"style":1261},[335],"min-height:17em; font-size:0.82em; text-align:left;",[1263,1264,1278,1279,1297,1298,1310,1311,1328,1329,1339,1340,1357,1358,1368,1369,1386,1387],{"type":20,"value":156},{"type":15,"tag":61,"props":1265,"children":1267},{"style":1266},"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; margin-bottom:0.4em; padding:0 1em; border:2px solid transparent; font-size:0.8em; color:gray;",[1268,1273],{"type":15,"tag":354,"props":1269,"children":1270},{},[1271],{"type":20,"value":1272},"Route",{"type":15,"tag":354,"props":1274,"children":1275},{},[1276],{"type":20,"value":1277},"Useful when …",{"type":20,"value":156},{"type":15,"tag":61,"props":1280,"children":1283},{"className":1281,"dataFragmentIndex":167,"style":1282},[342,343,166],"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;",[1284,1285,1290,1291,1296],{"type":20,"value":171},{"type":15,"tag":74,"props":1286,"children":1287},{},[1288],{"type":20,"value":1289},"Commercial hosted service",{"type":20,"value":171},{"type":15,"tag":354,"props":1292,"children":1293},{},[1294],{"type":20,"value":1295},"Fast access and broad capability matter",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":1299,"children":1302},{"className":1300,"dataFragmentIndex":167,"style":1301},[376,166,377],"margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;",[1303,1308],{"type":15,"tag":74,"props":1304,"children":1305},{},[1306],{"type":20,"value":1307},"Ask:",{"type":20,"value":1309}," What data is retained, where, for how long and under which terms?",{"type":20,"value":156},{"type":15,"tag":61,"props":1312,"children":1314},{"className":1313,"dataFragmentIndex":167,"style":1282},[342,166],[1315,1316,1321,1322,1327],{"type":20,"value":171},{"type":15,"tag":74,"props":1317,"children":1318},{},[1319],{"type":20,"value":1320},"EU-hosted service",{"type":20,"value":171},{"type":15,"tag":354,"props":1323,"children":1324},{},[1325],{"type":20,"value":1326},"Jurisdiction, procurement or institutional policy matters",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":1330,"children":1332},{"className":1331,"dataFragmentIndex":167,"style":1301},[376,166,441],[1333,1337],{"type":15,"tag":74,"props":1334,"children":1335},{},[1336],{"type":20,"value":1307},{"type":20,"value":1338}," Which legal entity, subprocessors and service commitments apply?",{"type":20,"value":156},{"type":15,"tag":61,"props":1341,"children":1343},{"className":1342,"dataFragmentIndex":181,"style":1282},[342,166],[1344,1345,1350,1351,1356],{"type":20,"value":171},{"type":15,"tag":74,"props":1346,"children":1347},{},[1348],{"type":20,"value":1349},"Institution-hosted service",{"type":20,"value":171},{"type":15,"tag":354,"props":1352,"children":1353},{},[1354],{"type":20,"value":1355},"Sensitive data or local integration matters",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":1359,"children":1361},{"className":1360,"dataFragmentIndex":181,"style":1301},[376,166,441],[1362,1366],{"type":15,"tag":74,"props":1363,"children":1364},{},[1365],{"type":20,"value":1307},{"type":20,"value":1367}," Who operates it, who can access logs and how is it maintained?",{"type":20,"value":156},{"type":15,"tag":61,"props":1370,"children":1372},{"className":1371,"dataFragmentIndex":194,"style":1282},[342,166],[1373,1374,1379,1380,1385],{"type":20,"value":171},{"type":15,"tag":74,"props":1375,"children":1376},{},[1377],{"type":20,"value":1378},"Local model",{"type":20,"value":171},{"type":15,"tag":354,"props":1381,"children":1382},{},[1383],{"type":20,"value":1384},"Data must remain within a controlled environment",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":1388,"children":1390},{"className":1389,"dataFragmentIndex":194,"style":1301},[376,166,441],[1391,1395],{"type":15,"tag":74,"props":1392,"children":1393},{},[1394],{"type":20,"value":1307},{"type":20,"value":1396}," What quality, update, support and security trade-offs follow?",{"type":15,"tag":37,"props":1398,"children":1399},{},[1400],{"type":20,"value":250},{"type":15,"tag":66,"props":1402,"children":1403},{},[1404,1409],{"type":15,"tag":70,"props":1405,"children":1406},{},[1407],{"type":20,"value":1408},"The routes run from most convenient (commercial) to most control (local)",{"type":15,"tag":70,"props":1410,"children":1411},{},[1412,1414],{"type":20,"value":1413},"Open-weight models are a property of the model, not a hosting route: they can run on any of these routes\n",{"type":15,"tag":66,"props":1415,"children":1416},{},[1417,1422],{"type":15,"tag":70,"props":1418,"children":1419},{},[1420],{"type":20,"value":1421},"Useful when inspectability, adaptation or local execution matters",{"type":15,"tag":70,"props":1423,"children":1424},{},[1425],{"type":20,"value":1426},"Ask: What do the licence, training-data disclosures and hardware needs permit?",{"type":15,"tag":37,"props":1428,"children":1429},{},[1430],{"type":20,"value":52},{"type":15,"tag":54,"props":1432,"children":1434},{"id":1433},"residency-vs-jurisdiction",[1435],{"type":20,"value":1436},"Residency vs Jurisdiction",{"type":15,"tag":66,"props":1438,"children":1439},{},[1440,1450,1460,1465],{"type":15,"tag":70,"props":1441,"children":1442},{},[1443,1448],{"type":15,"tag":74,"props":1444,"children":1445},{},[1446],{"type":20,"value":1447},"Residency",{"type":20,"value":1449},": where the data is stored and processed",{"type":15,"tag":70,"props":1451,"children":1452},{},[1453,1458],{"type":15,"tag":74,"props":1454,"children":1455},{},[1456],{"type":20,"value":1457},"Jurisdiction",{"type":20,"value":1459},": whose law applies to the provider",{"type":15,"tag":70,"props":1461,"children":1462},{},[1463],{"type":20,"value":1464},"An EU datacenter run by a US company is still subject to the US CLOUD Act",{"type":15,"tag":70,"props":1466,"children":1467},{},[1468],{"type":20,"value":1469},"Also check: Data Processing Addendum (DPA), Zero Data Retention (ZDR), subprocessors, no training on your data",{"type":15,"tag":37,"props":1471,"children":1472},{},[1473],{"type":20,"value":250},{"type":15,"tag":66,"props":1475,"children":1476},{},[1477,1482],{"type":15,"tag":70,"props":1478,"children":1479},{},[1480],{"type":20,"value":1481},"DPA, ZDR - see Exercise 2 \"Client Settings\"",{"type":15,"tag":70,"props":1483,"children":1484},{},[1485,1487,1492,1494],{"type":20,"value":1486},"Some LLM \"vendors\" offer models themselves, others are ",{"type":15,"tag":382,"props":1488,"children":1489},{},[1490],{"type":20,"value":1491},"routers",{"type":20,"value":1493}," that broker between you and other vendors\n",{"type":15,"tag":66,"props":1495,"children":1496},{},[1497],{"type":15,"tag":70,"props":1498,"children":1499},{},[1500,1502,1507],{"type":20,"value":1501},"Now you have ",{"type":15,"tag":382,"props":1503,"children":1504},{},[1505],{"type":20,"value":1506},"two",{"type":20,"value":1508}," companies to check",{"type":15,"tag":37,"props":1510,"children":1511},{},[1512],{"type":20,"value":52},{"type":15,"tag":54,"props":1514,"children":1516},{"id":1515},"cost-model",[1517],{"type":20,"value":1518},"Cost Model",{"type":15,"tag":66,"props":1520,"children":1521},{},[1522,1532,1542,1555],{"type":15,"tag":70,"props":1523,"children":1524},{},[1525,1530],{"type":15,"tag":74,"props":1526,"children":1527},{},[1528],{"type":20,"value":1529},"Subscription",{"type":20,"value":1531},": flat fee, usage limits",{"type":15,"tag":70,"props":1533,"children":1534},{},[1535,1540],{"type":15,"tag":74,"props":1536,"children":1537},{},[1538],{"type":20,"value":1539},"API",{"type":20,"value":1541},": pay per token, input and output priced separately",{"type":15,"tag":70,"props":1543,"children":1544},{},[1545,1547],{"type":20,"value":1546},"Agentic use consumes far more tokens than chat — the whole context is re-sent every turn\n",{"type":15,"tag":66,"props":1548,"children":1549},{},[1550],{"type":15,"tag":70,"props":1551,"children":1552},{},[1553],{"type":20,"value":1554},"Cache hits are cheaper, but cost still piles up",{"type":15,"tag":70,"props":1556,"children":1557},{},[1558],{"type":20,"value":1559},"Larger models cost more: match model size to the task",{"type":15,"tag":37,"props":1561,"children":1562},{},[1563],{"type":20,"value":250},{"type":15,"tag":66,"props":1565,"children":1566},{},[1567,1572,1577,1597],{"type":15,"tag":70,"props":1568,"children":1569},{},[1570],{"type":20,"value":1571},"Input tokens: what you type",{"type":15,"tag":70,"props":1573,"children":1574},{},[1575],{"type":20,"value":1576},"Output tokens: what the LLM returns",{"type":15,"tag":70,"props":1578,"children":1579},{},[1580,1582],{"type":20,"value":1581},"Cache: input + output of previous turns\n",{"type":15,"tag":66,"props":1583,"children":1584},{},[1585],{"type":15,"tag":70,"props":1586,"children":1587},{},[1588,1590,1595],{"type":20,"value":1589},"The agent processes ",{"type":15,"tag":382,"props":1591,"children":1592},{},[1593],{"type":20,"value":1594},"the entire conversation",{"type":20,"value":1596}," every turn",{"type":15,"tag":70,"props":1598,"children":1599},{},[1600,1602],{"type":20,"value":1601},"Tips\n",{"type":15,"tag":66,"props":1603,"children":1604},{},[1605,1610,1615],{"type":15,"tag":70,"props":1606,"children":1607},{},[1608],{"type":20,"value":1609},"Start a new conversation for a new topic",{"type":15,"tag":70,"props":1611,"children":1612},{},[1613],{"type":20,"value":1614},"Use cheaper models for simpler tasks",{"type":15,"tag":70,"props":1616,"children":1617},{},[1618],{"type":20,"value":1619},"Play with the \"thinking\" level of models",{"type":15,"tag":37,"props":1621,"children":1622},{},[1623],{"type":20,"value":52},{"type":15,"tag":54,"props":1625,"children":1627},{"id":1626},"a-framework-for-tool-assessment",[1628],{"type":20,"value":1629},"A Framework for Tool Assessment",{"type":15,"tag":61,"props":1631,"children":1632},{"style":63},[1633],{"type":15,"tag":66,"props":1634,"children":1635},{},[1636,1646,1656,1666,1676,1686],{"type":15,"tag":70,"props":1637,"children":1638},{},[1639,1644],{"type":15,"tag":74,"props":1640,"children":1641},{},[1642],{"type":20,"value":1643},"Purpose",{"type":20,"value":1645}," What research task is being supported, and what would count as success?",{"type":15,"tag":70,"props":1647,"children":1648},{},[1649,1654],{"type":15,"tag":74,"props":1650,"children":1651},{},[1652],{"type":20,"value":1653},"Data",{"type":20,"value":1655}," What information enters the system, and is it sensitive, personal, confidential or unpublished?",{"type":15,"tag":70,"props":1657,"children":1658},{},[1659,1664],{"type":15,"tag":74,"props":1660,"children":1661},{},[1662],{"type":20,"value":1663},"Control",{"type":20,"value":1665}," Who can inspect, correct, stop and reproduce the workflow?",{"type":15,"tag":70,"props":1667,"children":1668},{},[1669,1674],{"type":15,"tag":74,"props":1670,"children":1671},{},[1672],{"type":20,"value":1673},"Evidence",{"type":20,"value":1675}," How will quality, bias, uncertainty and failure be checked?",{"type":15,"tag":70,"props":1677,"children":1678},{},[1679,1684],{"type":15,"tag":74,"props":1680,"children":1681},{},[1682],{"type":20,"value":1683},"Governance",{"type":20,"value":1685}," Which policies, licences, contracts and responsibilities apply?",{"type":15,"tag":70,"props":1687,"children":1688},{},[1689,1694],{"type":15,"tag":74,"props":1690,"children":1691},{},[1692],{"type":20,"value":1693},"Continuity",{"type":20,"value":1695}," Can the work be rerun if the model, provider or interface changes?",{"type":15,"tag":37,"props":1697,"children":1698},{},[1699],{"type":20,"value":41},{"type":15,"tag":23,"props":1701,"children":1703},{"id":1702},"security-biases-ethics",[1704],{"type":20,"value":1705},"Security, Biases & Ethics",{"type":15,"tag":37,"props":1707,"children":1708},{},[1709],{"type":20,"value":52},{"type":15,"tag":54,"props":1711,"children":1713},{"id":1712},"a-risk-map-for-research-support",[1714],{"type":20,"value":1715},"A Risk Map for Research Support",{"type":15,"tag":16,"props":1717,"children":1718},{},[1719],{"type":20,"value":331},{"type":15,"tag":61,"props":1721,"children":1725},{"className":1722,"style":1724},[335,1723],"dim","font-size:0.82em; text-align:left;",[1726,1727,1806,1807],{"type":20,"value":156},{"type":15,"tag":61,"props":1728,"children":1730},{"style":1729},"display:grid; grid-template-columns:repeat(12, 1fr); gap:0.6em;",[1731,1732,1742,1743,1752,1753,1762,1763,1772,1773,1783,1784,1794,1795,1805],{"type":20,"value":171},{"type":15,"tag":61,"props":1733,"children":1736},{"className":1734,"dataFragmentIndex":167,"style":1735},[342,343,166],"grid-column:span 3; padding:0.5em 0.8em; background:lightgray; border-radius:8px;",[1737],{"type":15,"tag":74,"props":1738,"children":1739},{},[1740],{"type":20,"value":1741},"🎯 Reliability",{"type":20,"value":171},{"type":15,"tag":61,"props":1744,"children":1746},{"className":1745,"dataFragmentIndex":167,"style":1735},[342,166],[1747],{"type":15,"tag":74,"props":1748,"children":1749},{},[1750],{"type":20,"value":1751},"🔒 Privacy",{"type":20,"value":171},{"type":15,"tag":61,"props":1754,"children":1756},{"className":1755,"dataFragmentIndex":181,"style":1735},[342,166],[1757],{"type":15,"tag":74,"props":1758,"children":1759},{},[1760],{"type":20,"value":1761},"🛡️ Security",{"type":20,"value":171},{"type":15,"tag":61,"props":1764,"children":1766},{"className":1765,"dataFragmentIndex":194,"style":1735},[342,166],[1767],{"type":15,"tag":74,"props":1768,"children":1769},{},[1770],{"type":20,"value":1771},"⚖️ Bias",{"type":20,"value":171},{"type":15,"tag":61,"props":1774,"children":1777},{"className":1775,"dataFragmentIndex":224,"style":1776},[342,166],"grid-column:span 4; padding:0.5em 0.8em; background:lightgray; border-radius:8px;",[1778],{"type":15,"tag":74,"props":1779,"children":1780},{},[1781],{"type":20,"value":1782},"©️ Copyright",{"type":20,"value":171},{"type":15,"tag":61,"props":1785,"children":1788},{"className":1786,"dataFragmentIndex":1787,"style":1776},[342,166],"4",[1789],{"type":15,"tag":74,"props":1790,"children":1791},{},[1792],{"type":20,"value":1793},"🔁 Reproducibility",{"type":20,"value":171},{"type":15,"tag":61,"props":1796,"children":1799},{"className":1797,"dataFragmentIndex":1798,"style":1776},[342,166],"5",[1800],{"type":15,"tag":74,"props":1801,"children":1802},{},[1803],{"type":20,"value":1804},"🌱 Sustainability",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":61,"props":1808,"children":1810},{"style":1809},"display:grid; margin-top:1em;",[1811,1812,1847,1848,1879,1880,1911,1912,1943,1944,1975,1976,2007,2008,2039],{"type":20,"value":171},{"type":15,"tag":61,"props":1813,"children":1816},{"className":1814,"dataFragmentIndex":167,"style":1815},[166,377],"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;",[1817,1818,1832,1833,1846],{"type":20,"value":184},{"type":15,"tag":61,"props":1819,"children":1820},{},[1821,1826,1830],{"type":15,"tag":74,"props":1822,"children":1823},{},[1824],{"type":20,"value":1825},"Typical failure",{"type":15,"tag":1827,"props":1828,"children":1829},"br",{},[],{"type":20,"value":1831},"Plausible but false claims, fabricated references or buggy code",{"type":20,"value":184},{"type":15,"tag":61,"props":1834,"children":1835},{},[1836,1841,1844],{"type":15,"tag":74,"props":1837,"children":1838},{},[1839],{"type":20,"value":1840},"Support response",{"type":15,"tag":1827,"props":1842,"children":1843},{},[],{"type":20,"value":1845},"Require source checking, tests, domain review and uncertainty labels",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":1849,"children":1851},{"className":1850,"dataFragmentIndex":167,"style":1815},[166,441],[1852,1853,1865,1866,1878],{"type":20,"value":184},{"type":15,"tag":61,"props":1854,"children":1855},{},[1856,1860,1863],{"type":15,"tag":74,"props":1857,"children":1858},{},[1859],{"type":20,"value":1825},{"type":15,"tag":1827,"props":1861,"children":1862},{},[],{"type":20,"value":1864},"Sensitive prompts or files reach an external provider",{"type":20,"value":184},{"type":15,"tag":61,"props":1867,"children":1868},{},[1869,1873,1876],{"type":15,"tag":74,"props":1870,"children":1871},{},[1872],{"type":20,"value":1840},{"type":15,"tag":1827,"props":1874,"children":1875},{},[],{"type":20,"value":1877},"Classify data, use approved environments and minimise inputs",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":1881,"children":1883},{"className":1882,"dataFragmentIndex":181,"style":1815},[166,441],[1884,1885,1897,1898,1910],{"type":20,"value":184},{"type":15,"tag":61,"props":1886,"children":1887},{},[1888,1892,1895],{"type":15,"tag":74,"props":1889,"children":1890},{},[1891],{"type":20,"value":1825},{"type":15,"tag":1827,"props":1893,"children":1894},{},[],{"type":20,"value":1896},"Prompt injection, malicious content, unsafe tool calls or leaked secrets",{"type":20,"value":184},{"type":15,"tag":61,"props":1899,"children":1900},{},[1901,1905,1908],{"type":15,"tag":74,"props":1902,"children":1903},{},[1904],{"type":20,"value":1840},{"type":15,"tag":1827,"props":1906,"children":1907},{},[],{"type":20,"value":1909},"Limit permissions, sandbox actions and review connected tools",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":1913,"children":1915},{"className":1914,"dataFragmentIndex":194,"style":1815},[166,441],[1916,1917,1929,1930,1942],{"type":20,"value":184},{"type":15,"tag":61,"props":1918,"children":1919},{},[1920,1924,1927],{"type":15,"tag":74,"props":1921,"children":1922},{},[1923],{"type":20,"value":1825},{"type":15,"tag":1827,"props":1925,"children":1926},{},[],{"type":20,"value":1928},"Training data or evaluation gaps shape outputs",{"type":20,"value":184},{"type":15,"tag":61,"props":1931,"children":1932},{},[1933,1937,1940],{"type":15,"tag":74,"props":1934,"children":1935},{},[1936],{"type":20,"value":1840},{"type":15,"tag":1827,"props":1938,"children":1939},{},[],{"type":20,"value":1941},"Examine affected groups, document limitations and seek domain expertise",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":1945,"children":1947},{"className":1946,"dataFragmentIndex":224,"style":1815},[166,441],[1948,1949,1961,1962,1974],{"type":20,"value":184},{"type":15,"tag":61,"props":1950,"children":1951},{},[1952,1956,1959],{"type":15,"tag":74,"props":1953,"children":1954},{},[1955],{"type":20,"value":1825},{"type":15,"tag":1827,"props":1957,"children":1958},{},[],{"type":20,"value":1960},"Outputs or training data create unclear reuse conditions",{"type":20,"value":184},{"type":15,"tag":61,"props":1963,"children":1964},{},[1965,1969,1972],{"type":15,"tag":74,"props":1966,"children":1967},{},[1968],{"type":20,"value":1840},{"type":15,"tag":1827,"props":1970,"children":1971},{},[],{"type":20,"value":1973},"Check licences, provenance, attribution and institutional guidance",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":1977,"children":1979},{"className":1978,"dataFragmentIndex":1787,"style":1815},[166,441],[1980,1981,1993,1994,2006],{"type":20,"value":184},{"type":15,"tag":61,"props":1982,"children":1983},{},[1984,1988,1991],{"type":15,"tag":74,"props":1985,"children":1986},{},[1987],{"type":20,"value":1825},{"type":15,"tag":1827,"props":1989,"children":1990},{},[],{"type":20,"value":1992},"Model, prompt, retrieval context or interface changes",{"type":20,"value":184},{"type":15,"tag":61,"props":1995,"children":1996},{},[1997,2001,2004],{"type":15,"tag":74,"props":1998,"children":1999},{},[2000],{"type":20,"value":1840},{"type":15,"tag":1827,"props":2002,"children":2003},{},[],{"type":20,"value":2005},"Record versions, inputs, settings, outputs and review decisions",{"type":20,"value":171},{"type":20,"value":171},{"type":15,"tag":61,"props":2009,"children":2011},{"className":2010,"dataFragmentIndex":1798,"style":1815},[166,441],[2012,2013,2025,2026,2038],{"type":20,"value":184},{"type":15,"tag":61,"props":2014,"children":2015},{},[2016,2020,2023],{"type":15,"tag":74,"props":2017,"children":2018},{},[2019],{"type":20,"value":1825},{"type":15,"tag":1827,"props":2021,"children":2022},{},[],{"type":20,"value":2024},"Resource-intensive computation or duplicated infrastructure",{"type":20,"value":184},{"type":15,"tag":61,"props":2027,"children":2028},{},[2029,2033,2036],{"type":15,"tag":74,"props":2030,"children":2031},{},[2032],{"type":20,"value":1840},{"type":15,"tag":1827,"props":2034,"children":2035},{},[],{"type":20,"value":2037},"Match model size and frequency to the task; prefer proportionate use",{"type":20,"value":171},{"type":20,"value":156},{"type":15,"tag":37,"props":2041,"children":2042},{},[2043],{"type":20,"value":250},{"type":15,"tag":66,"props":2045,"children":2046},{},[2047,2052,2057],{"type":15,"tag":70,"props":2048,"children":2049},{},[2050],{"type":20,"value":2051},"Privacy includes confidentiality",{"type":15,"tag":70,"props":2053,"children":2054},{},[2055],{"type":20,"value":2056},"Bias includes representativeness",{"type":15,"tag":70,"props":2058,"children":2059},{},[2060],{"type":20,"value":2061},"Copyright includes licensing",{"type":15,"tag":37,"props":2063,"children":2064},{},[2065],{"type":20,"value":52},{"type":15,"tag":54,"props":2067,"children":2069},{"id":2068},"the-lethal-trifecta",[2070],{"type":20,"value":2071},"The Lethal Trifecta",{"type":15,"tag":37,"props":2073,"children":2074},{},[2075,2077,2082],{"type":20,"value":2076},"Dangerous when an agent has ",{"type":15,"tag":74,"props":2078,"children":2079},{},[2080],{"type":20,"value":2081},"all three",{"type":20,"value":2083},":",{"type":15,"tag":596,"props":2085,"children":2086},{},[2087,2092,2097],{"type":15,"tag":70,"props":2088,"children":2089},{},[2090],{"type":20,"value":2091},"Access to private data 🔐",{"type":15,"tag":70,"props":2093,"children":2094},{},[2095],{"type":20,"value":2096},"Exposure to untrusted content (web pages, issues, emails, files) 🌐",{"type":15,"tag":70,"props":2098,"children":2099},{},[2100],{"type":20,"value":2101},"A way to communicate externally 📤",{"type":15,"tag":1827,"props":2103,"children":2104},{},[],{"type":15,"tag":1827,"props":2106,"children":2107},{},[],{"type":15,"tag":66,"props":2109,"children":2110},{},[2111,2112,2118,2119],{"type":20,"value":156},{"type":15,"tag":70,"props":2113,"children":2115},{"className":2114},[166],[2116],{"type":20,"value":2117},"Remove one leg, and prompt injection loses most of its teeth.",{"type":20,"value":156},{"type":15,"tag":70,"props":2120,"children":2122},{"className":2121},[166],[2123,2125,2130],{"type":20,"value":2124},"Sandboxing can help protecting against injection ",{"type":15,"tag":382,"props":2126,"children":2127},{},[2128],{"type":20,"value":2129},"and",{"type":20,"value":2131}," mistakes.",{"type":15,"tag":37,"props":2133,"children":2134},{},[2135],{"type":20,"value":52},{"type":15,"tag":54,"props":2137,"children":2139},{"id":2138},"licensing",[2140],{"type":20,"value":2141},"Licensing",{"type":15,"tag":66,"props":2143,"children":2144},{},[2145,2150,2155,2173],{"type":15,"tag":70,"props":2146,"children":2147},{},[2148],{"type":20,"value":2149},"Purely AI-generated output is likely not copyrightable (US and EU)",{"type":15,"tag":70,"props":2151,"children":2152},{},[2153],{"type":20,"value":2154},"Open-source licences rely on copyright, so licensing purely AI-written code is shaky",{"type":15,"tag":70,"props":2156,"children":2157},{},[2158,2160],{"type":20,"value":2159},"Generated code may reproduce licensed code verbatim\n",{"type":15,"tag":66,"props":2161,"children":2162},{},[2163,2168],{"type":15,"tag":70,"props":2164,"children":2165},{},[2166],{"type":20,"value":2167},"Snippet scanners exist (e.g. SCANOSS), but tooling is immature",{"type":15,"tag":70,"props":2169,"children":2170},{},[2171],{"type":20,"value":2172},"Vendor \"public code\" filters and indemnities shift liability, but don't guarantee clean code",{"type":15,"tag":70,"props":2174,"children":2175},{},[2176],{"type":20,"value":2177},"Some open-source projects restrict or ban AI-generated contributions",{"type":15,"tag":37,"props":2179,"children":2180},{},[2181],{"type":20,"value":52},{"type":15,"tag":54,"props":2183,"children":2185},{"id":2184},"exercise-2-checking-ai-client-settings-15-mins",[2186],{"type":20,"value":2187},"Exercise 2: Checking AI Client Settings (15 mins)",{"type":15,"tag":37,"props":2189,"children":2190},{},[2191],{"type":20,"value":41},{"type":15,"tag":23,"props":2193,"children":2195},{"id":2194},"practice",[2196],{"type":20,"value":2197},"Practice",{"type":15,"tag":37,"props":2199,"children":2200},{},[2201],{"type":20,"value":52},{"type":15,"tag":54,"props":2203,"children":2205},{"id":2204},"good-practices",[2206],{"type":20,"value":2207},"Good Practices",{"type":15,"tag":596,"props":2209,"children":2210},{},[2211,2216,2221,2226],{"type":15,"tag":70,"props":2212,"children":2213},{},[2214],{"type":20,"value":2215},"Before touching code, discuss the architecture with the AI — it's a good sparring partner",{"type":15,"tag":70,"props":2217,"children":2218},{},[2219],{"type":20,"value":2220},"Ask it to review your plan and surface edge cases you haven't considered",{"type":15,"tag":70,"props":2222,"children":2223},{},[2224],{"type":20,"value":2225},"Supply links to relevant documentation in your prompt",{"type":15,"tag":70,"props":2227,"children":2228},{},[2229],{"type":20,"value":2230},"Write the agreed plan to a file — this becomes compact context for future sessions",{"type":15,"tag":37,"props":2232,"children":2233},{},[2234],{"type":20,"value":250},{"type":15,"tag":66,"props":2236,"children":2237},{},[2238],{"type":15,"tag":70,"props":2239,"children":2240},{},[2241],{"type":20,"value":2242},"Also see tab \"Prompt Engineering\"",{"type":15,"tag":37,"props":2244,"children":2245},{},[2246],{"type":20,"value":52},{"type":15,"tag":54,"props":2248,"children":2250},{"id":2249},"the-prompt-framework",[2251],{"type":20,"value":2252},"The Prompt Framework",{"type":15,"tag":37,"props":2254,"children":2255},{},[2256],{"type":15,"tag":74,"props":2257,"children":2258},{},[2259],{"type":20,"value":2260},"Role + Context + Task + Constraints + References",{"type":15,"tag":2262,"props":2263,"children":2265},"table",{"style":2264},"width:100%; border-collapse:collapse; font-size: smaller;",[2266,2267],{"type":20,"value":156},{"type":15,"tag":2268,"props":2269,"children":2270},"tbody",{},[2271,2294,2295,2314,2315,2334,2335,2354,2355],{"type":15,"tag":2272,"props":2273,"children":2274},"tr",{},[2275,2276,2286,2287,2293],{"type":20,"value":171},{"type":15,"tag":2277,"props":2278,"children":2280},"td",{"style":2279},"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;",[2281],{"type":15,"tag":74,"props":2282,"children":2283},{},[2284],{"type":20,"value":2285},"Role",{"type":20,"value":171},{"type":15,"tag":2277,"props":2288,"children":2290},{"style":2289},"padding:0.4rem 0.8rem;",[2291],{"type":20,"value":2292},"\"You are helping an RSE writing a data analysis pipeline in Python…\"",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":2272,"props":2296,"children":2297},{},[2298,2299,2307,2308,2313],{"type":20,"value":171},{"type":15,"tag":2277,"props":2300,"children":2301},{"style":2279},[2302],{"type":15,"tag":74,"props":2303,"children":2304},{},[2305],{"type":20,"value":2306},"Context",{"type":20,"value":171},{"type":15,"tag":2277,"props":2309,"children":2310},{"style":2289},[2311],{"type":20,"value":2312},"Hardware, data format, scale, existing codebase, language/version",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":2272,"props":2316,"children":2317},{},[2318,2319,2327,2328,2333],{"type":20,"value":171},{"type":15,"tag":2277,"props":2320,"children":2321},{"style":2279},[2322],{"type":15,"tag":74,"props":2323,"children":2324},{},[2325],{"type":20,"value":2326},"Task",{"type":20,"value":171},{"type":15,"tag":2277,"props":2329,"children":2330},{"style":2289},[2331],{"type":20,"value":2332},"Specific, measurable outcome — not \"make it faster\", but \"reduce runtime below 30s on 10GB input\"",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":2272,"props":2336,"children":2337},{},[2338,2339,2347,2348,2353],{"type":20,"value":171},{"type":15,"tag":2277,"props":2340,"children":2341},{"style":2279},[2342],{"type":15,"tag":74,"props":2343,"children":2344},{},[2345],{"type":20,"value":2346},"Constraints",{"type":20,"value":171},{"type":15,"tag":2277,"props":2349,"children":2350},{"style":2289},[2351],{"type":20,"value":2352},"Memory limits, coding conventions, libraries allowed, what must not change",{"type":20,"value":156},{"type":20,"value":156},{"type":15,"tag":2272,"props":2356,"children":2357},{},[2358,2359,2367,2368,2373],{"type":20,"value":171},{"type":15,"tag":2277,"props":2360,"children":2361},{"style":2279},[2362],{"type":15,"tag":74,"props":2363,"children":2364},{},[2365],{"type":20,"value":2366},"References",{"type":20,"value":171},{"type":15,"tag":2277,"props":2369,"children":2370},{"style":2289},[2371],{"type":20,"value":2372},"Package docs, similar code, API specs — especially for niche libraries",{"type":20,"value":156},{"type":15,"tag":37,"props":2375,"children":2376},{},[2377],{"type":20,"value":250},{"type":15,"tag":66,"props":2379,"children":2380},{},[2381],{"type":15,"tag":70,"props":2382,"children":2383},{},[2384],{"type":20,"value":2385},"The better models get, the less important the \"Role\" becomes",{"type":15,"tag":37,"props":2387,"children":2388},{},[2389],{"type":20,"value":52},{"type":15,"tag":54,"props":2391,"children":2393},{"id":2392},"prompt-engineering-tips",[2394],{"type":20,"value":2395},"Prompt Engineering Tips",{"type":15,"tag":61,"props":2397,"children":2398},{"style":63},[2399],{"type":15,"tag":66,"props":2400,"children":2401},{},[2402,2407,2419,2431,2442,2454],{"type":15,"tag":70,"props":2403,"children":2404},{},[2405],{"type":20,"value":2406},"Start broad ➜ discuss ➜ refine ➜ add constraints before implementation",{"type":15,"tag":70,"props":2408,"children":2409},{},[2410,2412,2417],{"type":20,"value":2411},"Ambiguity during ",{"type":15,"tag":382,"props":2413,"children":2414},{},[2415],{"type":20,"value":2416},"implementation",{"type":20,"value":2418}," is dangerous — be precise about signatures, types, return values",{"type":15,"tag":70,"props":2420,"children":2421},{},[2422,2424,2429],{"type":20,"value":2423},"Ask for ",{"type":15,"tag":74,"props":2425,"children":2426},{},[2427],{"type":20,"value":2428},"options",{"type":20,"value":2430},": \"Give me three approaches and their trade-offs\"",{"type":15,"tag":70,"props":2432,"children":2433},{},[2434,2435,2440],{"type":20,"value":2423},{"type":15,"tag":74,"props":2436,"children":2437},{},[2438],{"type":20,"value":2439},"steps",{"type":20,"value":2441},": \"Walk me through this optimisation step by step\"",{"type":15,"tag":70,"props":2443,"children":2444},{},[2445,2447,2452],{"type":20,"value":2446},"Provide ",{"type":15,"tag":74,"props":2448,"children":2449},{},[2450],{"type":20,"value":2451},"examples",{"type":20,"value":2453},": \"This R function does X — implement the equivalent in Python\"",{"type":15,"tag":70,"props":2455,"children":2456},{},[2457,2459,2464],{"type":20,"value":2458},"Explaining the problem clearly helps ",{"type":15,"tag":382,"props":2460,"children":2461},{},[2462],{"type":20,"value":2463},"you",{"type":20,"value":2465}," understand it better too",{"type":15,"tag":37,"props":2467,"children":2468},{},[2469],{"type":20,"value":250},{"type":15,"tag":66,"props":2471,"children":2472},{},[2473,2485],{"type":15,"tag":70,"props":2474,"children":2475},{},[2476,2478,2483],{"type":20,"value":2477},"Writing a good prompt ",{"type":15,"tag":382,"props":2479,"children":2480},{},[2481],{"type":20,"value":2482},"requires the same clarity as writing a good specification",{"type":20,"value":2484},".",{"type":15,"tag":70,"props":2486,"children":2487},{},[2488],{"type":20,"value":2489},"If you can't write a good specification, you have not fully defined the problem yet.",{"type":15,"tag":37,"props":2491,"children":2492},{},[2493],{"type":20,"value":52},{"type":15,"tag":54,"props":2495,"children":2497},{"id":2496},"transparency-about-ai",[2498],{"type":20,"value":2499},"Transparency about AI",{"type":15,"tag":37,"props":2501,"children":2502},{},[2503],{"type":20,"value":2504},"Record, where relevant:",{"type":15,"tag":66,"props":2506,"children":2507},{},[2508,2513,2518,2523,2528,2533,2538,2543],{"type":15,"tag":70,"props":2509,"children":2510},{},[2511],{"type":20,"value":2512},"purpose and research activity",{"type":15,"tag":70,"props":2514,"children":2515},{},[2516],{"type":20,"value":2517},"tool, provider, model and access route",{"type":15,"tag":70,"props":2519,"children":2520},{},[2521],{"type":20,"value":2522},"date or version information",{"type":15,"tag":70,"props":2524,"children":2525},{},[2526],{"type":20,"value":2527},"data or context supplied",{"type":15,"tag":70,"props":2529,"children":2530},{},[2531],{"type":20,"value":2532},"material generated, transformed or evaluated",{"type":15,"tag":70,"props":2534,"children":2535},{},[2536],{"type":20,"value":2537},"human review and verification performed",{"type":15,"tag":70,"props":2539,"children":2540},{},[2541],{"type":20,"value":2542},"limitations, uncertainty and unresolved concerns",{"type":15,"tag":70,"props":2544,"children":2545},{},[2546],{"type":20,"value":2547},"how the use affected authorship, attribution or interpretation",{"type":15,"tag":37,"props":2549,"children":2550},{},[2551],{"type":20,"value":52},{"type":15,"tag":54,"props":2553,"children":2555},{"id":2554},"exercise-3-ai-declaration-tool-15-min",[2556],{"type":20,"value":2557},"Exercise 3: AI Declaration Tool (15 min)",{"type":15,"tag":37,"props":2559,"children":2560},{},[2561],{"type":20,"value":41},{"type":15,"tag":23,"props":2563,"children":2565},{"id":2564},"wrap-up",[2566],{"type":20,"value":2567},"Wrap-Up",{"type":15,"tag":37,"props":2569,"children":2570},{},[2571],{"type":20,"value":52},{"type":15,"tag":54,"props":2573,"children":2575},{"id":2574},"key-takeaways",[2576],{"type":20,"value":2577},"Key Takeaways",{"type":15,"tag":66,"props":2579,"children":2580},{},[2581,2586,2591,2596,2601],{"type":15,"tag":70,"props":2582,"children":2583},{},[2584],{"type":20,"value":2585},"Generative AI is a changing capability family.",{"type":15,"tag":70,"props":2587,"children":2588},{},[2589],{"type":20,"value":2590},"Good advice starts with purpose, data, control, evidence, governance and continuity.",{"type":15,"tag":70,"props":2592,"children":2593},{},[2594],{"type":20,"value":2595},"Human review, domain knowledge and reproducible records remain central.",{"type":15,"tag":70,"props":2597,"children":2598},{},[2599],{"type":20,"value":2600},"Tool choice should follow the research workflow and institutional context.",{"type":15,"tag":70,"props":2602,"children":2603},{},[2604],{"type":20,"value":2605},"Research support professionals can turn broad principles into practical routes for safe, FAIR and sustainable use.",{"type":15,"tag":37,"props":2607,"children":2608},{},[2609],{"type":20,"value":52},{"type":15,"tag":37,"props":2611,"children":2612},{},[2613],{"type":15,"tag":2614,"props":2615,"children":2619},"a",{"href":2616,"rel":2617},"https://www.esciencecenter.nl",[2618],"nofollow",[2620],{"type":20,"value":2621},"www.esciencecenter.nl",{"type":15,"tag":37,"props":2623,"children":2624},{},[2625],{"type":15,"tag":2614,"props":2626,"children":2628},{"href":2627},"mailto:info@esciencecenter.nl",[2629],{"type":20,"value":2630},"info@esciencecenter.nl",{"type":15,"tag":37,"props":2632,"children":2633},{},[2634],{"type":20,"value":2635},"020 - 460 47 70",{"title":7,"searchDepth":2637,"depth":2637,"links":2638},2,[2639,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666],{"id":32,"depth":2640,"text":35},3,{"id":56,"depth":2637,"text":59},{"id":147,"depth":2637,"text":150},{"id":323,"depth":2637,"text":326},{"id":591,"depth":2637,"text":594},{"id":625,"depth":2637,"text":628},{"id":663,"depth":2637,"text":666},{"id":721,"depth":2637,"text":724},{"id":845,"depth":2637,"text":848},{"id":941,"depth":2637,"text":944},{"id":989,"depth":2637,"text":992},{"id":1105,"depth":2637,"text":1108},{"id":1230,"depth":2637,"text":1233},{"id":1250,"depth":2637,"text":1253},{"id":1433,"depth":2637,"text":1436},{"id":1515,"depth":2637,"text":1518},{"id":1626,"depth":2637,"text":1629},{"id":1712,"depth":2637,"text":1715},{"id":2068,"depth":2637,"text":2071},{"id":2138,"depth":2637,"text":2141},{"id":2184,"depth":2637,"text":2187},{"id":2204,"depth":2637,"text":2207},{"id":2249,"depth":2637,"text":2252},{"id":2392,"depth":2637,"text":2395},{"id":2496,"depth":2637,"text":2499},{"id":2554,"depth":2637,"text":2557},{"id":2574,"depth":2637,"text":2577},"markdown","local_fs:modules:gen-ai:slides-intro.md","local_fs","modules/gen-ai/slides-intro.md","modules/gen-ai/slides-intro","md","---\ntitle: Introduction Slides\ntype: slides\norder: 1\n---\n\n\u003Cstyle>\n.reveal.overview {\n  background-color: gray;\n}\n\u003C/style>\n\n\u003C!-- .slide: data-state=\"title blue_overlay yellow_flag yellow_strip purple_half_circle_bottom purple_blob right_e_top\" data-background-video=\"media/15681494_960_540_30fps.mp4\" data-background-video-loop=\"true\" data-background-video-muted=\"true\" -->\n\u003C!-- https://www.pexels.com/video/futuristic-circuit-board-animation-37013442/ -->\n\n# Generative AI\n\n### A Pilot\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\u003C!-- https://www.pexels.com/photo/very-large-array-observation-facility-in-new-mexico-usa-5032708/ -->\n\n# Overview\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## A Brief History of AI\n\n\u003Cdiv style=\"font-size: smaller;\">\n\n- **1940s–1950s**: neural computation, Turing’s questions and early machine intelligence\n- **1956 onward**: AI becomes a named research field, initially dominated by symbolic reasoning\n- **1960s–1970s**: strong optimism, expert systems and public investment\n- **AI winters**: limited computing, brittle systems, theoretical limits and unmet promises reduce confidence\n- **1980s–2000s**: expert systems, statistical learning, better data and larger computation\n- **2010s onward**: deep learning and foundation models enable broad generative capabilities\n- **2022+**: Chat LLM's (OpenAI launches public ChatGPT)\n\n\u003C/div>\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## From AI to genAI\n\n\u003Cdiv style=\"font-size:0.82em; text-align:left; padding:0.6rem 1rem 1rem; border:2px solid lightgray; border-radius:8px;\">\n  \u003Cstrong>Artificial Intelligence\u003C/strong>\n  \u003Cdiv class=\"fragment\" data-fragment-index=\"0\" style=\"margin-top:0.5rem; padding:0.6rem 1rem 1rem; border:2px solid lightgray; border-radius:8px;\">\n    \u003Cstrong>Machine Learning\u003C/strong>\n    \u003Cdiv class=\"fragment\" data-fragment-index=\"1\" style=\"margin-top:0.5rem; padding:0.6rem 1rem 1rem; border:2px solid lightgray; border-radius:8px;\">\n      \u003Cstrong>Deep Learning\u003C/strong>\n      \u003Cdiv class=\"fragment\" data-fragment-index=\"2\" style=\"margin-top:0.5rem; padding:0.6rem 1rem 1rem; background:lightgray; border-radius:8px;\">\n        \u003Cstrong>Generative AI\u003C/strong>\n        \u003Cdiv style=\"display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem; margin-top:0.5rem; text-align:center;\">\n          \u003Cdiv style=\"padding:0.6rem; background:white; border-radius:8px; border:2px solid white;\">\u003Cstrong>Language models\u003C/strong>\u003C/div>\n          \u003Cdiv class=\"fragment semi-fade-out\" data-fragment-index=\"3\" style=\"padding:0.6rem; background:white; border-radius:8px; border:2px solid white;\">Image models\u003C/div>\n          \u003Cdiv class=\"fragment semi-fade-out\" data-fragment-index=\"3\" style=\"padding:0.6rem; background:white; border-radius:8px; border:2px solid white;\">Audio models\u003C/div>\n          \u003Cdiv class=\"fragment semi-fade-out\" data-fragment-index=\"3\" style=\"padding:0.6rem; background:white; border-radius:8px; border:2px solid white;\">Video models\u003C/div>\n        \u003C/div>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/div>\n\nNote:\n- Most AI is not generative\n- AI: expert systems, rule-based reasoning, search and planning, **and machine learning**\n- Machine learning: linear regression, random forests, clustering, **and deep learning**\n- Deep learning: image classifiers, speech recognition, anomaly detection, and **genAI**\n- genAI: Many current models are multimodal and span several of the four types\n- Simplifications:\n  - Generative AI sits inside deep learning in practice today, not by definition (earlier generative methods such as Markov chains were not deep learning)\n  - Not every language model is generative: encoder models such as BERT are used to classify and embed\n- Language models are the focus of this module\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## AI Capabilities\n\n\u003Cstyle>\n  .reveal .stepper .step { border: 2px solid lightgray; }\n  .reveal .stepper .step.fragment.current-fragment { border-color: blue; }\n  .reveal .stepper .step.first { border-color: blue; }\n  .reveal .stepper .step.first.fragment.visible { border-color: lightgray; }\n  .reveal .stepper.dim .step.fragment { opacity: 0.35; visibility: inherit; }\n  .reveal .stepper .step.first.fragment,\n  .reveal .stepper.dim .step.fragment.visible { opacity: 1; visibility: inherit; }\n  .reveal .stepper .detail.fragment.current-visible:not(.current-fragment),\n  .reveal .stepper .detail.fragment.fade-out.visible { display: none !important; }\n\u003C/style>\n\u003Cdiv class=\"stepper\" style=\"min-height:18em; font-size:0.82em; text-align:left;\">\n  \u003Cdiv class=\"step first fragment\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Create\u003C/strong>\n    \u003Cspan>Generate\u003C/span>\n    \u003Cspan>Summarize\u003C/span>\n    \u003Cspan>Translate\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment fade-out\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:start; margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\n    \u003Cem style=\"color:gray;\">e.g.\u003C/em>\n    \u003Cspan>Draft text, code, images, slides\u003C/span>\n    \u003Cspan>Papers, meeting notes, transcripts\u003C/span>\n    \u003Cspan>Languages, programming languages\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Understand\u003C/strong>\n    \u003Cspan>Classify\u003C/span>\n    \u003Cspan>Extract\u003C/span>\n    \u003Cspan>Detect\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:start; margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\n    \u003Cem style=\"color:gray;\">e.g.\u003C/em>\n    \u003Cspan>Publications, species, images, emails\u003C/span>\n    \u003Cspan>Metadata, entities, keywords\u003C/span>\n    \u003Cspan>Anomalies, fraud, tumors\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"1\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Find\u003C/strong>\n    \u003Cspan>Search\u003C/span>\n    \u003Cspan>Recommend\u003C/span>\n    \u003Cspan>Predict\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"1\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:start; margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\n    \u003Cem style=\"color:gray;\">e.g.\u003C/em>\n    \u003Cspan>Semantic search over documents\u003C/span>\n    \u003Cspan>Papers, resources\u003C/span>\n    \u003Cspan>Forecast outcomes with data\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"2\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Interact\u003C/strong>\n    \u003Cspan>Converse\u003C/span>\n    \u003Cspan>Reason\u003C/span>\n    \u003Cspan>Act\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"2\" style=\"display:grid; grid-template-columns:7em repeat(3, 1fr); gap:1em; align-items:start; margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\n    \u003Cem style=\"color:gray;\">e.g.\u003C/em>\n    \u003Cspan>Chat assistants\u003C/span>\n    \u003Cspan>Solve problems, infer conclusions\u003C/span>\n    \u003Cspan>Use tools, execute workflows, control robots\u003C/span>\n  \u003C/div>\n\u003C/div>\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## Four roles for AI in research\n\n1. Research object: study AI systems, data, behaviour or impacts\n2. Research instrument: use AI to measure, classify, generate or analyse\n3. Research co-creator: use AI during ideation, drafting or interpretation\n4. Research infrastructure: embed AI in services, repositories, portals or workflows\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## What is an LLM?\n\n- Predicts the next token, one at a time: fluent ≠ true\n- Non-deterministic: same prompt, different answers\n- Frozen at a training cutoff: doesn't know the latest library versions\n- No separation between instructions and data: everything is just text in the context\n- Context window: everything the model \"sees\" — fills up, degrades, gets compacted\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## Agent = Model + Harness\n\n- **Model**: the LLM, stateless, only produces text\n- **Harness**: the loop around it — runs tools, enforces permissions, manages context\n  - Tools: file edits, shell, web search, MCP servers\n  - Skills and instruction files `AGENTS.md`\n  - \"Memory\" is just files fed back into the context\n\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## How GenAI fits in your workflow\n\n\u003Cdiv style=\"display:grid; grid-template-columns:repeat(6, 1fr); gap:1rem; font-size:0.82em; text-align:left;\">\n  \u003Cdiv style=\"grid-column:span 2; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;\">\n    \u003Cstrong>💬 Planning / Sparring\u003C/strong>\n    \u003Cp style=\"margin:0.4rem 0 0;\">Discuss architecture, talk through trade-offs, get a second opinion on your design\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"grid-column:span 2; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;\">\n    \u003Cstrong>⌨️ Tab Completion\u003C/strong>\n    \u003Cp style=\"margin:0.4rem 0 0;\">Inline suggestions as you type — low risk, high daily value\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"grid-column:span 2; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;\">\n    \u003Cstrong>🧱 Code Block Generation\u003C/strong>\n    \u003Cp style=\"margin:0.4rem 0 0;\">Ask for a function, a regex, a test — review and integrate manually\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"grid-column:span 3; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid blue;\">\n    \u003Cstrong>🤖 Agentic Coding\u003C/strong>\n    \u003Cp style=\"margin:0.4rem 0 0;\">Model reads/writes files, runs tests, operates autonomously — \u003Cem>our focus today\u003C/em>\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"grid-column:span 3; padding:0.9rem; background:lightgray; border-radius:8px; border:2px solid lightgray;\">\n    \u003Cstrong>🌟 Autonomous Agents\u003C/strong>\n    \u003Cp style=\"margin:0.4rem 0 0;\">Execute scheduled tasks, react to web hooks, no or little user interaction\u003C/p>\n  \u003C/div>\n\u003C/div>\n\nNote:\n- Different risk profiles per use-case\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-braincontour-3018267-5032708.jpg\" -->\n\n## What You Can Use It For Today\n\n\u003Cdiv style=\"display:grid; grid-template-columns:1fr 1fr; gap:1rem; font-size:0.82em; text-align:left;\">\n  \u003Cdiv style=\"padding:0.9rem; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>🔍 Code Explanation\u003C/strong>\n    \u003Cp>Paste unfamiliar code and ask for a walkthrough — useful for legacy scripts or inherited projects\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"padding:0.9rem; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>♻️ Refactoring\u003C/strong>\n    \u003Cp>Restructure working code for readability, performance, or style — with tests in place first\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"padding:0.9rem; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>🧪 Tests &amp; Docs\u003C/strong>\n    \u003Cp>Generate unit tests and docstrings — read the tests, they reveal the model's assumptions\u003C/p>\n  \u003C/div>\n  \u003Cdiv class=\"fragment\" style=\"padding:0.9rem; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>🚀 DevOps\u003C/strong>\n    \u003Cp>CI config, Dockerfiles, environment files — well-covered territory with high AI reliability\u003C/p>\n  \u003C/div>\n\u003C/div>\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\u003C!-- https://pixabay.com/illustrations/weigh-up-plus-minus-libra-2856321/ -->\n\n# Strengths & Weaknesses\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\n## Well Suited\n\n- 🧑‍💻 Sparring partner / pair programmer / junior dev\n- ⚗️ Prototyping and exploring unfamiliar territory\n- 🤖 Automating repetitive or tedious tasks\n- 🌐 Popular frameworks and languages (Python, tidyverse, SQL…)\n- 🔍 Sifting through log files and stack traces\n- 📚 Learning about new-to-you technologies\n- 🔣 Regex (genuinely very good at this)\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\n## Dangerous Territory\n\n- 📜 Gigantic inputs — clobbers the context window\n- 🔮 Used as an oracle or on autopilot\n- 📈 Feature creep — it will enthusiastically build things you didn't ask for\n- 🧩 Niche frameworks and languages\n- 🧮 Statistical reasoning — wrong tools/types, silent NA drops, off-by-one errors\n- ✨ \u003Cstrong>Looks correct ≠ works correctly\u003C/strong>\n\n\u003Cp style=\"font-size:0.75em; color:chocolate; margin-top:1rem;\">\n  The output reads like it was written by a competent analyst. That is exactly the danger.\n\u003C/p>\n\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\n> \"LLMs doesn't know they are wrong. They don't know anything. They are very good at sounding right.\"\n>\n> \u003Cspan class=\"fragment\" style=\"color: gray;\">– Claude.ai, asked about LLMs\u003C/span>\n\nNote:\n\nWho said this quote?\n\nLLMs are a **pattern matcher**, not reasoner:\n- Hallucinations\n- Overconfidence\n- Domain Weakness\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\n## Up-Skill rather than De-Skill\n\n\u003Cstyle>\n  .reveal .upskill .fragment.current-visible:not(.current-fragment) { display: none; }\n  .reveal .upskill .fragment.fade-out.visible { display: none; }\n\u003C/style>\n\u003Cul class=\"upskill\" style=\"display:block; min-height:11em; font-size:0.82em; text-align:left;\">\n  \u003Cli>\u003Cstrong>Locate technical information quickly\u003C/strong>\n    \u003Cul class=\"fragment fade-out\" data-fragment-index=\"0\">\u003Cli>Instead of reading through multiple documentation pages, you can ask AI to find the relevant function, argument, or method for your task.\u003C/li>\u003C/ul>\n  \u003C/li>\n  \u003Cli class=\"fragment\" data-fragment-index=\"0\">\u003Cstrong>Summarise key concepts\u003C/strong>\n    \u003Cul class=\"fragment current-visible\" data-fragment-index=\"0\">\u003Cli>AI can condense long documentation into concise, understandable explanations. You can even ask AI to tailor explanations to your code and dataset.\u003C/li>\u003C/ul>\n  \u003C/li>\n  \u003Cli class=\"fragment\" data-fragment-index=\"1\">\u003Cstrong>Clarify ambiguous points\u003C/strong>\n    \u003Cul class=\"fragment current-visible\" data-fragment-index=\"1\">\u003Cli>You can follow up iteratively, asking AI to rephrase explanations or provide examples.\u003C/li>\u003C/ul>\n  \u003C/li>\n  \u003Cli class=\"fragment\" data-fragment-index=\"2\">\u003Cstrong>Code comprehension\u003C/strong>\n    \u003Cul class=\"fragment current-visible\" data-fragment-index=\"2\">\u003Cli>Paste code generated by AI or colleagues and ask for line-by-line explanations.\u003C/li>\u003C/ul>\n  \u003C/li>\n  \u003Cli class=\"fragment\" data-fragment-index=\"3\">\u003Cstrong>Contextual learning\u003C/strong>\n    \u003Cul class=\"fragment current-visible\" data-fragment-index=\"3\">\u003Cli>Ask why certain functions or methods are used, what alternatives exist, and best practices.\u003C/li>\u003C/ul>\n  \u003C/li>\n\u003C/ul>\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/peggy_marco-weigh-up-2856321_1280.jpg\" -->\n\n## Exercise 1: AI Battle (15 min)\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"media/pexels-dkomov-34804016.jpg\" -->\n\u003C!-- https://www.pexels.com/photo/modern-workspace-with-laptop-and-code-display-34804016/ -->\n\n# Access & Deployment\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-dkomov-34804016.jpg\" -->\n\n## Hosting\n\n\u003Cstyle>\n  .reveal .stepper .step { border: 2px solid lightgray; }\n  .reveal .stepper .step.fragment.current-fragment { border-color: blue; }\n  .reveal .stepper .step.first { border-color: blue; }\n  .reveal .stepper .step.first.fragment.visible { border-color: lightgray; }\n  .reveal .stepper.dim .step.fragment { opacity: 0.35; visibility: inherit; }\n  .reveal .stepper .step.first.fragment,\n  .reveal .stepper.dim .step.fragment.visible { opacity: 1; visibility: inherit; }\n  .reveal .stepper .detail.fragment.current-visible:not(.current-fragment),\n  .reveal .stepper .detail.fragment.fade-out.visible { display: none !important; }\n\u003C/style>\n\u003Cdiv class=\"stepper\" style=\"min-height:17em; font-size:0.82em; text-align:left;\">\n  \u003Cdiv style=\"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; margin-bottom:0.4em; padding:0 1em; border:2px solid transparent; font-size:0.8em; color:gray;\">\u003Cspan>Route\u003C/span>\u003Cspan>Useful when …\u003C/span>\u003C/div>\n  \u003Cdiv class=\"step first fragment\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Commercial hosted service\u003C/strong>\n    \u003Cspan>Fast access and broad capability matter\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment fade-out\" data-fragment-index=\"0\" style=\"margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\u003Cstrong>Ask:\u003C/strong> What data is retained, where, for how long and under which terms?\u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"0\" style=\"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>EU-hosted service\u003C/strong>\n    \u003Cspan>Jurisdiction, procurement or institutional policy matters\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"0\" style=\"margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\u003Cstrong>Ask:\u003C/strong> Which legal entity, subprocessors and service commitments apply?\u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"1\" style=\"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Institution-hosted service\u003C/strong>\n    \u003Cspan>Sensitive data or local integration matters\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"1\" style=\"margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\u003Cstrong>Ask:\u003C/strong> Who operates it, who can access logs and how is it maintained?\u003C/div>\n  \u003Cdiv class=\"step fragment\" data-fragment-index=\"2\" style=\"display:grid; grid-template-columns:1fr 1.4fr; gap:1em; align-items:center; margin-bottom:0.5em; padding:0.5em 1em; background:lightgray; border-radius:8px;\">\n    \u003Cstrong>Local model\u003C/strong>\n    \u003Cspan>Data must remain within a controlled environment\u003C/span>\n  \u003C/div>\n  \u003Cdiv class=\"detail fragment current-visible\" data-fragment-index=\"2\" style=\"margin-bottom:0.8em; padding:0 1em; border:2px solid transparent;\">\u003Cstrong>Ask:\u003C/strong> What quality, update, support and security trade-offs follow?\u003C/div>\n\u003C/div>\n\nNote:\n- The routes run from most convenient (commercial) to most control (local)\n- Open-weight models are a property of the model, not a hosting route: they can run on any of these routes\n  - Useful when inspectability, adaptation or local execution matters\n  - Ask: What do the licence, training-data disclosures and hardware needs permit?\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-dkomov-34804016.jpg\" -->\n\n## Residency vs Jurisdiction\n\n- **Residency**: where the data is stored and processed\n- **Jurisdiction**: whose law applies to the provider\n- An EU datacenter run by a US company is still subject to the US CLOUD Act\n- Also check: Data Processing Addendum (DPA), Zero Data Retention (ZDR), subprocessors, no training on your data\n\nNote:\n- DPA, ZDR - see Exercise 2 \"Client Settings\"\n- Some LLM \"vendors\" offer models themselves, others are _routers_ that broker between you and other vendors\n  - Now you have _two_ companies to check\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-dkomov-34804016.jpg\" -->\n\n## Cost Model\n\n- **Subscription**: flat fee, usage limits\n- **API**: pay per token, input and output priced separately\n- Agentic use consumes far more tokens than chat — the whole context is re-sent every turn\n  - Cache hits are cheaper, but cost still piles up\n- Larger models cost more: match model size to the task\n\nNote:\n- Input tokens: what you type\n- Output tokens: what the LLM returns\n- Cache: input + output of previous turns\n  - The agent processes _the entire conversation_ every turn\n- Tips\n  - Start a new conversation for a new topic\n  - Use cheaper models for simpler tasks\n  - Play with the \"thinking\" level of models\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-dkomov-34804016.jpg\" -->\n\n## A Framework for Tool Assessment\n\n\u003Cdiv style=\"font-size: smaller;\">\n\n- **Purpose** What research task is being supported, and what would count as success?\n- **Data** What information enters the system, and is it sensitive, personal, confidential or unpublished?\n- **Control** Who can inspect, correct, stop and reproduce the workflow?\n- **Evidence** How will quality, bias, uncertainty and failure be checked?\n- **Governance** Which policies, licences, contracts and responsibilities apply?\n- **Continuity** Can the work be rerun if the model, provider or interface changes?\n\n\u003C/div>\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"./media/pexels-ekaterina-bolovtsova-6077797.jpg\" -->\n\u003C!-- https://www.pexels.com/photo/a-golden-balance-scale-beside-a-laptop-6077797/ -->\n\n# Security, Biases & Ethics\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-ekaterina-bolovtsova-6077797.jpg\" -->\n\n## A Risk Map for Research Support\n\n\u003Cstyle>\n  .reveal .stepper .step { border: 2px solid lightgray; }\n  .reveal .stepper .step.fragment.current-fragment { border-color: blue; }\n  .reveal .stepper .step.first { border-color: blue; }\n  .reveal .stepper .step.first.fragment.visible { border-color: lightgray; }\n  .reveal .stepper.dim .step.fragment { opacity: 0.35; visibility: inherit; }\n  .reveal .stepper .step.first.fragment,\n  .reveal .stepper.dim .step.fragment.visible { opacity: 1; visibility: inherit; }\n  .reveal .stepper .detail.fragment.current-visible:not(.current-fragment),\n  .reveal .stepper .detail.fragment.fade-out.visible { display: none !important; }\n\u003C/style>\n\u003Cdiv class=\"stepper dim\" style=\"font-size:0.82em; text-align:left;\">\n  \u003Cdiv style=\"display:grid; grid-template-columns:repeat(12, 1fr); gap:0.6em;\">\n    \u003Cdiv class=\"step first fragment\" data-fragment-index=\"0\" style=\"grid-column:span 3; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>🎯 Reliability\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"0\" style=\"grid-column:span 3; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>🔒 Privacy\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"1\" style=\"grid-column:span 3; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>🛡️ Security\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"2\" style=\"grid-column:span 3; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>⚖️ Bias\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"3\" style=\"grid-column:span 4; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>©️ Copyright\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"4\" style=\"grid-column:span 4; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>🔁 Reproducibility\u003C/strong>\u003C/div>\n    \u003Cdiv class=\"step fragment\" data-fragment-index=\"5\" style=\"grid-column:span 4; padding:0.5em 0.8em; background:lightgray; border-radius:8px;\">\u003Cstrong>🌱 Sustainability\u003C/strong>\u003C/div>\n  \u003C/div>\n  \u003Cdiv style=\"display:grid; margin-top:1em;\">\n    \u003Cdiv class=\"fragment fade-out\" data-fragment-index=\"0\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Plausible but false claims, fabricated references or buggy code\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Require source checking, tests, domain review and uncertainty labels\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"0\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Sensitive prompts or files reach an external provider\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Classify data, use approved environments and minimise inputs\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"1\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Prompt injection, malicious content, unsafe tool calls or leaked secrets\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Limit permissions, sandbox actions and review connected tools\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"2\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Training data or evaluation gaps shape outputs\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Examine affected groups, document limitations and seek domain expertise\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"3\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Outputs or training data create unclear reuse conditions\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Check licences, provenance, attribution and institutional guidance\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"4\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Model, prompt, retrieval context or interface changes\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Record versions, inputs, settings, outputs and review decisions\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"fragment current-visible\" data-fragment-index=\"5\" style=\"grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; gap:2em; padding:0 0.8em;\">\n      \u003Cdiv>\u003Cstrong>Typical failure\u003C/strong>\u003Cbr>Resource-intensive computation or duplicated infrastructure\u003C/div>\n      \u003Cdiv>\u003Cstrong>Support response\u003C/strong>\u003Cbr>Match model size and frequency to the task; prefer proportionate use\u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/div>\n\nNote:\n- Privacy includes confidentiality\n- Bias includes representativeness\n- Copyright includes licensing\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-ekaterina-bolovtsova-6077797.jpg\" -->\n\n## The Lethal Trifecta\n\nDangerous when an agent has **all three**:\n\n1. Access to private data 🔐\n2. Exposure to untrusted content (web pages, issues, emails, files) 🌐\n3. A way to communicate externally 📤\n\n\u003Cbr>\n\u003Cbr>\n\n\u003Cul>\n  \u003Cli class=\"fragment\">Remove one leg, and prompt injection loses most of its teeth.\u003C/li>\n  \u003Cli class=\"fragment\">Sandboxing can help protecting against injection \u003Cem>and\u003C/em> mistakes.\u003C/li>\n\u003C/ul>\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-ekaterina-bolovtsova-6077797.jpg\" -->\n\n## Licensing\n\n- Purely AI-generated output is likely not copyrightable (US and EU)\n- Open-source licences rely on copyright, so licensing purely AI-written code is shaky\n- Generated code may reproduce licensed code verbatim\n  - Snippet scanners exist (e.g. SCANOSS), but tooling is immature\n  - Vendor \"public code\" filters and indemnities shift liability, but don't guarantee clean code\n- Some open-source projects restrict or ban AI-generated contributions\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-ekaterina-bolovtsova-6077797.jpg\" -->\n\n## Exercise 2: Checking AI Client Settings (15 mins)\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\u003C!-- https://www.pexels.com/photo/young-man-jumping-on-green-hill-5104548/ -->\n\n# Practice\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\n##  Good Practices\n\n1. Before touching code, discuss the architecture with the AI — it's a good sparring partner\n2. Ask it to review your plan and surface edge cases you haven't considered\n3. Supply links to relevant documentation in your prompt\n4. Write the agreed plan to a file — this becomes compact context for future sessions\n\nNote:\n- Also see tab \"Prompt Engineering\"\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\n## The Prompt Framework\n\n**Role + Context + Task + Constraints + References**\n\n\u003Ctable style=\"width:100%; border-collapse:collapse; font-size: smaller;\">\n  \u003Ctr>\n    \u003Ctd style=\"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;\">\u003Cstrong>Role\u003C/strong>\u003C/td>\n    \u003Ctd style=\"padding:0.4rem 0.8rem;\">\"You are helping an RSE writing a data analysis pipeline in Python…\"\u003C/td>\n  \u003C/tr>\n  \u003Ctr>\n    \u003Ctd style=\"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;\">\u003Cstrong>Context\u003C/strong>\u003C/td>\n    \u003Ctd style=\"padding:0.4rem 0.8rem;\">Hardware, data format, scale, existing codebase, language/version\u003C/td>\n  \u003C/tr>\n  \u003Ctr>\n    \u003Ctd style=\"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;\">\u003Cstrong>Task\u003C/strong>\u003C/td>\n    \u003Ctd style=\"padding:0.4rem 0.8rem;\">Specific, measurable outcome — not \"make it faster\", but \"reduce runtime below 30s on 10GB input\"\u003C/td>\n  \u003C/tr>\n  \u003Ctr>\n    \u003Ctd style=\"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;\">\u003Cstrong>Constraints\u003C/strong>\u003C/td>\n    \u003Ctd style=\"padding:0.4rem 0.8rem;\">Memory limits, coding conventions, libraries allowed, what must not change\u003C/td>\n  \u003C/tr>\n  \u003Ctr>\n    \u003Ctd style=\"padding:0.4rem 0.8rem; color:blue; white-space:nowrap;\">\u003Cstrong>References\u003C/strong>\u003C/td>\n    \u003Ctd style=\"padding:0.4rem 0.8rem;\">Package docs, similar code, API specs — especially for niche libraries\u003C/td>\n  \u003C/tr>\n\u003C/table>\n\nNote:\n- The better models get, the less important the \"Role\" becomes\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\n## Prompt Engineering Tips\n\n\u003Cdiv style=\"font-size: smaller;\">\n\n- Start broad ➜ discuss ➜ refine ➜ add constraints before implementation\n- Ambiguity during \u003Cem>implementation\u003C/em> is dangerous — be precise about signatures, types, return values\n- Ask for \u003Cstrong>options\u003C/strong>: \"Give me three approaches and their trade-offs\"\n- Ask for \u003Cstrong>steps\u003C/strong>: \"Walk me through this optimisation step by step\"\n- Provide \u003Cstrong>examples\u003C/strong>: \"This R function does X — implement the equivalent in Python\"\n- Explaining the problem clearly helps \u003Cem>you\u003C/em> understand it better too\n\n\u003C/div>\n\nNote:\n- Writing a good prompt _requires the same clarity as writing a good specification_.\n- If you can't write a good specification, you have not fully defined the problem yet.\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\n## Transparency about AI\n\nRecord, where relevant:\n\n- purpose and research activity\n- tool, provider, model and access route\n- date or version information\n- data or context supplied\n- material generated, transformed or evaluated\n- human review and verification performed\n- limitations, uncertainty and unresolved concerns\n- how the use affected authorship, attribution or interpretation\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"./media/pexels-trungnguyenphotog-5104548.jpg\" -->\n\n## Exercise 3: AI Declaration Tool (15 min)\n\n===\n\n\u003C!-- .slide: data-state=\"standard 6\" data-background-image=\"media/pexels-ekaterina-bolovtsova-6192336.jpg\" -->\n\u003C!-- https://www.pexels.com/photo/a-notebook-with-blank-pages-6192336/ -->\n\n# Wrap-Up\n\n==\n\n\u003C!-- .slide: data-state=\"standard 9\" data-background-image=\"media/pexels-ekaterina-bolovtsova-6192336.jpg\" -->\n\n## Key Takeaways\n\n- Generative AI is a changing capability family.\n- Good advice starts with purpose, data, control, evidence, governance and continuity.\n- Human review, domain knowledge and reproducible records remain central.\n- Tool choice should follow the research workflow and institutional context.\n- Research support professionals can turn broad principles into practical routes for safe, FAIR and sustainable use.\n\n==\n\n\u003C!-- .slide: data-state=\"keepintouch\" -->\n\n[www.esciencecenter.nl](https://www.esciencecenter.nl)\n\ninfo@esciencecenter.nl\n\n020 - 460 47 70\n",[2675,2711,2815,3103],{"_path":2676,"_dir":2677,"_draft":6,"_partial":6,"_locale":7,"title":2678,"description":7,"order":10,"body":2679,"_type":2667,"_id":2707,"_source":2669,"_file":2708,"_stem":2709,"_extension":2672,"plainText":2710},"/main/about","main","About",{"type":12,"children":2680,"toc":2703},[2681,2687,2692,2698],{"type":15,"tag":54,"props":2682,"children":2684},{"id":2683},"about-the-research-software-support",[2685],{"type":20,"value":2686},"About the Research Software Support",{"type":15,"tag":37,"props":2688,"children":2689},{},[2690],{"type":20,"value":2691},"In the Research Software Support modules we want to provide a comprehensive overview of the different aspects of research software support.",{"type":15,"tag":54,"props":2693,"children":2695},{"id":2694},"target-audience",[2696],{"type":20,"value":2697},"Target audience",{"type":15,"tag":37,"props":2699,"children":2700},{},[2701],{"type":20,"value":2702},"The target audience for this material is University management and support staff.\nUniversity management taking part in courses involving these modules may be involved in creating university policy around research software.\nThe University support staff targeted are not themselves researchers or software engineers, but they support researchers and research software engineers in creating research software.",{"title":7,"searchDepth":2637,"depth":2637,"links":2704},[2705,2706],{"id":2683,"depth":2637,"text":2686},{"id":2694,"depth":2637,"text":2697},"local_fs:main:about.md","main/about.md","main/about","---\ntitle: About\norder: 1\n---\n\n## About the Research Software Support\nIn the Research Software Support modules we want to provide a comprehensive overview of the different aspects of research software support.\n\n## Target audience\n\nThe target audience for this material is University management and support staff.\nUniversity management taking part in courses involving these modules may be involved in creating university policy around research software.\nThe University support staff targeted are not themselves researchers or software engineers, but they support researchers and research software engineers in creating research software.",{"_path":2712,"_dir":2677,"_draft":6,"_partial":6,"_locale":7,"title":2713,"description":7,"order":2714,"body":2715,"_type":2667,"_id":2811,"_source":2669,"_file":2812,"_stem":2813,"_extension":2672,"plainText":2814},"/main/contribute","Contribute",4,{"type":12,"children":2716,"toc":2806},[2717,2723,2728,2734,2739],{"type":15,"tag":54,"props":2718,"children":2720},{"id":2719},"contributing-to-the-research-software-support",[2721],{"type":20,"value":2722},"Contributing to the Research Software Support",{"type":15,"tag":37,"props":2724,"children":2725},{},[2726],{"type":20,"value":2727},"In the Research Software Support modules we want to provide a comprehensive overview of the different aspects of research software support.\nThis, as you can imagine, is no easy feat, and we need your help!\nSo first of all, thank you very much for your interest in contributing to this project.",{"type":15,"tag":30,"props":2729,"children":2731},{"id":2730},"what-can-i-do",[2732],{"type":20,"value":2733},"What can I do?",{"type":15,"tag":37,"props":2735,"children":2736},{},[2737],{"type":20,"value":2738},"Go to our github repository by clicking on the GitHub logo in the top right of this website.",{"type":15,"tag":66,"props":2740,"children":2741},{},[2742,2756,2778,2790],{"type":15,"tag":70,"props":2743,"children":2744},{},[2745,2747,2754],{"type":20,"value":2746},"Contribute to the content discussion in the ",{"type":15,"tag":2614,"props":2748,"children":2751},{"href":2749,"rel":2750},"https://github.com/esciencecenter-digital-skills/research-software-support/labels/module%20discussion",[2618],[2752],{"type":20,"value":2753},"module issues",{"type":20,"value":2755},", e.g. by listing good resources for information.",{"type":15,"tag":70,"props":2757,"children":2758},{},[2759,2761,2768,2770,2777],{"type":20,"value":2760},"Review a lesson module; both by looking at ",{"type":15,"tag":2614,"props":2762,"children":2765},{"href":2763,"rel":2764},"https://github.com/esciencecenter-digital-skills/research-software-support/pulls",[2618],[2766],{"type":20,"value":2767},"open PRs",{"type":20,"value":2769},", as well as flagging issues for improvement in the ",{"type":15,"tag":2614,"props":2771,"children":2774},{"href":2772,"rel":2773},"https://esciencecenter-digital-skills.github.io/research-software-support/",[2618],[2775],{"type":20,"value":2776},"existing content",{"type":20,"value":2484},{"type":15,"tag":70,"props":2779,"children":2780},{},[2781,2788],{"type":15,"tag":2614,"props":2782,"children":2785},{"href":2783,"rel":2784},"https://github.com/esciencecenter-digital-skills/research-software-support/issues",[2618],[2786],{"type":20,"value":2787},"Provide feedback",{"type":20,"value":2789}," on the different subjects covered: what did we miss? Should something be restructured?",{"type":15,"tag":70,"props":2791,"children":2792},{},[2793,2798,2800],{"type":15,"tag":354,"props":2794,"children":2795},{},[2796],{"type":20,"value":2797},"Suggest a new entry",{"type":20,"value":2799}," for the ",{"type":15,"tag":2614,"props":2801,"children":2803},{"href":2802},"/main/yellowpages",[2804],{"type":20,"value":2805},"Research Software Support Yellow Pages",{"title":7,"searchDepth":2637,"depth":2637,"links":2807},[2808],{"id":2719,"depth":2637,"text":2722,"children":2809},[2810],{"id":2730,"depth":2640,"text":2733},"local_fs:main:contribute.md","main/contribute.md","main/contribute","---\ntitle: Contribute\norder: 4\n---\n\n## Contributing to the Research Software Support\n\nIn the Research Software Support modules we want to provide a comprehensive overview of the different aspects of research software support.\nThis, as you can imagine, is no easy feat, and we need your help!\nSo first of all, thank you very much for your interest in contributing to this project.\n\n### What can I do?\n\nGo to our github repository by clicking on the GitHub logo in the top right of this website. \n\n* Contribute to the content discussion in the [module issues](https://github.com/esciencecenter-digital-skills/research-software-support/labels/module%20discussion), e.g. by listing good resources for information.\n* Review a lesson module; both by looking at [open PRs](https://github.com/esciencecenter-digital-skills/research-software-support/pulls), as well as flagging issues for improvement in the [existing content](https://esciencecenter-digital-skills.github.io/research-software-support/).\n* [Provide feedback](https://github.com/esciencecenter-digital-skills/research-software-support/issues) on the different subjects covered: what did we miss? Should something be restructured?\n* [Suggest a new entry] for the [Research Software Support Yellow Pages](/main/yellowpages)",{"_path":2816,"_dir":2677,"_draft":6,"_partial":6,"_locale":7,"title":2817,"description":7,"order":2714,"body":2818,"_type":2667,"_id":3099,"_source":2669,"_file":3100,"_stem":3101,"_extension":2672,"plainText":3102},"/main/workshops","Workshops",{"type":12,"children":2819,"toc":3090},[2820,2825,2847,2853,2976,2982,2987,2993,3022,3028,3063,3069],{"type":15,"tag":54,"props":2821,"children":2823},{"id":2822},"about",[2824],{"type":20,"value":2678},{"type":15,"tag":37,"props":2826,"children":2827},{},[2828,2830,2837,2839,2845],{"type":20,"value":2829},"The Research Software Support can be taught as a live workshop. If you are interested in following or even hosting such a workshop, have a look at the ",{"type":15,"tag":2614,"props":2831,"children":2834},{"href":2832,"rel":2833},"https://www.esciencecenter.nl/digital-skills/",[2618],[2835],{"type":20,"value":2836},"training page",{"type":20,"value":2838}," or contact the ",{"type":15,"tag":2614,"props":2840,"children":2842},{"href":2841},"mailto:training@esciencecenter.nl",[2843],{"type":20,"value":2844},"training team",{"type":20,"value":2846}," at the Netherlands eScience Center.",{"type":15,"tag":54,"props":2848,"children":2850},{"id":2849},"past-workshops",[2851],{"type":20,"value":2852},"Past workshops",{"type":15,"tag":2262,"props":2854,"children":2855},{},[2856,2886],{"type":15,"tag":2857,"props":2858,"children":2859},"thead",{},[2860],{"type":15,"tag":2272,"props":2861,"children":2862},{},[2863,2870,2876,2881],{"type":15,"tag":2864,"props":2865,"children":2867},"th",{"align":2866},"right",[2868],{"type":20,"value":2869},"Date",{"type":15,"tag":2864,"props":2871,"children":2873},{"align":2872},"left",[2874],{"type":20,"value":2875},"Organisation",{"type":15,"tag":2864,"props":2877,"children":2878},{"align":2872},[2879],{"type":20,"value":2880},"Location",{"type":15,"tag":2864,"props":2882,"children":2883},{"align":2872},[2884],{"type":20,"value":2885},"Comments",{"type":15,"tag":2268,"props":2887,"children":2888},{},[2889,2912,2933,2955],{"type":15,"tag":2272,"props":2890,"children":2891},{},[2892,2897,2902,2907],{"type":15,"tag":2277,"props":2893,"children":2894},{"align":2866},[2895],{"type":20,"value":2896},"2023-11-28",{"type":15,"tag":2277,"props":2898,"children":2899},{"align":2872},[2900],{"type":20,"value":2901},"Netherlands eScience Center",{"type":15,"tag":2277,"props":2903,"children":2904},{"align":2872},[2905],{"type":20,"value":2906},"Amsterdam, The Netherlands",{"type":15,"tag":2277,"props":2908,"children":2909},{"align":2872},[2910],{"type":20,"value":2911},"Pilot workshop, VU",{"type":15,"tag":2272,"props":2913,"children":2914},{},[2915,2920,2924,2928],{"type":15,"tag":2277,"props":2916,"children":2917},{"align":2866},[2918],{"type":20,"value":2919},"2024-05-16",{"type":15,"tag":2277,"props":2921,"children":2922},{"align":2872},[2923],{"type":20,"value":2901},{"type":15,"tag":2277,"props":2925,"children":2926},{"align":2872},[2927],{"type":20,"value":2906},{"type":15,"tag":2277,"props":2929,"children":2930},{"align":2872},[2931],{"type":20,"value":2932},"Pilot workshop, UvA/HvA",{"type":15,"tag":2272,"props":2934,"children":2935},{},[2936,2941,2945,2950],{"type":15,"tag":2277,"props":2937,"children":2938},{"align":2866},[2939],{"type":20,"value":2940},"2024-09-10",{"type":15,"tag":2277,"props":2942,"children":2943},{"align":2872},[2944],{"type":20,"value":2901},{"type":15,"tag":2277,"props":2946,"children":2947},{"align":2872},[2948],{"type":20,"value":2949},"Utrecht & Amsterdam, The Netherlands",{"type":15,"tag":2277,"props":2951,"children":2952},{"align":2872},[2953],{"type":20,"value":2954},"Split-day workshop",{"type":15,"tag":2272,"props":2956,"children":2957},{},[2958,2963,2967,2971],{"type":15,"tag":2277,"props":2959,"children":2960},{"align":2866},[2961],{"type":20,"value":2962},"2025-02-03",{"type":15,"tag":2277,"props":2964,"children":2965},{"align":2872},[2966],{"type":20,"value":2901},{"type":15,"tag":2277,"props":2968,"children":2969},{"align":2872},[2970],{"type":20,"value":2906},{"type":15,"tag":2277,"props":2972,"children":2973},{"align":2872},[2974],{"type":20,"value":2975},"Split-day workshop, DCC-PO",{"type":15,"tag":54,"props":2977,"children":2979},{"id":2978},"homework",[2980],{"type":20,"value":2981},"Homework",{"type":15,"tag":37,"props":2983,"children":2984},{},[2985],{"type":20,"value":2986},"These are potential homework exercises that can be used in a live workshop setting.",{"type":15,"tag":30,"props":2988,"children":2990},{"id":2989},"research-software",[2991],{"type":20,"value":2992},"Research Software",{"type":15,"tag":596,"props":2994,"children":2995},{},[2996,3009],{"type":15,"tag":70,"props":2997,"children":2998},{},[2999,3001,3008],{"type":20,"value":3000},"Find a piece of research software that you like (because of the topic or nice picture, or whetever other reason) from the ",{"type":15,"tag":2614,"props":3002,"children":3005},{"href":3003,"rel":3004},"https://research-software-directory.org/software?page=1&rows=48",[2618],[3006],{"type":20,"value":3007},"Research Software Directory",{"type":20,"value":2484},{"type":15,"tag":70,"props":3010,"children":3011},{},[3012,3014,3020],{"type":20,"value":3013},"Do the ",{"type":15,"tag":2614,"props":3015,"children":3017},{"href":3016},"/modules/researchsoftware/exercise-research-life-cycle",[3018],{"type":20,"value":3019},"exercise about the research life cycle",{"type":20,"value":3021}," from the Research Software module, use the piece of software you chose.",{"type":15,"tag":30,"props":3023,"children":3025},{"id":3024},"software-in-the-research-landscape",[3026],{"type":20,"value":3027},"Software in the Research landscape",{"type":15,"tag":596,"props":3029,"children":3030},{},[3031,3058],{"type":15,"tag":70,"props":3032,"children":3033},{},[3034,3036,3042,3044,3049,3051,3056],{"type":20,"value":3035},"From all the different initiatives, concepts and organizations discussed in the ",{"type":15,"tag":2614,"props":3037,"children":3039},{"href":3038},"/modules/softwarelandscape/slides",[3040],{"type":20,"value":3041},"Software Landscape module",{"type":20,"value":3043}," or the ",{"type":15,"tag":2614,"props":3045,"children":3046},{"href":2802},[3047],{"type":20,"value":3048},"Yellow Pages",{"type":20,"value":3050},", pick ",{"type":15,"tag":74,"props":3052,"children":3053},{},[3054],{"type":20,"value":3055},"three",{"type":20,"value":3057}," that your chosen piece of software could/should connect to and/or use.",{"type":15,"tag":70,"props":3059,"children":3060},{},[3061],{"type":20,"value":3062},"Explain why you chose these three and what makes them valuable for the chosen piece of software.",{"type":15,"tag":30,"props":3064,"children":3066},{"id":3065},"software-management-plan",[3067],{"type":20,"value":3068},"Software Management Plan",{"type":15,"tag":596,"props":3070,"children":3071},{},[3072,3085],{"type":15,"tag":70,"props":3073,"children":3074},{},[3075,3077,3083],{"type":20,"value":3076},"Explore software management plans fitting your piece of software by using the ",{"type":15,"tag":2614,"props":3078,"children":3080},{"href":3079},"/modules/softwaremanagementplans/smp_questionnaire",[3081],{"type":20,"value":3082},"Exploring the SMP Questionnaire",{"type":20,"value":3084}," exercise in the software management plan module.",{"type":15,"tag":70,"props":3086,"children":3087},{},[3088],{"type":20,"value":3089},"Fill out your own software management plan and download the Word file.",{"title":7,"searchDepth":2637,"depth":2637,"links":3091},[3092,3093,3094],{"id":2822,"depth":2637,"text":2678},{"id":2849,"depth":2637,"text":2852},{"id":2978,"depth":2637,"text":2981,"children":3095},[3096,3097,3098],{"id":2989,"depth":2640,"text":2992},{"id":3024,"depth":2640,"text":3027},{"id":3065,"depth":2640,"text":3068},"local_fs:main:workshops.md","main/workshops.md","main/workshops","---\ntitle: Workshops\norder: 4\n---\n\n## About\nThe Research Software Support can be taught as a live workshop. If you are interested in following or even hosting such a workshop, have a look at the [training page](https://www.esciencecenter.nl/digital-skills/) or contact the [training team](mailto:training@esciencecenter.nl) at the Netherlands eScience Center.\n\n\n## Past workshops\n\n| Date               | Organisation                 | Location                              | Comments                    |\n|-------------------:|:-----------------------------|:--------------------------------------|:----------------------------|\n| 2023-11-28         | Netherlands eScience Center  | Amsterdam, The Netherlands            | Pilot workshop, VU          |\n| 2024-05-16         | Netherlands eScience Center  | Amsterdam, The Netherlands            | Pilot workshop, UvA/HvA     |\n| 2024-09-10         | Netherlands eScience Center  | Utrecht & Amsterdam, The Netherlands  | Split-day workshop          |\n| 2025-02-03         | Netherlands eScience Center  | Amsterdam, The Netherlands            | Split-day workshop, DCC-PO  |\n\n\n## Homework\n\nThese are potential homework exercises that can be used in a live workshop setting.\n\n### Research Software\n\n1. Find a piece of research software that you like (because of the topic or nice picture, or whetever other reason) from the [Research Software Directory](https://research-software-directory.org/software?page=1&rows=48).\n\n1. Do the [exercise about the research life cycle](/modules/researchsoftware/exercise-research-life-cycle) from the Research Software module, use the piece of software you chose.\n\n### Software in the Research landscape\n\n1. From all the different initiatives, concepts and organizations discussed in the [Software Landscape module](/modules/softwarelandscape/slides) or the [Yellow Pages](/main/yellowpages), pick **three** that your chosen piece of software could/should connect to and/or use. \n\n2. Explain why you chose these three and what makes them valuable for the chosen piece of software. \n\n\n### Software Management Plan\n\n1. Explore software management plans fitting your piece of software by using the [Exploring the SMP Questionnaire](/modules/softwaremanagementplans/smp_questionnaire) exercise in the software management plan module.\n\n2. Fill out your own software management plan and download the Word file.\n",{"_path":2802,"_dir":2677,"_draft":6,"_partial":6,"_locale":7,"title":3048,"description":3104,"order":2640,"body":3105,"_type":2667,"_id":3371,"_source":2669,"_file":3372,"_stem":3373,"_extension":2672,"plainText":3374},"These yellow pages are work in progress and will keep expanding. They are meant to help you find the right person/organisation for each problem/topic you have to deal with regarding Research Software Support. Feel free to suggest an addition by following the contributing guidelines.",{"type":12,"children":3106,"toc":3363},[3107,3112,3126,3132,3155,3161,3184,3190,3243,3249,3292,3298,3324,3330],{"type":15,"tag":23,"props":3108,"children":3110},{"id":3109},"research-software-support-yellow-pages",[3111],{"type":20,"value":2805},{"type":15,"tag":37,"props":3113,"children":3114},{},[3115],{"type":15,"tag":382,"props":3116,"children":3117},{},[3118,3120,3125],{"type":20,"value":3119},"These yellow pages are work in progress and will keep expanding. They are meant to help you find the right person/organisation for each problem/topic you have to deal with regarding Research Software Support. Feel free to suggest an addition by following the ",{"type":15,"tag":2614,"props":3121,"children":3122},{"href":2712},[3123],{"type":20,"value":3124},"contributing guidelines",{"type":20,"value":2484},{"type":15,"tag":54,"props":3127,"children":3129},{"id":3128},"research-software-engineers-communities-and-networks",[3130],{"type":20,"value":3131},"Research Software Engineers communities and networks",{"type":15,"tag":66,"props":3133,"children":3134},{},[3135,3145],{"type":15,"tag":70,"props":3136,"children":3137},{},[3138],{"type":15,"tag":2614,"props":3139,"children":3142},{"href":3140,"rel":3141},"https://nl-rse.org/",[2618],[3143],{"type":20,"value":3144},"NL RSE",{"type":15,"tag":70,"props":3146,"children":3147},{},[3148],{"type":15,"tag":2614,"props":3149,"children":3152},{"href":3150,"rel":3151},"https://society-rse.org/",[2618],[3153],{"type":20,"value":3154},"Society of Research Software Engineering",{"type":15,"tag":54,"props":3156,"children":3158},{"id":3157},"open-science",[3159],{"type":20,"value":3160},"Open Science",{"type":15,"tag":66,"props":3162,"children":3163},{},[3164,3174],{"type":15,"tag":70,"props":3165,"children":3166},{},[3167],{"type":15,"tag":2614,"props":3168,"children":3171},{"href":3169,"rel":3170},"https://www.openscience.nl/en",[2618],[3172],{"type":20,"value":3173},"Open Science NL",{"type":15,"tag":70,"props":3175,"children":3176},{},[3177],{"type":15,"tag":2614,"props":3178,"children":3181},{"href":3179,"rel":3180},"https://freeopensourcesoftware.org/",[2618],[3182],{"type":20,"value":3183},"FOSS (Free and Open Source Software)",{"type":15,"tag":54,"props":3185,"children":3187},{"id":3186},"fair",[3188],{"type":20,"value":3189},"FAIR",{"type":15,"tag":66,"props":3191,"children":3192},{},[3193,3203,3213,3223,3233],{"type":15,"tag":70,"props":3194,"children":3195},{},[3196],{"type":15,"tag":2614,"props":3197,"children":3200},{"href":3198,"rel":3199},"https://www.nature.com/articles/s41597-022-01710-x",[2618],[3201],{"type":20,"value":3202},"FAIR for Research Software",{"type":15,"tag":70,"props":3204,"children":3205},{},[3206],{"type":15,"tag":2614,"props":3207,"children":3210},{"href":3208,"rel":3209},"https://www.researchsoft.org/",[2618],[3211],{"type":20,"value":3212},"ReSA (Research Software Alliance)",{"type":15,"tag":70,"props":3214,"children":3215},{},[3216],{"type":15,"tag":2614,"props":3217,"children":3220},{"href":3218,"rel":3219},"https://www.rd-alliance.org/",[2618],[3221],{"type":20,"value":3222},"RDA (Research Data Alliance)",{"type":15,"tag":70,"props":3224,"children":3225},{},[3226],{"type":15,"tag":2614,"props":3227,"children":3230},{"href":3228,"rel":3229},"https://force11.org/",[2618],[3231],{"type":20,"value":3232},"FORCE11 (Future of Research Communications and e-Scholarship)",{"type":15,"tag":70,"props":3234,"children":3235},{},[3236],{"type":15,"tag":2614,"props":3237,"children":3240},{"href":3238,"rel":3239},"https://reproducibilitynetwork.nl/",[2618],[3241],{"type":20,"value":3242},"Dutch Reproducibility network",{"type":15,"tag":54,"props":3244,"children":3246},{"id":3245},"research-software-traininglearning",[3247],{"type":20,"value":3248},"Research Software training/learning",{"type":15,"tag":66,"props":3250,"children":3251},{},[3252,3262,3272,3282],{"type":15,"tag":70,"props":3253,"children":3254},{},[3255],{"type":15,"tag":2614,"props":3256,"children":3259},{"href":3257,"rel":3258},"https://researchsoftwaretraining.nl",[2618],[3260],{"type":20,"value":3261},"Research Software Training",{"type":15,"tag":70,"props":3263,"children":3264},{},[3265],{"type":15,"tag":2614,"props":3266,"children":3269},{"href":3267,"rel":3268},"https://carpentries.org/",[2618],[3270],{"type":20,"value":3271},"Carpentries",{"type":15,"tag":70,"props":3273,"children":3274},{},[3275],{"type":15,"tag":2614,"props":3276,"children":3279},{"href":3277,"rel":3278},"https://coderefinery.org/",[2618],[3280],{"type":20,"value":3281},"Code Refinery",{"type":15,"tag":70,"props":3283,"children":3284},{},[3285],{"type":15,"tag":2614,"props":3286,"children":3289},{"href":3287,"rel":3288},"https://book.the-turing-way.org/",[2618],[3290],{"type":20,"value":3291},"The Turing Way",{"type":15,"tag":54,"props":3293,"children":3295},{"id":3294},"technical-support",[3296],{"type":20,"value":3297},"Technical support",{"type":15,"tag":66,"props":3299,"children":3300},{},[3301,3312],{"type":15,"tag":70,"props":3302,"children":3303},{},[3304,3310],{"type":15,"tag":2614,"props":3305,"children":3308},{"href":3306,"rel":3307},"https://esciencecenter.nl/",[2618],[3309],{"type":20,"value":2901},{"type":20,"value":3311}," (Research Software / Training)",{"type":15,"tag":70,"props":3313,"children":3314},{},[3315,3322],{"type":15,"tag":2614,"props":3316,"children":3319},{"href":3317,"rel":3318},"https://surf.nl/",[2618],[3320],{"type":20,"value":3321},"SURF",{"type":20,"value":3323}," (Academic ICT services / High Performance Computing / Data Storage)",{"type":15,"tag":54,"props":3325,"children":3327},{"id":3326},"other",[3328],{"type":20,"value":3329},"Other",{"type":15,"tag":66,"props":3331,"children":3332},{},[3333,3343,3353],{"type":15,"tag":70,"props":3334,"children":3335},{},[3336],{"type":15,"tag":2614,"props":3337,"children":3340},{"href":3338,"rel":3339},"https://zenodo.org/records/7248877",[2618],[3341],{"type":20,"value":3342},"Practical Guide to Software Management Plans",{"type":15,"tag":70,"props":3344,"children":3345},{},[3346],{"type":15,"tag":2614,"props":3347,"children":3350},{"href":3348,"rel":3349},"https://www.softwareheritage.org/",[2618],[3351],{"type":20,"value":3352},"Software Heritage",{"type":15,"tag":70,"props":3354,"children":3355},{},[3356],{"type":15,"tag":2614,"props":3357,"children":3360},{"href":3358,"rel":3359},"https://www.software.ac.uk/",[2618],[3361],{"type":20,"value":3362},"Software Sustainability Institute",{"title":7,"searchDepth":2637,"depth":2637,"links":3364},[3365,3366,3367,3368,3369,3370],{"id":3128,"depth":2637,"text":3131},{"id":3157,"depth":2637,"text":3160},{"id":3186,"depth":2637,"text":3189},{"id":3245,"depth":2637,"text":3248},{"id":3294,"depth":2637,"text":3297},{"id":3326,"depth":2637,"text":3329},"local_fs:main:yellowpages.md","main/yellowpages.md","main/yellowpages","---\ntitle: Yellow Pages\norder: 3\n---\n\n# Research Software Support Yellow Pages\n*These yellow pages are work in progress and will keep expanding. They are meant to help you find the right person/organisation for each problem/topic you have to deal with regarding Research Software Support. Feel free to suggest an addition by following the [contributing guidelines](/main/contribute).*\n\n## Research Software Engineers communities and networks\n- [NL RSE](https://nl-rse.org/)\n- [Society of Research Software Engineering](https://society-rse.org/)\n\n## Open Science\n- [Open Science NL](https://www.openscience.nl/en)\n- [FOSS (Free and Open Source Software)](https://freeopensourcesoftware.org/)\n\n## FAIR\n- [FAIR for Research Software](https://www.nature.com/articles/s41597-022-01710-x) \n- [ReSA (Research Software Alliance)](https://www.researchsoft.org/)\n- [RDA (Research Data Alliance)](https://www.rd-alliance.org/)\n- [FORCE11 (Future of Research Communications and e-Scholarship)](https://force11.org/)\n- [Dutch Reproducibility network](https://reproducibilitynetwork.nl/) \n\n## Research Software training/learning\n- [Research Software Training](https://researchsoftwaretraining.nl)\n- [Carpentries](https://carpentries.org/) \n- [Code Refinery](https://coderefinery.org/)\n- [The Turing Way](https://book.the-turing-way.org/)\n\n## Technical support\n- [Netherlands eScience Center](https://esciencecenter.nl/) (Research Software / Training)\n- [SURF](https://surf.nl/) (Academic ICT services / High Performance Computing / Data Storage)\n\n## Other\n- [Practical Guide to Software Management Plans](https://zenodo.org/records/7248877)\n- [Software Heritage](https://www.softwareheritage.org/)\n- [Software Sustainability Institute](https://www.software.ac.uk/)\n",1791819812777]