1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head> 3 4<meta charset="utf-8"> 5<meta name="generator" content="quarto-1.8.26"> 6 7<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> 8 9 10<title>Teaching â Nurfatima Jandarova</title> 11<style> 12code{white-space: pre-wrap;} 13span.smallcaps{font-variant: small-caps;} 14div.columns{display: flex; gap: min(4vw, 1.5em);} 15div.column{flex: auto; overflow-x: auto;} 16div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} 17ul.task-list{list-style: none;} 18ul.task-list li input[type="checkbox"] { 19 width: 0.8em; 20 margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 21 vertical-align: middle; 22} 23</style> 24 25
26<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 26
26
27<script src="../site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 27
27
28<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 28
28
29<script src="../site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 29
29
30<script src="../site_libs/quarto-search/quarto-search.js"></script>
30 31<meta name="quarto:offset" content="../"> 32<link href="../media/icon.png" rel="icon" type="image/png">
33<script src="../site_libs/quarto-listing/list.min.js"></script>
vendor: 1 bytes, line 33
33
34<script src="../site_libs/quarto-listing/quarto-listing.js"></script>
vendor: 1 bytes, line 34
34
35<script src="../site_libs/quarto-html/quarto.js" type="module"></script>
vendor: 1 bytes, line 35
35
36<script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
vendor: 1 bytes, line 36
36
37<script src="../site_libs/quarto-html/axe/axe-check.js" type="module"></script>
vendor: 1 bytes, line 37
37
38<script src="../site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 38
38
39<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
vendor: 1 bytes, line 39
39
40<script src="../site_libs/quarto-html/anchor.min.js"></script>
40 41<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet"> 42<link href="../site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles"> 43<link href="../site_libs/quarto-html/quarto-syntax-highlighting-dark-b758ccaa5987ceb1b75504551e579abf.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles"> 44<link href="../site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" class="quarto-color-scheme-extra" id="quarto-text-highlighting-styles">
45<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
45 46<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet"> 47<link href="../site_libs/bootstrap/bootstrap-0c932697a3482ec0af95445b9a4089eb.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light"> 48<link href="../site_libs/bootstrap/bootstrap-dark-cb1562d4d60425bd6835f12958745432.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark"> 49<link href="../site_libs/bootstrap/bootstrap-0c932697a3482ec0af95445b9a4089eb.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light">
50<script id="quarto-search-options" type="application/json">{ 51 "location": "navbar", 52 "copy-button": false, 53 "collapse-after": 3, 54 "panel-placement": "end", 55 "type": "overlay", 56 "limit": 50, 57 "keyboard-shortcut": [ 58 "f", 59 "/", 60 "s" 61 ], 62 "show-item-context": false, 63 "language": { 64 "search-no-results-text": "No results", 65 "search-matching-documents-text": "matching documents", 66 "search-copy-link-title": "Copy link to search", 67 "search-hide-matches-text": "Hide additional matches", 68 "search-more-match-text": "more match in this document", 69 "search-more-matches-text": "more matches in this document", 70 "search-clear-button-title": "Clear", 71 "search-text-placeholder": "", 72 "search-detached-cancel-button-title": "Cancel", 73 "search-submit-button-title": "Submit", 74 "search-label": "Search" 75 } 76}</script>
vendor: 1 bytes, line 76
76
77<script> 78 79 window.document.addEventListener("DOMContentLoaded", function (_event) { 80 const listingTargetEl = window.document.querySelector('#listing-listing .list'); 81 if (!listingTargetEl) { 82 // No listing discovered, do not attach. 83 return; 84 } 85 86 const options = { 87 valueNames: ['listing-title','listing-university','listing-role','listing-term','listing-datestart','listing-categories','listing-description',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-file-modified-sort'] },{ data: ['listing-reading-time-sort'] },{ data: ['listing-word-count-sort'] }], 88 89 searchColumns: ["listing-project","listing-execute","listing-website","listing-format","listing-editor","listing-_quarto-vars","listing-language","listing-title","listing-course-code","listing-datestart","listing-datefinish","listing-term","listing-role","listing-university","listing-department","listing-author","listing-email","listing-office","listing-listing","listing-template-partials","listing-link-to-page","listing-category","listing-css","listing-resources","listing-image","listing-path","listing-outputHref","listing-description","listing-filename","listing-file-modified","listing-reading-time","listing-word-count"], 90 }; 91 92 window['quarto-listings'] = window['quarto-listings'] || {}; 93 window['quarto-listings']['listing-listing'] = new List('listing-listing', options); 94 95 if (window['quarto-listing-loaded']) { 96 window['quarto-listing-loaded'](); 97 } 98 }); 99 100 window.addEventListener('hashchange',() => { 101 if (window['quarto-listing-loaded']) { 102 window['quarto-listing-loaded'](); 103 } 104 }) 105 </script>
vendor: 1 bytes, line 105
105
106<script async="" src="https://www.googletagmanager.com/gtag/js?id=GTM-5JFLRT8"></script>
106 107
108<script type="text/javascript"> 109 110window.dataLayer = window.dataLayer || []; 111function gtag(){dataLayer.push(arguments);} 112gtag('js', new Date()); 113gtag('config', 'GTM-5JFLRT8', { 'anonymize_ip': true}); 114</script>
114 115<!-- Google Tag Manager --> 116
117<script> 118 // Define dataLayer and the gtag function. 119 window.dataLayer = window.dataLayer || []; 120 function gtag(){dataLayer.push(arguments);} 121 122 // Default ad_storage to 'denied'. 123 gtag('consent', 'default', { 124 'analytics_storage': 'denied' 125 }); 126</script>
126 127 128
129<script>
vendor: 327 bytes, lines 129-133
129(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 130new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 131j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 132'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 133})(window,document,'script','dataLayer','
133GTM-5JFLRT8
vendor: 3 bytes, line 133
133');
133</script>
133 134<!-- End Google Tag Manager --> 135<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css"> 136<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orestbida/[email protected]/dist/cookieconsent.css"
136<script="" src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"> 137
137<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
137 138
139<script type="text/javascript"> 140const typesetMath = (el) => { 141 if (window.MathJax) { 142 // MathJax Typeset 143 window.MathJax.typeset([el]); 144 } else if (window.katex) { 145 // KaTeX Render 146 var mathElements = el.getElementsByClassName("math"); 147 var macros = []; 148 for (var i = 0; i < mathElements.length; i++) { 149 var texText = mathElements[i].firstChild; 150 if (mathElements[i].tagName == "SPAN" && texText && texText.data) { 151 window.katex.render(texText.data, mathElements[i], { 152 displayMode: mathElements[i].classList.contains('display'), 153 throwOnError: false, 154 macros: macros, 155 fleqn: false 156 }); 157 } 158 } 159 } 160} 161window.Quarto = { 162 typesetMath 163}; 164</script>
164 165 166<link rel="stylesheet" href="../scripts/styles.css"> 167<link rel="stylesheet" href="../scripts/publication-styles.css"> 168<link rel="stylesheet" href="../scripts/teaching-styles.css"> 169<meta property="og:title" content="Teaching â Nurfatima Jandarova"> 170<meta property="og:image" content="https://nurfatimaj.com/teaching/media/avatar.png"> 171<meta property="og:site_name" content="Nurfatima Jandarova"> 172<meta name="twitter:title" content="Teaching â Nurfatima Jandarova"> 173<meta name="twitter:image" content="https://nurfatimaj.com/teaching/media/avatar.png"> 174<meta name="twitter:card" content="summary_large_image"> 175</head> 176 177<body class="nav-fixed fullcontent quarto-light">
177<script id="quarto-html-before-body" type="application/javascript"> 178 const toggleBodyColorMode = (bsSheetEl) => { 179 const mode = bsSheetEl.getAttribute("data-mode"); 180 const bodyEl = window.document.querySelector("body"); 181 if (mode === "dark") { 182 bodyEl.classList.add("quarto-dark"); 183 bodyEl.classList.remove("quarto-light"); 184 } else { 185 bodyEl.classList.add("quarto-light"); 186 bodyEl.classList.remove("quarto-dark"); 187 } 188 } 189 const toggleBodyColorPrimary = () => { 190 const bsSheetEl = window.document.querySelector("link#quarto-bootstrap:not([rel=disabled-stylesheet])"); 191 if (bsSheetEl) { 192 toggleBodyColorMode(bsSheetEl); 193 } 194 } 195 const setColorSchemeToggle = (alternate) => { 196 const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle'); 197 for (let i=0; i < toggles.length; i++) { 198 const toggle = toggles[i]; 199 if (toggle) { 200 if (alternate) { 201 toggle.classList.add("alternate"); 202 } else { 203 toggle.classList.remove("alternate"); 204 } 205 } 206 } 207 }; 208 const toggleColorMode = (alternate) => { 209 // Switch the stylesheets 210 const primaryStylesheets = window.document.querySelectorAll('link.quarto-color-scheme:not(.quarto-color-alternate)'); 211 const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); 212 manageTransitions('#quarto-margin-sidebar .nav-link', false); 213 if (alternate) { 214 // note: dark is layered on light, we don't disable primary! 215 enableStylesheet(alternateStylesheets); 216 for (const sheetNode of alternateStylesheets) { 217 if (sheetNode.id === "quarto-bootstrap") { 218 toggleBodyColorMode(sheetNode); 219 } 220 } 221 } else { 222 disableStylesheet(alternateStylesheets); 223 enableStylesheet(primaryStylesheets) 224 toggleBodyColorPrimary(); 225 } 226 manageTransitions('#quarto-margin-sidebar .nav-link', true); 227 // Switch the toggles 228 setColorSchemeToggle(alternate) 229 // Hack to workaround the fact that safari doesn't 230 // properly recolor the scrollbar when toggling (#1455) 231 if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) { 232 manageTransitions("body", false); 233 window.scrollTo(0, 1); 234 setTimeout(() => { 235 window.scrollTo(0, 0); 236 manageTransitions("body", true); 237 }, 40); 238 } 239 } 240 const disableStylesheet = (stylesheets) => { 241 for (let i=0; i < stylesheets.length; i++) { 242 const stylesheet = stylesheets[i]; 243 stylesheet.rel = 'disabled-stylesheet'; 244 } 245 } 246 const enableStylesheet = (stylesheets) => { 247 for (let i=0; i < stylesheets.length; i++) { 248 const stylesheet = stylesheets[i]; 249 if(stylesheet.rel !== 'stylesheet') { // for Chrome, which will still FOUC without this check 250 stylesheet.rel = 'stylesheet'; 251 } 252 } 253 } 254 const manageTransitions = (selector, allowTransitions) => { 255 const els = window.document.querySelectorAll(selector); 256 for (let i=0; i < els.length; i++) { 257 const el = els[i]; 258 if (allowTransitions) { 259 el.classList.remove('notransition'); 260 } else { 261 el.classList.add('notransition'); 262 } 263 } 264 } 265 const isFileUrl = () => { 266 return window.location.protocol === 'file:'; 267 } 268 const hasAlternateSentinel = () => { 269 let styleSentinel = getColorSchemeSentinel(); 270 if (styleSentinel !== null) { 271 return styleSentinel === "alternate"; 272 } else { 273 return false; 274 } 275 } 276 const setStyleSentinel = (alternate) => { 277 const value = alternate ? "alternate" : "default"; 278 if (!isFileUrl()) { 279 window.localStorage.setItem("quarto-color-scheme", value); 280 } else { 281 localAlternateSentinel = value; 282 } 283 } 284 const getColorSchemeSentinel = () => { 285 if (!isFileUrl()) { 286 const storageValue = window.localStorage.getItem("quarto-color-scheme"); 287 return storageValue != null ? storageValue : localAlternateSentinel; 288 } else { 289 return localAlternateSentinel; 290 } 291 } 292 const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => { 293 const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light'; 294 const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark'; 295 let newTheme = ''; 296 if(authorPrefersDark) { 297 newTheme = isAlternate ? baseTheme : alternateTheme; 298 } else { 299 newTheme = isAlternate ? alternateTheme : baseTheme; 300 } 301 const changeGiscusTheme = () => { 302 // From: https://github.com/giscus/giscus/issues/336 303 const sendMessage = (message) => { 304 const iframe = document.querySelector('iframe.giscus-frame'); 305 if (!iframe) return; 306 iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app'); 307 } 308 sendMessage({ 309 setConfig: { 310 theme: newTheme 311 } 312 }); 313 } 314 const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null; 315 if (isGiscussLoaded) { 316 changeGiscusTheme(); 317 } 318 }; 319 const authorPrefersDark = false;
320 const darkModeDefault = authorPrefersDark; 321 document.querySelector('link#quarto-text-highlighting-styles.quarto-color-scheme-extra').rel = 'disabled-stylesheet'; 322 document.querySelector('link#quarto-bootstrap.quarto-color-scheme-extra').rel = 'disabled-stylesheet'; 323 let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default'; 324 // Dark / light mode switch 325 window.quartoToggleColorScheme = () => { 326 // Read the current dark / light value 327 let toAlternate = !hasAlternateSentinel(); 328 toggleColorMode(toAlternate); 329 setStyleSentinel(toAlternate); 330 toggleGiscusIfUsed(toAlternate, darkModeDefault); 331 window.dispatchEvent(new Event('resize')); 332 }; 333 // Switch to dark mode if need be 334 if (hasAlternateSentinel()) { 335 toggleColorMode(true); 336 } else { 337 toggleColorMode(false); 338 } 339 </script>
339 340 341<div id="quarto-search-results"></div> 342 <header id="quarto-header" class="headroom fixed-top"> 343 <nav class="navbar navbar-expand-lg " data-bs-theme="dark"> 344 <div class="navbar-container container-fluid"> 345 <div id="quarto-search" class="" title="Search"></div> 346 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }"> 347 <span class="navbar-toggler-icon"></span> 348</button> 349 <div class="collapse navbar-collapse" id="navbarCollapse"> 350 <ul class="navbar-nav navbar-nav-scroll me-auto"> 351 <li class="nav-item"> 352 <a class='nav-link' href='/'> 353<span class="menu-text">Home</span></a> 354 </li> 355 <li class="nav-item"> 356 <a class='nav-link' href='/research/'> 357<span class="menu-text">Research</span></a> 358 </li> 359 <li class="nav-item"> 360 <a aria-current='page' class='nav-link active' href='/teaching/'> 361<span class="menu-text">Teaching</span></a> 362 </li> 363 <li class="nav-item"> 364 <a class="nav-link" href="../Jandarova_CV.pdf"> 365<span class="menu-text">CV</span></a> 366 </li> 367</ul> 368 </div> <!-- /navcollapse --> 369 <div class="quarto-navbar-tools"> 370 <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Toggle dark mode"><i class="bi"></i></a> 371</div> 372 </div> <!-- /container-fluid --> 373 </nav> 374</header> 375<!-- content --> 376<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar"> 377<!-- sidebar --> 378<!-- margin-sidebar --> 379 380<!-- main --> 381<main class="content" id="quarto-document-content"> 382 383<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 383-384
383 384<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
384GTM-5JFLRT8
vendor: 83 bytes, line 384
384" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
385<!-- End Google Tag Manager (noscript) -->
386<script defer="" src="https://cdn.jsdelivr.net/gh/orestbida/[email protected]/dist/cookieconsent.js"></script>
vendor: 1 bytes, line 386
386
387<script defer="" src="https://nurfatimaj.com/scripts/custom_cookie.js"></script>
vendor: 1 bytes, line 387
387
388<script defer="" src="https://nurfatimaj.com/scripts/cookie-dark-toggle.js"></script>
388 389 390<header id="title-block-header" class="quarto-title-block default"> 391<div class="quarto-title"> 392<h1 class="title">Teaching</h1> 393</div> 394 395 396 397<div class="quarto-title-meta"> 398 399 400 401 402 </div> 403 404 405 406</header> 407 408 409 410 411 412 413<div class="quarto-listing quarto-listing-container-custom" id="listing-listing"> 414<div class="listing-actions-group"> 415 <div class="input-group input-group-sm quarto-listing-sort"> 416 <span class="input-group-text"><i class="bi bi-sort-down"></i></span> 417 <select id="listing-listing-sort" class="form-select" aria-label="Order By" onchange="window['quarto-listings']['listing-listing'].sort(this.options[this.selectedIndex].value, { order: this.options[this.selectedIndex].getAttribute('data-direction')})"> 418 <option value="" disabled="" selected="" hidden="">Order By</option> 419 <option value="index" data-direction="asc">Default</option> 420 <option value="listing-title" data-direction="asc"> 421 Title 422 </option> 423 <option value="listing-datestart" data-direction="asc"> 424 Start date 425 </option> 426 <option value="listing-term" data-direction="asc"> 427 Term 428 </option> 429 <option value="listing-role" data-direction="asc"> 430 Role 431 </option> 432 <option value="listing-university" data-direction="asc"> 433 University 434 </option> 435 <option value="listing-description" data-direction="asc"> 436 Description 437 </option> 438 </select> 439 </div> 440</div> 441<div class="list container"> 442 443 <!-- The item --> 444 <div class="course quarto-post" data-index="0" data-listing-file-modified-sort="1766397340204" data-listing-reading-time-sort="1" data-listing-word-count-sort="103"> 445 <div class="metadata"> 446 <span class="listing-term">Autumn 2025</span> 447 </div> 448 <div class="body"> 449 <h5 class="course-title listing-title no-anchor"> 450 451 <a href='/teaching/advanced-labour-economics/2025/'>Advanced Course in Labour Economics</a> 452 453 </h5> 454 <div class="course-location listing-university"> 455 Tampere University 456 457 , Center of Excellence in Tax Systems Research 458 459 </div> 460 <div class="course-info listing-role">Instructor</div> 461 </div> 462 </div> 463 464 <!-- The item --> 465 <div class="course quarto-post" data-index="1" data-listing-file-modified-sort="1766397524137" data-listing-reading-time-sort="1" data-listing-word-count-sort="103"> 466 <div class="metadata"> 467 <span class="listing-term">Spring 2024</span> 468 </div> 469 <div class="body"> 470 <h5 class="course-title listing-title no-anchor"> 471 472 <a href='/teaching/advanced-labour-economics/2024/'>Advanced Course in Labour Economics</a> 473 474 </h5> 475 <div class="course-location listing-university"> 476 Tampere University 477 478 , Center of Excellence in Tax Systems Research 479 480 </div> 481 <div class="course-info listing-role">Instructor</div> 482 </div> 483 </div> 484 485 <!-- The item --> 486 <div class="course quarto-post" data-index="2" data-listing-file-modified-sort="1766397595822" data-listing-reading-time-sort="1" data-listing-word-count-sort="1"> 487 <div class="metadata"> 488 <span class="listing-term">Fall 2020</span> 489 </div> 490 <div class="body"> 491 <h5 class="course-title listing-title no-anchor"> 492 493 Panel Data for Banking Sector Analysts 494 495 </h5> 496 <div class="course-location listing-university"> 497 Florence School of Banking and Finance 498 499 </div> 500 <div class="course-info listing-role">Teaching assistant to Prof. Jeffrey Wooldridge</div> 501 </div> 502 </div> 503 504 <!-- The item --> 505 <div class="course quarto-post" data-index="3" data-listing-file-modified-sort="1766397546268" data-listing-reading-time-sort="1" data-listing-word-count-sort="1"> 506 <div class="metadata"> 507 <span class="listing-term">Fall 2019</span> 508 </div> 509 <div class="body"> 510 <h5 class="course-title listing-title no-anchor"> 511 512 The Problem of Causality 513 514 </h5> 515 <div class="course-location listing-university"> 516 European University Institute 517 518 , Department of Economics 519 520 </div> 521 <div class="course-info listing-role">Teaching assistant to Prof. Andrea Ichino</div> 522 </div> 523 </div> 524 525 <!-- The item --> 526 <div class="course quarto-post" data-index="4" data-listing-file-modified-sort="1766397563748" data-listing-reading-time-sort="1" data-listing-word-count-sort="1"> 527 <div class="metadata">
528 <span class="listing-term">Fall 2018</span> 529 </div> 530 <div class="body"> 531 <h5 class="course-title listing-title no-anchor"> 532 533 Econometrics I 534 535 </h5> 536 <div class="course-location listing-university"> 537 European University Institute 538 539 , Department of Economics 540 541 </div> 542 <div class="course-info listing-role">Teaching assistant to Prof. Andrea Ichino</div> 543 </div> 544 </div> 545 546 <!-- The item --> 547 <div class="course quarto-post" data-index="5" data-listing-file-modified-sort="1766397580138" data-listing-reading-time-sort="1" data-listing-word-count-sort="1"> 548 <div class="metadata"> 549 <span class="listing-term">Fall 2017</span> 550 </div> 551 <div class="body"> 552 <h5 class="course-title listing-title no-anchor"> 553 554 Econometrics I 555 556 </h5> 557 <div class="course-location listing-university"> 558 European University Institute 559 560 , Department of Economics 561 562 </div> 563 <div class="course-info listing-role">Teaching assistant to Prof. Andrea Ichino</div> 564 </div> 565 </div> 566 567</div> 568<div class="listing-no-matching d-none">No matching items</div> 569</div></main> <!-- /main -->
570<script id="quarto-html-after-body" type="application/javascript"> 571 window.document.addEventListener("DOMContentLoaded", function (event) { 572 // Ensure there is a toggle, if there isn't float one in the top right 573 if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { 574 const a = window.document.createElement('a'); 575 a.classList.add('top-right'); 576 a.classList.add('quarto-color-scheme-toggle'); 577 a.href = ""; 578 a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; }; 579 const i = window.document.createElement("i"); 580 i.classList.add('bi'); 581 a.appendChild(i); 582 window.document.body.appendChild(a); 583 } 584 setColorSchemeToggle(hasAlternateSentinel()) 585 const icon = "î§"; 586 const anchorJS = new window.AnchorJS(); 587 anchorJS.options = { 588 placement: 'right', 589 icon: icon 590 }; 591 anchorJS.add('.anchored'); 592 const isCodeAnnotation = (el) => { 593 for (const clz of el.classList) { 594 if (clz.startsWith('code-annotation-')) { 595 return true; 596 } 597 } 598 return false; 599 } 600 const onCopySuccess = function(e) { 601 // button target 602 const button = e.trigger; 603 // don't keep focus 604 button.blur(); 605 // flash "checked" 606 button.classList.add('code-copy-button-checked'); 607 var currentTitle = button.getAttribute("title"); 608 button.setAttribute("title", "Copied!"); 609 let tooltip; 610 if (window.bootstrap) { 611 button.setAttribute("data-bs-toggle", "tooltip"); 612 button.setAttribute("data-bs-placement", "left"); 613 button.setAttribute("data-bs-title", "Copied!"); 614 tooltip = new bootstrap.Tooltip(button, 615 { trigger: "manual", 616 customClass: "code-copy-button-tooltip", 617 offset: [0, -8]}); 618 tooltip.show(); 619 } 620 setTimeout(function() { 621 if (tooltip) { 622 tooltip.hide(); 623 button.removeAttribute("data-bs-title"); 624 button.removeAttribute("data-bs-toggle"); 625 button.removeAttribute("data-bs-placement"); 626 } 627 button.setAttribute("title", currentTitle); 628 button.classList.remove('code-copy-button-checked'); 629 }, 1000); 630 // clear code selection 631 e.clearSelection(); 632 } 633 const getTextToCopy = function(trigger) { 634 const outerScaffold = trigger.parentElement.cloneNode(true); 635 const codeEl = outerScaffold.querySelector('code'); 636 for (const childEl of codeEl.children) { 637 if (isCodeAnnotation(childEl)) { 638 childEl.remove(); 639 } 640 } 641 return codeEl.innerText; 642 } 643 const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', { 644 text: getTextToCopy 645 }); 646 clipboard.on('success', onCopySuccess); 647 if (window.document.getElementById('quarto-embedded-source-code-modal')) { 648 const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', { 649 text: getTextToCopy, 650 container: window.document.getElementById('quarto-embedded-source-code-modal') 651 }); 652 clipboardModal.on('success', onCopySuccess); 653 } 654 var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//); 655 var mailtoRegex = new RegExp(/^mailto:/); 656 var filterRegex = new RegExp("https:\/\/nurfatimaj\.com"); 657 var isInternal = (href) => { 658 return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href); 659 } 660 // Inspect non-navigation links and adorn them if external 661 var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)'); 662 for (var i=0; i<links.length; i++) { 663 const link = links[i]; 664 if (!isInternal(link.href)) { 665 // undo the damage that might have been done by quarto-nav.js in the case of 666 // links that we want to consider external 667 if (link.dataset.originalHref !== undefined) { 668 link.href = link.dataset.originalHref; 669 } 670 } 671 } 672 function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) { 673 const config = { 674 allowHTML: true, 675 maxWidth: 500, 676 delay: 100,
677 arrow: false, 678 appendTo: function(el) { 679 return el.parentElement; 680 }, 681 interactive: true, 682 interactiveBorder: 10, 683 theme: 'quarto', 684 placement: 'bottom-start', 685 }; 686 if (contentFn) { 687 config.content = contentFn; 688 } 689 if (onTriggerFn) { 690 config.onTrigger = onTriggerFn; 691 } 692 if (onUntriggerFn) { 693 config.onUntrigger = onUntriggerFn; 694 } 695 window.tippy(el, config); 696 } 697 const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); 698 for (var i=0; i<noterefs.length; i++) { 699 const ref = noterefs[i]; 700 tippyHover(ref, function() { 701 // use id or data attribute instead here 702 let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href'); 703 try { href = new URL(href).hash; } catch {} 704 const id = href.replace(/^#\/?/, ""); 705 const note = window.document.getElementById(id); 706 if (note) { 707 return note.innerHTML; 708 } else { 709 return ""; 710 } 711 }); 712 } 713 const xrefs = window.document.querySelectorAll('a.quarto-xref'); 714 const processXRef = (id, note) => { 715 // Strip column container classes 716 const stripColumnClz = (el) => { 717 el.classList.remove("page-full", "page-columns"); 718 if (el.children) { 719 for (const child of el.children) { 720 stripColumnClz(child); 721 } 722 } 723 } 724 stripColumnClz(note) 725 if (id === null || id.startsWith('sec-')) { 726 // Special case sections, only their first couple elements 727 const container = document.createElement("div"); 728 if (note.children && note.children.length > 2) { 729 container.appendChild(note.children[0].cloneNode(true)); 730 for (let i = 1; i < note.children.length; i++) { 731 const child = note.children[i]; 732 if (child.tagName === "P" && child.innerText === "") { 733 continue; 734 } else { 735 container.appendChild(child.cloneNode(true)); 736 break; 737 } 738 } 739 if (window.Quarto?.typesetMath) { 740 window.Quarto.typesetMath(container); 741 } 742 return container.innerHTML 743 } else { 744 if (window.Quarto?.typesetMath) { 745 window.Quarto.typesetMath(note); 746 } 747 return note.innerHTML; 748 } 749 } else { 750 // Remove any anchor links if they are present 751 const anchorLink = note.querySelector('a.anchorjs-link'); 752 if (anchorLink) { 753 anchorLink.remove(); 754 } 755 if (window.Quarto?.typesetMath) { 756 window.Quarto.typesetMath(note); 757 } 758 if (note.classList.contains("callout")) { 759 return note.outerHTML; 760 } else { 761 return note.innerHTML; 762 } 763 } 764 } 765 for (var i=0; i<xrefs.length; i++) { 766 const xref = xrefs[i]; 767 tippyHover(xref, undefined, function(instance) { 768 instance.disable(); 769 let url = xref.getAttribute('href'); 770 let hash = undefined; 771 if (url.startsWith('#')) { 772 hash = url; 773 } else { 774 try { hash = new URL(url).hash; } catch {} 775 } 776 if (hash) { 777 const id = hash.replace(/^#\/?/, ""); 778 const note = window.document.getElementById(id); 779 if (note !== null) { 780 try { 781 const html = processXRef(id, note.cloneNode(true)); 782 instance.setContent(html); 783 } finally { 784 instance.enable(); 785 instance.show(); 786 } 787 } else { 788 // See if we can fetch this 789 fetch(url.split('#')[0]) 790 .then(res => res.text()) 791 .then(html => { 792 const parser = new DOMParser(); 793 const htmlDoc = parser.parseFromString(html, "text/html"); 794 const note = htmlDoc.getElementById(id); 795 if (note !== null) { 796 const html = processXRef(id, note); 797 instance.setContent(html); 798 } 799 }).finally(() => { 800 instance.enable(); 801 instance.show(); 802 }); 803 } 804 } else { 805 // See if we can fetch a full url (with no hash to target)
806 // This is a special case and we should probably do some content thinning / targeting 807 fetch(url) 808 .then(res => res.text()) 809 .then(html => { 810 const parser = new DOMParser(); 811 const htmlDoc = parser.parseFromString(html, "text/html"); 812 const note = htmlDoc.querySelector('main.content'); 813 if (note !== null) { 814 // This should only happen for chapter cross references 815 // (since there is no id in the URL) 816 // remove the first header 817 if (note.children.length > 0 && note.children[0].tagName === "HEADER") { 818 note.children[0].remove(); 819 } 820 const html = processXRef(null, note); 821 instance.setContent(html); 822 } 823 }).finally(() => { 824 instance.enable(); 825 instance.show(); 826 }); 827 } 828 }, function(instance) { 829 }); 830 } 831 let selectedAnnoteEl; 832 const selectorForAnnotation = ( cell, annotation) => { 833 let cellAttr = 'data-code-cell="' + cell + '"'; 834 let lineAttr = 'data-code-annotation="' + annotation + '"'; 835 const selector = 'span[' + cellAttr + '][' + lineAttr + ']'; 836 return selector; 837 } 838 const selectCodeLines = (annoteEl) => { 839 const doc = window.document; 840 const targetCell = annoteEl.getAttribute("data-target-cell"); 841 const targetAnnotation = annoteEl.getAttribute("data-target-annotation"); 842 const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation)); 843 const lines = annoteSpan.getAttribute("data-code-lines").split(","); 844 const lineIds = lines.map((line) => { 845 return targetCell + "-" + line; 846 }) 847 let top = null; 848 let height = null; 849 let parent = null; 850 if (lineIds.length > 0) { 851 //compute the position of the single el (top and bottom and make a div) 852 const el = window.document.getElementById(lineIds[0]); 853 top = el.offsetTop; 854 height = el.offsetHeight; 855 parent = el.parentElement.parentElement; 856 if (lineIds.length > 1) { 857 const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]); 858 const bottom = lastEl.offsetTop + lastEl.offsetHeight; 859 height = bottom - top; 860 } 861 if (top !== null && height !== null && parent !== null) { 862 // cook up a div (if necessary) and position it 863 let div = window.document.getElementById("code-annotation-line-highlight"); 864 if (div === null) { 865 div = window.document.createElement("div"); 866 div.setAttribute("id", "code-annotation-line-highlight"); 867 div.style.position = 'absolute'; 868 parent.appendChild(div); 869 } 870 div.style.top = top - 2 + "px"; 871 div.style.height = height + 4 + "px"; 872 div.style.left = 0; 873 let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); 874 if (gutterDiv === null) { 875 gutterDiv = window.document.createElement("div"); 876 gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter"); 877 gutterDiv.style.position = 'absolute'; 878 const codeCell = window.document.getElementById(targetCell); 879 const gutter = codeCell.querySelector('.code-annotation-gutter'); 880 gutter.appendChild(gutterDiv); 881 } 882 gutterDiv.style.top = top - 2 + "px"; 883 gutterDiv.style.height = height + 4 + "px"; 884 } 885 selectedAnnoteEl = annoteEl; 886 } 887 }; 888 const unselectCodeLines = () => { 889 const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"]; 890 elementsIds.forEach((elId) => { 891 const div = window.document.getElementById(elId); 892 if (div) { 893 div.remove(); 894 } 895 }); 896 selectedAnnoteEl = undefined; 897 }; 898 // Handle positioning of the toggle 899 window.addEventListener( 900 "resize", 901 throttle(() => { 902 elRect = undefined; 903 if (selectedAnnoteEl) { 904 selectCodeLines(selectedAnnoteEl); 905 } 906 }, 10) 907 ); 908 function throttle(fn, ms) { 909 let throttle = false;
910 let timer; 911 return (...args) => { 912 if(!throttle) { // first call gets through 913 fn.apply(this, args); 914 throttle = true; 915 } else { // all the others get throttled 916 if(timer) clearTimeout(timer); // cancel #2 917 timer = setTimeout(() => { 918 fn.apply(this, args); 919 timer = throttle = false; 920 }, ms); 921 } 922 }; 923 } 924 // Attach click handler to the DT 925 const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); 926 for (const annoteDlNode of annoteDls) { 927 annoteDlNode.addEventListener('click', (event) => { 928 const clickedEl = event.target; 929 if (clickedEl !== selectedAnnoteEl) { 930 unselectCodeLines(); 931 const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active'); 932 if (activeEl) { 933 activeEl.classList.remove('code-annotation-active'); 934 } 935 selectCodeLines(clickedEl); 936 clickedEl.classList.add('code-annotation-active'); 937 } else { 938 // Unselect the line 939 unselectCodeLines(); 940 clickedEl.classList.remove('code-annotation-active'); 941 } 942 }); 943 } 944 const findCites = (el) => { 945 const parentEl = el.parentElement; 946 if (parentEl) { 947 const cites = parentEl.dataset.cites; 948 if (cites) { 949 return { 950 el, 951 cites: cites.split(' ') 952 }; 953 } else { 954 return findCites(el.parentElement) 955 } 956 } else { 957 return undefined; 958 } 959 }; 960 var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]'); 961 for (var i=0; i<bibliorefs.length; i++) { 962 const ref = bibliorefs[i]; 963 const citeInfo = findCites(ref); 964 if (citeInfo) { 965 tippyHover(citeInfo.el, function() { 966 var popup = window.document.createElement('div'); 967 citeInfo.cites.forEach(function(cite) { 968 var citeDiv = window.document.createElement('div'); 969 citeDiv.classList.add('hanging-indent'); 970 citeDiv.classList.add('csl-entry'); 971 var biblioDiv = window.document.getElementById('ref-' + cite); 972 if (biblioDiv) { 973 citeDiv.innerHTML = biblioDiv.innerHTML; 974 } 975 popup.appendChild(citeDiv); 976 }); 977 return popup.innerHTML; 978 }); 979 } 980 } 981 }); 982 </script>
982 983</div> <!-- /content --> 984<footer class="footer"> 985 <div class="nav-footer"> 986 <div class="nav-footer-left"> 987<p><a href='https://nurfatimaj.com/privacy'>Privacy</a></p> 988</div> 989 <div class="nav-footer-center"> 990<p>© 2026 , Nurfatima Jandarova</p> 991</div> 992 <div class="nav-footer-right"> 993 994 </div> 995 </div> 996</footer> 997 998 999 1000 1001</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.