1<!DOCTYPE html> 2 3<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> 4 5<head> 6 <meta charset="utf-8"/> 7<!-- This site is hosted on Netlify. Anyone can build and deploy a site 8 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=ab0ce3c8-c477-4f82-a0ee-037dc555cb61 9 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 10 <meta name="viewport" content="width=device-width, initial-scale=1"/> 11 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> 12 <meta name="generator" content="distill" /> 13 14 <style type="text/css"> 15 /* Hide doc at startup (prevent jankiness while JS renders/transforms) */ 16 body { 17 visibility: hidden; 18 } 19 </style> 20 21 <!--radix_placeholder_import_source--> 22 <!--/radix_placeholder_import_source--> 23 24<style type="text/css">code{white-space: pre;}</style> 25<style type="text/css" data-origin="pandoc"> 26pre > code.sourceCode { white-space: pre; position: relative; } 27pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } 28pre > code.sourceCode > span:empty { height: 1.2em; } 29.sourceCode { overflow: visible; } 30code.sourceCode > span { color: inherit; text-decoration: inherit; } 31div.sourceCode { margin: 1em 0; } 32pre.sourceCode { margin: 0; } 33@media screen { 34div.sourceCode { overflow: auto; } 35} 36@media print { 37pre > code.sourceCode { white-space: pre-wrap; } 38pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } 39} 40pre.numberSource code 41 { counter-reset: source-line 0; } 42pre.numberSource code > span 43 { position: relative; left: -4em; counter-increment: source-line; } 44pre.numberSource code > span > a:first-child::before 45 { content: counter(source-line); 46 position: relative; left: -1em; text-align: right; vertical-align: baseline; 47 border: none; display: inline-block; 48 -webkit-touch-callout: none; -webkit-user-select: none; 49 -khtml-user-select: none; -moz-user-select: none; 50 -ms-user-select: none; user-select: none; 51 padding: 0 4px; width: 4em; 52 color: #aaaaaa; 53 } 54pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } 55div.sourceCode 56 { color: #00769e; background-color: #f1f3f5; } 57@media screen { 58pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } 59} 60code span { color: #00769e; } /* Normal */ 61code span.al { color: #ad0000; } /* Alert */ 62code span.an { color: #5e5e5e; } /* Annotation */ 63code span.at { color: #657422; } /* Attribute */ 64code span.bn { color: #ad0000; } /* BaseN */ 65code span.bu { } /* BuiltIn */ 66code span.cf { color: #00769e; } /* ControlFlow */ 67code span.ch { color: #20794d; } /* Char */ 68code span.cn { color: #8f5902; } /* Constant */ 69code span.co { color: #5e5e5e; } /* Comment */ 70code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */ 71code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */ 72code span.dt { color: #ad0000; } /* DataType */ 73code span.dv { color: #ad0000; } /* DecVal */ 74code span.er { color: #ad0000; } /* Error */ 75code span.ex { } /* Extension */ 76code span.fl { color: #ad0000; } /* Float */ 77code span.fu { color: #4758ab; } /* Function */ 78code span.im { } /* Import */ 79code span.in { color: #5e5e5e; } /* Information */ 80code span.kw { color: #00769e; } /* Keyword */ 81code span.op { color: #5e5e5e; } /* Operator */ 82code span.ot { color: #00769e; } /* Other */ 83code span.pp { color: #ad0000; } /* Preprocessor */ 84code span.sc { color: #5e5e5e; } /* SpecialChar */ 85code span.ss { color: #20794d; } /* SpecialString */ 86code span.st { color: #20794d; } /* String */ 87code span.va { color: #111111; } /* Variable */ 88code span.vs { color: #20794d; } /* VerbatimString */ 89code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */ 90</style> 91 92 93 <!--radix_placeholder_meta_tags--> 94 <title>Applied Machine Learning for Educational Data Science: Course Syllabus</title> 95 96 97 <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/> 98 99 100 <!-- https://developers.facebook.com/docs/sharing/webmasters#markup --> 101 <meta property="og:title" content="Applied Machine Learning for Educational Data Science: Course Syllabus"/> 102 <meta property="og:type" content="article"/> 103 <meta property="og:locale" content="en_US"/> 104 <meta property="og:site_name" content="Applied Machine Learning for Educational Data Science"/> 105 106 <!-- https://dev.twitter.com/cards/types/summary --> 107 <meta property="twitter:card" content="summary"/> 108 <meta property="twitter:title" content="Applied Machine Learning for Educational Data Science: Course Syllabus"/> 109 110 <!--/radix_placeholder_meta_tags--> 111 <!--radix_placeholder_rmarkdown_metadata--> 112 113
113<script type="text/json" id="radix-rmarkdown-metadata"> 114 {"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description"]}},"value":[{"type":"character","attributes":{},"value":["Course Syllabus"]},{"type":"NULL"}]} 115 </script>
115 116 <!--/radix_placeholder_rmarkdown_metadata--> 117 <!--radix_placeholder_navigation_in_header--> 118 <meta name="distill:offset" content=""/> 119 120
120<script type="application/javascript"> 121 122 window.headroom_prevent_pin = false; 123 124 window.document.addEventListener("DOMContentLoaded", function (event) { 125 126 // initialize headroom for banner 127 var header = $('header').get(0); 128 var headerHeight = header.offsetHeight; 129 var headroom = new Headroom(header, { 130 tolerance: 5, 131 onPin : function() { 132 if (window.headroom_prevent_pin) { 133 window.headroom_prevent_pin = false; 134 headroom.unpin(); 135 } 136 } 137 }); 138 headroom.init(); 139 if(window.location.hash) 140 headroom.unpin(); 141 $(header).addClass('headroom--transition'); 142 143 // offset scroll location for banner on hash change 144 // (see: https://github.com/WickyNilliams/headroom.js/issues/38) 145 window.addEventListener("hashchange", function(event) { 146 window.scrollTo(0, window.pageYOffset - (headerHeight + 25)); 147 }); 148 149 // responsive menu 150 $('.distill-site-header').each(function(i, val) { 151 var topnav = $(this); 152 var toggle = topnav.find('.nav-toggle'); 153 toggle.on('click', function() { 154 topnav.toggleClass('responsive'); 155 }); 156 }); 157 158 // nav dropdowns 159 $('.nav-dropbtn').click(function(e) { 160 $(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active'); 161 $(this).parent().siblings('.nav-dropdown') 162 .children('.nav-dropdown-content').removeClass('nav-dropdown-active'); 163 }); 164 $("body").click(function(e){ 165 $('.nav-dropdown-content').removeClass('nav-dropdown-active'); 166 }); 167 $(".nav-dropdown").click(function(e){ 168 e.stopPropagation(); 169 }); 170 }); 171 </script>
171 172 173 <style type="text/css"> 174 175 /* Theme (user-documented overrideables for nav appearance) */ 176 177 .distill-site-nav { 178 color: rgba(255, 255, 255, 0.8); 179 background-color: #0F2E3D; 180 font-size: 15px; 181 font-weight: 300; 182 } 183 184 .distill-site-nav a { 185 color: inherit; 186 text-decoration: none; 187 } 188 189 .distill-site-nav a:hover { 190 color: white; 191 } 192 193 @media print { 194 .distill-site-nav { 195 display: none; 196 } 197 } 198 199 .distill-site-header { 200 201 } 202 203 .distill-site-footer { 204 205 } 206 207 208 /* Site Header */ 209 210 .distill-site-header { 211 width: 100%; 212 box-sizing: border-box; 213 z-index: 3; 214 } 215 216 .distill-site-header .nav-left { 217 display: inline-block; 218 margin-left: 8px; 219 } 220 221 @media screen and (max-width: 768px) { 222 .distill-site-header .nav-left { 223 margin-left: 0; 224 } 225 } 226 227 228 .distill-site-header .nav-right { 229 float: right; 230 margin-right: 8px; 231 } 232 233 .distill-site-header a, 234 .distill-site-header .title { 235 display: inline-block; 236 text-align: center; 237 padding: 14px 10px 14px 10px; 238 } 239 240 .distill-site-header .title { 241 font-size: 18px; 242 min-width: 150px; 243 } 244 245 .distill-site-header .logo { 246 padding: 0; 247 } 248 249 .distill-site-header .logo img { 250 display: none; 251 max-height: 20px; 252 width: auto; 253 margin-bottom: -4px; 254 } 255 256 .distill-site-header .nav-image img { 257 max-height: 18px; 258 width: auto; 259 display: inline-block; 260 margin-bottom: -3px; 261 } 262 263 264 265 @media screen and (min-width: 1000px) { 266 .distill-site-header .logo img { 267 display: inline-block; 268 } 269 .distill-site-header .nav-left { 270 margin-left: 20px; 271 } 272 .distill-site-header .nav-right { 273 margin-right: 20px; 274 } 275 .distill-site-header .title { 276 padding-left: 12px; 277 } 278 } 279 280 281 .distill-site-header .nav-toggle { 282 display: none; 283 } 284 285 .nav-dropdown { 286 display: inline-block; 287 position: relative; 288 } 289 290 .nav-dropdown .nav-dropbtn { 291 border: none; 292 outline: none; 293 color: rgba(255, 255, 255, 0.8); 294 padding: 16px 10px; 295 background-color: transparent; 296 font-family: inherit; 297 font-size: inherit; 298 font-weight: inherit; 299 margin: 0;
300 margin-top: 1px; 301 z-index: 2; 302 } 303 304 .nav-dropdown-content { 305 display: none; 306 position: absolute; 307 background-color: white; 308 min-width: 200px; 309 border: 1px solid rgba(0,0,0,0.15); 310 border-radius: 4px; 311 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1); 312 z-index: 1; 313 margin-top: 2px; 314 white-space: nowrap; 315 padding-top: 4px; 316 padding-bottom: 4px; 317 } 318 319 .nav-dropdown-content hr { 320 margin-top: 4px; 321 margin-bottom: 4px; 322 border: none; 323 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 324 } 325 326 .nav-dropdown-active { 327 display: block; 328 } 329 330 .nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header { 331 color: black; 332 padding: 6px 24px; 333 text-decoration: none; 334 display: block; 335 text-align: left; 336 } 337 338 .nav-dropdown-content .nav-dropdown-header { 339 display: block; 340 padding: 5px 24px; 341 padding-bottom: 0; 342 text-transform: uppercase; 343 font-size: 14px; 344 color: #999999; 345 white-space: nowrap; 346 } 347 348 .nav-dropdown:hover .nav-dropbtn { 349 color: white; 350 } 351 352 .nav-dropdown-content a:hover { 353 background-color: #ddd; 354 color: black; 355 } 356 357 .nav-right .nav-dropdown-content { 358 margin-left: -45%; 359 right: 0; 360 } 361 362 @media screen and (max-width: 768px) { 363 .distill-site-header a, .distill-site-header .nav-dropdown {display: none;} 364 .distill-site-header a.nav-toggle { 365 float: right; 366 display: block; 367 } 368 .distill-site-header .title { 369 margin-left: 0; 370 } 371 .distill-site-header .nav-right { 372 margin-right: 0; 373 } 374 .distill-site-header { 375 overflow: hidden; 376 } 377 .nav-right .nav-dropdown-content { 378 margin-left: 0; 379 } 380 } 381 382 383 @media screen and (max-width: 768px) { 384 .distill-site-header.responsive {position: relative; min-height: 500px; } 385 .distill-site-header.responsive a.nav-toggle { 386 position: absolute; 387 right: 0; 388 top: 0; 389 } 390 .distill-site-header.responsive a, 391 .distill-site-header.responsive .nav-dropdown { 392 display: block; 393 text-align: left; 394 } 395 .distill-site-header.responsive .nav-left, 396 .distill-site-header.responsive .nav-right { 397 width: 100%; 398 } 399 .distill-site-header.responsive .nav-dropdown {float: none;} 400 .distill-site-header.responsive .nav-dropdown-content {position: relative;} 401 .distill-site-header.responsive .nav-dropdown .nav-dropbtn { 402 display: block; 403 width: 100%; 404 text-align: left; 405 } 406 } 407 408 /* Site Footer */ 409 410 .distill-site-footer { 411 width: 100%; 412 overflow: hidden; 413 box-sizing: border-box; 414 z-index: 3; 415 margin-top: 30px; 416 padding-top: 30px; 417 padding-bottom: 30px; 418 text-align: center; 419 } 420 421 /* Headroom */ 422 423 d-title { 424 padding-top: 6rem; 425 } 426 427 @media print { 428 d-title { 429 padding-top: 4rem; 430 } 431 } 432 433 .headroom { 434 z-index: 1000; 435 position: fixed; 436 top: 0; 437 left: 0; 438 right: 0; 439 } 440 441 .headroom--transition { 442 transition: all .4s ease-in-out; 443 } 444 445 .headroom--unpinned { 446 top: -100px; 447 } 448 449 .headroom--pinned { 450 top: 0; 451 } 452 453 /* adjust viewport for navbar height */ 454 /* helps vertically center bootstrap (non-distill) content */ 455 .min-vh-100 { 456 min-height: calc(100vh - 100px) !important; 457 } 458 459 </style> 460 461
461<script src="site_libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
461 462 <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/> 463 <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/> 464
464<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
464 465
465<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
465 466
466<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
466 467 468
468<script type="application/javascript"> 469 470 function getMeta(metaName) { 471 var metas = document.getElementsByTagName('meta'); 472 for (let i = 0; i < metas.length; i++) { 473 if (metas[i].getAttribute('name') === metaName) { 474 return metas[i].getAttribute('content'); 475 } 476 } 477 return ''; 478 } 479 480 function offsetURL(url) { 481 var offset = getMeta('distill:offset'); 482 return offset ? offset + '/' + url : url; 483 } 484 485 function createFuseIndex() { 486 487 // create fuse index 488 var options = { 489 keys: [ 490 { name: 'title', weight: 20 }, 491 { name: 'categories', weight: 15 }, 492 { name: 'description', weight: 10 }, 493 { name: 'contents', weight: 5 }, 494 ], 495 ignoreLocation: true, 496 threshold: 0 497 }; 498 var fuse = new window.Fuse([], options); 499 500 // fetch the main search.json 501 return fetch(offsetURL('search.json')) 502 .then(function(response) { 503 if (response.status == 200) { 504 return response.json().then(function(json) { 505 // index main articles 506 json.articles.forEach(function(article) { 507 fuse.add(article); 508 }); 509 // download collections and index their articles 510 return Promise.all(json.collections.map(function(collection) { 511 return fetch(offsetURL(collection)).then(function(response) { 512 if (response.status === 200) { 513 return response.json().then(function(articles) { 514 articles.forEach(function(article) { 515 fuse.add(article); 516 }); 517 }) 518 } else { 519 return Promise.reject( 520 new Error('Unexpected status from search index request: ' + 521 response.status) 522 ); 523 } 524 }); 525 })).then(function() { 526 return fuse; 527 }); 528 }); 529 530 } else { 531 return Promise.reject( 532 new Error('Unexpected status from search index request: ' + 533 response.status) 534 ); 535 } 536 }); 537 } 538 539 window.document.addEventListener("DOMContentLoaded", function (event) { 540 541 // get search element (bail if we don't have one) 542 var searchEl = window.document.getElementById('distill-search'); 543 if (!searchEl) 544 return; 545 546 createFuseIndex() 547 .then(function(fuse) { 548 549 // make search box visible 550 searchEl.classList.remove('hidden'); 551 552 // initialize autocomplete 553 var options = { 554 autoselect: true, 555 hint: false, 556 minLength: 2, 557 }; 558 window.autocomplete(searchEl, options, [{ 559 source: function(query, callback) { 560 const searchOptions = { 561 isCaseSensitive: false, 562 shouldSort: true, 563 minMatchCharLength: 2, 564 limit: 10, 565 }; 566 var results = fuse.search(query, searchOptions); 567 callback(results 568 .map(function(result) { return result.item; }) 569 ); 570 }, 571 templates: { 572 suggestion: function(suggestion) { 573 var img = suggestion.preview && Object.keys(suggestion.preview).length > 0 574 ? `<img src="${offsetURL(suggestion.preview)}"</img>` 575 : ''; 576 var html = ` 577 <div class="search-item"> 578 <h3>${suggestion.title}</h3> 579 <div class="search-item-description"> 580 ${suggestion.description || ''} 581 </div> 582 <div class="search-item-preview"> 583 ${img} 584 </div> 585 </div> 586 `; 587 return html; 588 } 589 } 590 }]).on('autocomplete:selected', function(event, suggestion) { 591 window.location.href = offsetURL(suggestion.path); 592 }); 593 // remove inline display style on autocompleter (we want to 594 // manage responsive display via css) 595 $('.algolia-autocomplete').css("display", ""); 596 }) 597 .catch(function(error) { 598 console.log(error); 599 }); 600 601 }); 602 603 </script>
603 604 605 <style type="text/css"> 606 607 .nav-search { 608 font-size: x-small; 609 } 610 611 /* Algolioa Autocomplete */ 612 613 .algolia-autocomplete { 614 display: inline-block; 615 margin-left: 10px; 616 vertical-align: sub; 617 background-color: white; 618 color: black; 619 padding: 6px; 620 padding-top: 8px; 621 padding-bottom: 0; 622 border-radius: 6px; 623 border: 1px #0F2E3D solid; 624 width: 180px; 625 } 626 627 628 @media screen and (max-width: 768px) { 629 .distill-site-nav .algolia-autocomplete { 630 display: none; 631 visibility: hidden; 632 } 633 .distill-site-nav.responsive .algolia-autocomplete { 634 display: inline-block; 635 visibility: visible; 636 } 637 .distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu { 638 margin-left: 0; 639 width: 400px; 640 max-height: 400px; 641 } 642 } 643 644 .algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint { 645 width: 90%; 646 outline: none; 647 border: none; 648 } 649 650 .algolia-autocomplete .aa-hint { 651 color: #999; 652 } 653 .algolia-autocomplete .aa-dropdown-menu { 654 width: 550px; 655 max-height: 70vh; 656 overflow-x: visible; 657 overflow-y: scroll; 658 padding: 5px; 659 margin-top: 3px; 660 margin-left: -150px; 661 background-color: #fff; 662 border-radius: 5px; 663 border: 1px solid #999; 664 border-top: none; 665 } 666 667 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion { 668 cursor: pointer; 669 padding: 5px 4px; 670 border-bottom: 1px solid #eee; 671 } 672 673 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type { 674 border-bottom: none; 675 margin-bottom: 2px; 676 } 677 678 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item { 679 overflow: hidden; 680 font-size: 0.8em; 681 line-height: 1.4em; 682 } 683 684 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 { 685 font-size: 1rem; 686 margin-block-start: 0; 687 margin-block-end: 5px; 688 } 689 690 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description { 691 display: inline-block; 692 overflow: hidden; 693 height: 2.8em; 694 width: 80%; 695 margin-right: 4%; 696 } 697 698 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview { 699 display: inline-block; 700 width: 15%; 701 } 702 703 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img { 704 height: 3em; 705 width: auto; 706 display: none; 707 } 708 709 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] { 710 display: initial; 711 } 712 713 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor { 714 background-color: #eee; 715 } 716 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion em { 717 font-weight: bold; 718 font-style: normal; 719 } 720 721 </style> 722 723 724 <!--/radix_placeholder_navigation_in_header--> 725 <!--radix_placeholder_distill--> 726 727 <style type="text/css"> 728 729 body { 730 background-color: white; 731 } 732 733 .pandoc-table { 734 width: 100%; 735 } 736 737 .pandoc-table>caption { 738 margin-bottom: 10px; 739 } 740 741 .pandoc-table th:not([align]) { 742 text-align: left; 743 } 744 745 .pagedtable-footer { 746 font-size: 15px; 747 } 748 749 d-byline .byline { 750 grid-template-columns: 2fr 2fr; 751 } 752 753 d-byline .byline h3 { 754 margin-block-start: 1.5em; 755 } 756 757 d-byline .byline .authors-affiliations h3 { 758 margin-block-start: 0.5em; 759 } 760 761 .authors-affiliations .orcid-id { 762 width: 16px; 763 height:16px; 764 margin-left: 4px; 765 margin-right: 4px; 766 vertical-align: middle; 767 padding-bottom: 2px; 768 } 769 770 d-title .dt-tags { 771 margin-top: 1em; 772 grid-column: text; 773 } 774 775 .dt-tags .dt-tag { 776 text-decoration: none; 777 display: inline-block; 778 color: rgba(0,0,0,0.6); 779 padding: 0em 0.4em; 780 margin-right: 0.5em; 781 margin-bottom: 0.4em; 782 font-size: 70%; 783 border: 1px solid rgba(0,0,0,0.2); 784 border-radius: 3px; 785 text-transform: uppercase; 786 font-weight: 500; 787 } 788 789 d-article table.gt_table td, 790 d-article table.gt_table th { 791 border-bottom: none; 792 } 793 794 .html-widget { 795 margin-bottom: 2.0em; 796 } 797 798 .l-screen-inset { 799 padding-right: 16px; 800 } 801 802 .l-screen .caption { 803 margin-left: 10px; 804 } 805 806 .shaded { 807 background: rgb(247, 247, 247); 808 padding-top: 20px; 809 padding-bottom: 20px; 810 border-top: 1px solid rgba(0, 0, 0, 0.1); 811 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 812 } 813 814 .shaded .html-widget { 815 margin-bottom: 0; 816 border: 1px solid rgba(0, 0, 0, 0.1); 817 } 818 819 .shaded .shaded-content { 820 background: white; 821 } 822 823 .text-output { 824 margin-top: 0;
825 line-height: 1.5em; 826 } 827 828 .hidden { 829 display: none !important; 830 } 831 832 d-article { 833 padding-top: 2.5rem; 834 padding-bottom: 30px; 835 } 836 837 d-appendix { 838 padding-top: 30px; 839 } 840 841 d-article>p>img { 842 width: 100%; 843 } 844 845 d-article h2 { 846 margin: 1rem 0 1.5rem 0; 847 } 848 849 d-article h3 { 850 margin-top: 1.5rem; 851 } 852 853 d-article iframe { 854 border: 1px solid rgba(0, 0, 0, 0.1); 855 margin-bottom: 2.0em; 856 width: 100%; 857 } 858 859 /* Tweak code blocks */ 860 861 d-article div.sourceCode code, 862 d-article pre code { 863 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 864 } 865 866 d-article pre, 867 d-article div.sourceCode, 868 d-article div.sourceCode pre { 869 overflow: auto; 870 } 871 872 d-article div.sourceCode { 873 background-color: white; 874 } 875 876 d-article div.sourceCode pre { 877 padding-left: 10px; 878 font-size: 12px; 879 border-left: 2px solid rgba(0,0,0,0.1); 880 } 881 882 d-article pre { 883 font-size: 12px; 884 color: black; 885 background: none; 886 margin-top: 0; 887 text-align: left; 888 white-space: pre; 889 word-spacing: normal; 890 word-break: normal; 891 word-wrap: normal; 892 line-height: 1.5; 893 894 -moz-tab-size: 4; 895 -o-tab-size: 4; 896 tab-size: 4; 897 898 -webkit-hyphens: none; 899 -moz-hyphens: none; 900 -ms-hyphens: none; 901 hyphens: none; 902 } 903 904 d-article pre a { 905 border-bottom: none; 906 } 907 908 d-article pre a:hover { 909 border-bottom: none; 910 text-decoration: underline; 911 } 912 913 d-article details { 914 grid-column: text; 915 margin-bottom: 0.8em; 916 } 917 918 @media(min-width: 768px) { 919 920 d-article pre, 921 d-article div.sourceCode, 922 d-article div.sourceCode pre { 923 overflow: visible !important; 924 } 925 926 d-article div.sourceCode pre { 927 padding-left: 18px; 928 font-size: 14px; 929 } 930 931 d-article pre { 932 font-size: 14px; 933 } 934 935 } 936 937 figure img.external { 938 background: white; 939 border: 1px solid rgba(0, 0, 0, 0.1); 940 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 941 padding: 18px; 942 box-sizing: border-box; 943 } 944 945 /* CSS for d-contents */ 946 947 .d-contents { 948 grid-column: text; 949 color: rgba(0,0,0,0.8); 950 font-size: 0.9em; 951 padding-bottom: 1em; 952 margin-bottom: 1em; 953 padding-bottom: 0.5em; 954 margin-bottom: 1em; 955 padding-left: 0.25em; 956 justify-self: start; 957 } 958 959 @media(min-width: 1000px) { 960 .d-contents.d-contents-float { 961 height: 0; 962 grid-column-start: 1; 963 grid-column-end: 4; 964 justify-self: center; 965 padding-right: 3em; 966 padding-left: 2em; 967 } 968 } 969 970 .d-contents nav h3 { 971 font-size: 18px; 972 margin-top: 0; 973 margin-bottom: 1em; 974 } 975 976 .d-contents li { 977 list-style-type: none 978 } 979 980 .d-contents nav > ul { 981 padding-left: 0; 982 } 983 984 .d-contents ul { 985 padding-left: 1em 986 } 987 988 .d-contents nav ul li { 989 margin-top: 0.6em; 990 margin-bottom: 0.2em; 991 } 992 993 .d-contents nav a { 994 font-size: 13px; 995 border-bottom: none; 996 text-decoration: none 997 color: rgba(0, 0, 0, 0.8); 998 } 999 1000 .d-contents nav a:hover { 1001 text-decoration: underline solid rgba(0, 0, 0, 0.6) 1002 } 1003 1004 .d-contents nav > ul > li > a { 1005 font-weight: 600; 1006 } 1007 1008 .d-contents nav > ul > li > ul { 1009 font-weight: inherit; 1010 } 1011 1012 .d-contents nav > ul > li > ul > li { 1013 margin-top: 0.2em; 1014 } 1015 1016 1017 .d-contents nav ul { 1018 margin-top: 0; 1019 margin-bottom: 0.25em; 1020 } 1021 1022 .d-article-with-toc h2:nth-child(2) { 1023 margin-top: 0; 1024 } 1025 1026 1027 /* Figure */ 1028 1029 .figure { 1030 position: relative; 1031 margin-bottom: 2.5em; 1032 margin-top: 1.5em; 1033 } 1034 1035 .figure .caption { 1036 color: rgba(0, 0, 0, 0.6); 1037 font-size: 12px; 1038 line-height: 1.5em; 1039 } 1040 1041 .figure img.external { 1042 background: white; 1043 border: 1px solid rgba(0, 0, 0, 0.1); 1044 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 1045 padding: 18px; 1046 box-sizing: border-box; 1047 } 1048 1049 .figure .caption a { 1050 color: rgba(0, 0, 0, 0.6); 1051 } 1052 1053 .figure .caption b, 1054 .figure .caption strong, { 1055 font-weight: 600; 1056 color: rgba(0, 0, 0, 1.0); 1057 } 1058 1059 /* Citations */ 1060 1061 d-article .citation { 1062 color: inherit; 1063 cursor: inherit; 1064 } 1065 1066 div.hanging-indent{ 1067 margin-left: 1em; text-indent: -1em; 1068 } 1069 1070 /* Citation hover box */ 1071 1072 .tippy-box[data-theme~=light-border] { 1073 background-color: rgba(250, 250, 250, 0.95); 1074 } 1075 1076 .tippy-content > p { 1077 margin-bottom: 0; 1078 padding: 2px; 1079 } 1080 1081 1082 /* Tweak 1000px media break to show more text */ 1083 1084 @media(min-width: 1000px) { 1085 .base-grid, 1086 distill-header, 1087 d-title, 1088 d-abstract, 1089 d-article, 1090 d-appendix, 1091 distill-appendix, 1092 d-byline, 1093 d-footnote-list, 1094 d-citation-list, 1095 distill-footer { 1096 grid-template-columns: [screen-start] 1fr [page-start kicker-start] 80px [middle-start] 50px [text-start kicker-end] 65px 65px 65px 65px 65px 65px 65px 65px [text-end gutter-start] 65px [middle-end] 65px [page-end gutter-end] 1fr [screen-end]; 1097 grid-column-gap: 16px; 1098 } 1099 1100 .grid { 1101 grid-column-gap: 16px; 1102 } 1103 1104 d-article { 1105 font-size: 1.06rem; 1106 line-height: 1.7em; 1107 } 1108 figure .caption, .figure .caption, figure figcaption { 1109 font-size: 13px; 1110 } 1111 } 1112 1113 @media(min-width: 1180px) { 1114 .base-grid, 1115 distill-header, 1116 d-title, 1117 d-abstract, 1118 d-article, 1119 d-appendix, 1120 distill-appendix, 1121 d-byline, 1122 d-footnote-list, 1123 d-citation-list, 1124 distill-footer { 1125 grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end]; 1126 grid-column-gap: 32px; 1127 } 1128 1129 .grid { 1130 grid-column-gap: 32px; 1131 } 1132 } 1133 1134 1135 /* Get the citation styles for the appendix (not auto-injected on render since 1136 we do our own rendering of the citation appendix) */ 1137 1138 d-appendix .citation-appendix, 1139 .d-appendix .citation-appendix { 1140 font-size: 11px; 1141 line-height: 15px; 1142 border-left: 1px solid rgba(0, 0, 0, 0.1); 1143 padding-left: 18px; 1144 border: 1px solid rgba(0,0,0,0.1); 1145 background: rgba(0, 0, 0, 0.02); 1146 padding: 10px 18px; 1147 border-radius: 3px; 1148 color: rgba(150, 150, 150, 1); 1149 overflow: hidden; 1150 margin-top: -12px; 1151 white-space: pre-wrap; 1152 word-wrap: break-word; 1153 } 1154 1155 /* Include appendix styles here so they can be overridden */ 1156 1157 d-appendix { 1158 contain: layout style; 1159 font-size: 0.8em; 1160 line-height: 1.7em; 1161 margin-top: 60px; 1162 margin-bottom: 0; 1163 border-top: 1px solid rgba(0, 0, 0, 0.1); 1164 color: rgba(0,0,0,0.5); 1165 padding-top: 60px; 1166 padding-bottom: 48px; 1167 } 1168 1169 d-appendix h3 { 1170 grid-column: page-start / text-start; 1171 font-size: 15px; 1172 font-weight: 500; 1173 margin-top: 1em; 1174 margin-bottom: 0; 1175 color: rgba(0,0,0,0.65); 1176 } 1177 1178 d-appendix h3 + * { 1179 margin-top: 1em; 1180 } 1181 1182 d-appendix ol { 1183 padding: 0 0 0 15px; 1184 } 1185 1186 @media (min-width: 768px) { 1187 d-appendix ol { 1188 padding: 0 0 0 30px; 1189 margin-left: -30px; 1190 } 1191 } 1192 1193 d-appendix li { 1194 margin-bottom: 1em; 1195 } 1196 1197 d-appendix a { 1198 color: rgba(0, 0, 0, 0.6); 1199 } 1200 1201 d-appendix > * { 1202 grid-column: text; 1203 } 1204 1205 d-appendix > d-footnote-list, 1206 d-appendix > d-citation-list, 1207 d-appendix > distill-appendix { 1208 grid-column: screen;
1209 } 1210 1211 /* Include footnote styles here so they can be overridden */ 1212 1213 d-footnote-list { 1214 contain: layout style; 1215 } 1216 1217 d-footnote-list > * { 1218 grid-column: text; 1219 } 1220 1221 d-footnote-list a.footnote-backlink { 1222 color: rgba(0,0,0,0.3); 1223 padding-left: 0.5em; 1224 } 1225 1226 1227 1228 /* Anchor.js */ 1229 1230 .anchorjs-link { 1231 /*transition: all .25s linear; */ 1232 text-decoration: none; 1233 border-bottom: none; 1234 } 1235 *:hover > .anchorjs-link { 1236 margin-left: -1.125em !important; 1237 text-decoration: none; 1238 border-bottom: none; 1239 } 1240 1241 /* Social footer */ 1242 1243 .social_footer { 1244 margin-top: 30px; 1245 margin-bottom: 0; 1246 color: rgba(0,0,0,0.67); 1247 } 1248 1249 .disqus-comments { 1250 margin-right: 30px; 1251 } 1252 1253 .disqus-comment-count { 1254 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1255 cursor: pointer; 1256 } 1257 1258 #disqus_thread { 1259 margin-top: 30px; 1260 } 1261 1262 .article-sharing a { 1263 border-bottom: none; 1264 margin-right: 8px; 1265 } 1266 1267 .article-sharing a:hover { 1268 border-bottom: none; 1269 } 1270 1271 .sidebar-section.subscribe { 1272 font-size: 12px; 1273 line-height: 1.6em; 1274 } 1275 1276 .subscribe p { 1277 margin-bottom: 0.5em; 1278 } 1279 1280 1281 .article-footer .subscribe { 1282 font-size: 15px; 1283 margin-top: 45px; 1284 } 1285 1286 1287 .sidebar-section.custom { 1288 font-size: 12px; 1289 line-height: 1.6em; 1290 } 1291 1292 .custom p { 1293 margin-bottom: 0.5em; 1294 } 1295 1296 /* Styles for listing layout (hide title) */ 1297 .layout-listing d-title, .layout-listing .d-title { 1298 display: none; 1299 } 1300 1301 /* Styles for posts lists (not auto-injected) */ 1302 1303 1304 .posts-with-sidebar { 1305 padding-left: 45px; 1306 padding-right: 45px; 1307 } 1308 1309 .posts-list .description h2, 1310 .posts-list .description p { 1311 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1312 } 1313 1314 .posts-list .description h2 { 1315 font-weight: 700; 1316 border-bottom: none; 1317 padding-bottom: 0; 1318 } 1319 1320 .posts-list h2.post-tag { 1321 border-bottom: 1px solid rgba(0, 0, 0, 0.2); 1322 padding-bottom: 12px; 1323 } 1324 .posts-list { 1325 margin-top: 60px; 1326 margin-bottom: 24px; 1327 } 1328 1329 .posts-list .post-preview { 1330 text-decoration: none; 1331 overflow: hidden; 1332 display: block; 1333 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 1334 padding: 24px 0; 1335 } 1336 1337 .post-preview-last { 1338 border-bottom: none !important; 1339 } 1340 1341 .posts-list .posts-list-caption { 1342 grid-column: screen; 1343 font-weight: 400; 1344 } 1345 1346 .posts-list .post-preview h2 { 1347 margin: 0 0 6px 0; 1348 line-height: 1.2em; 1349 font-style: normal; 1350 font-size: 24px; 1351 } 1352 1353 .posts-list .post-preview p { 1354 margin: 0 0 12px 0; 1355 line-height: 1.4em; 1356 font-size: 16px; 1357 } 1358 1359 .posts-list .post-preview .thumbnail { 1360 box-sizing: border-box; 1361 margin-bottom: 24px; 1362 position: relative; 1363 max-width: 500px; 1364 } 1365 .posts-list .post-preview img { 1366 width: 100%; 1367 display: block; 1368 } 1369 1370 .posts-list .metadata { 1371 font-size: 12px; 1372 line-height: 1.4em; 1373 margin-bottom: 18px; 1374 } 1375 1376 .posts-list .metadata > * { 1377 display: inline-block; 1378 } 1379 1380 .posts-list .metadata .publishedDate { 1381 margin-right: 2em; 1382 } 1383 1384 .posts-list .metadata .dt-authors { 1385 display: block; 1386 margin-top: 0.3em; 1387 margin-right: 2em; 1388 } 1389 1390 .posts-list .dt-tags { 1391 display: block; 1392 line-height: 1em; 1393 } 1394 1395 .posts-list .dt-tags .dt-tag { 1396 display: inline-block; 1397 color: rgba(0,0,0,0.6); 1398 padding: 0.3em 0.4em; 1399 margin-right: 0.2em; 1400 margin-bottom: 0.4em; 1401 font-size: 60%; 1402 border: 1px solid rgba(0,0,0,0.2); 1403 border-radius: 3px; 1404 text-transform: uppercase; 1405 font-weight: 500; 1406 } 1407 1408 .posts-list img { 1409 opacity: 1; 1410 } 1411 1412 .posts-list img[data-src] { 1413 opacity: 0; 1414 } 1415 1416 .posts-more { 1417 clear: both; 1418 } 1419 1420 1421 .posts-sidebar { 1422 font-size: 16px; 1423 } 1424 1425 .posts-sidebar h3 { 1426 font-size: 16px; 1427 margin-top: 0; 1428 margin-bottom: 0.5em; 1429 font-weight: 400; 1430 text-transform: uppercase; 1431 } 1432 1433 .sidebar-section { 1434 margin-bottom: 30px; 1435 } 1436 1437 .categories ul { 1438 list-style-type: none; 1439 margin: 0; 1440 padding: 0; 1441 } 1442 1443 .categories li { 1444 color: rgba(0, 0, 0, 0.8); 1445 margin-bottom: 0; 1446 } 1447 1448 .categories li>a { 1449 border-bottom: none; 1450 } 1451 1452 .categories li>a:hover { 1453 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1454 } 1455 1456 .categories .active { 1457 font-weight: 600; 1458 } 1459 1460 .categories .category-count { 1461 color: rgba(0, 0, 0, 0.4); 1462 } 1463 1464 1465 @media(min-width: 768px) { 1466 .posts-list .post-preview h2 { 1467 font-size: 26px; 1468 } 1469 .posts-list .post-preview .thumbnail { 1470 float: right; 1471 width: 30%; 1472 margin-bottom: 0; 1473 } 1474 .posts-list .post-preview .description { 1475 float: left; 1476 width: 45%; 1477 } 1478 .posts-list .post-preview .metadata { 1479 float: left; 1480 width: 20%; 1481 margin-top: 8px; 1482 } 1483 .posts-list .post-preview p { 1484 margin: 0 0 12px 0; 1485 line-height: 1.5em; 1486 font-size: 16px; 1487 } 1488 .posts-with-sidebar .posts-list { 1489 float: left; 1490 width: 75%; 1491 } 1492 .posts-with-sidebar .posts-sidebar { 1493 float: right; 1494 width: 20%; 1495 margin-top: 60px; 1496 padding-top: 24px; 1497 padding-bottom: 24px; 1498 } 1499 } 1500 1501 1502 /* Improve display for browsers without grid (IE/Edge <= 15) */ 1503 1504 .downlevel { 1505 line-height: 1.6em; 1506 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1507 margin: 0; 1508 } 1509 1510 .downlevel .d-title { 1511 padding-top: 6rem; 1512 padding-bottom: 1.5rem; 1513 } 1514 1515 .downlevel .d-title h1 { 1516 font-size: 50px; 1517 font-weight: 700; 1518 line-height: 1.1em; 1519 margin: 0 0 0.5rem; 1520 } 1521 1522 .downlevel .d-title p { 1523 font-weight: 300; 1524 font-size: 1.2rem; 1525 line-height: 1.55em; 1526 margin-top: 0;
1527 } 1528 1529 .downlevel .d-byline { 1530 padding-top: 0.8em; 1531 padding-bottom: 0.8em; 1532 font-size: 0.8rem; 1533 line-height: 1.8em; 1534 } 1535 1536 .downlevel .section-separator { 1537 border: none; 1538 border-top: 1px solid rgba(0, 0, 0, 0.1); 1539 } 1540 1541 .downlevel .d-article { 1542 font-size: 1.06rem; 1543 line-height: 1.7em; 1544 padding-top: 1rem; 1545 padding-bottom: 2rem; 1546 } 1547 1548 1549 .downlevel .d-appendix { 1550 padding-left: 0; 1551 padding-right: 0; 1552 max-width: none; 1553 font-size: 0.8em; 1554 line-height: 1.7em; 1555 margin-bottom: 0; 1556 color: rgba(0,0,0,0.5); 1557 padding-top: 40px; 1558 padding-bottom: 48px; 1559 } 1560 1561 .downlevel .footnotes ol { 1562 padding-left: 13px; 1563 } 1564 1565 .downlevel .base-grid, 1566 .downlevel .distill-header, 1567 .downlevel .d-title, 1568 .downlevel .d-abstract, 1569 .downlevel .d-article, 1570 .downlevel .d-appendix, 1571 .downlevel .distill-appendix, 1572 .downlevel .d-byline, 1573 .downlevel .d-footnote-list, 1574 .downlevel .d-citation-list, 1575 .downlevel .distill-footer, 1576 .downlevel .appendix-bottom, 1577 .downlevel .posts-container { 1578 padding-left: 40px; 1579 padding-right: 40px; 1580 } 1581 1582 @media(min-width: 768px) { 1583 .downlevel .base-grid, 1584 .downlevel .distill-header, 1585 .downlevel .d-title, 1586 .downlevel .d-abstract, 1587 .downlevel .d-article, 1588 .downlevel .d-appendix, 1589 .downlevel .distill-appendix, 1590 .downlevel .d-byline, 1591 .downlevel .d-footnote-list, 1592 .downlevel .d-citation-list, 1593 .downlevel .distill-footer, 1594 .downlevel .appendix-bottom, 1595 .downlevel .posts-container { 1596 padding-left: 150px; 1597 padding-right: 150px; 1598 max-width: 900px; 1599 } 1600 } 1601 1602 .downlevel pre code { 1603 display: block; 1604 border-left: 2px solid rgba(0, 0, 0, .1); 1605 padding: 0 0 0 20px; 1606 font-size: 14px; 1607 } 1608 1609 .downlevel code, .downlevel pre { 1610 color: black; 1611 background: none; 1612 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 1613 text-align: left; 1614 white-space: pre; 1615 word-spacing: normal; 1616 word-break: normal; 1617 word-wrap: normal; 1618 line-height: 1.5; 1619 1620 -moz-tab-size: 4; 1621 -o-tab-size: 4; 1622 tab-size: 4; 1623 1624 -webkit-hyphens: none; 1625 -moz-hyphens: none; 1626 -ms-hyphens: none; 1627 hyphens: none; 1628 } 1629 1630 .downlevel .posts-list .post-preview { 1631 color: inherit; 1632 } 1633 1634 1635 1636 </style> 1637 1638
1638<script type="application/javascript"> 1639 1640 function is_downlevel_browser() { 1641 if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"}, 1642 window.navigator.userAgent)) { 1643 return true; 1644 } else { 1645 return window.load_distill_framework === undefined; 1646 } 1647 } 1648 1649 // show body when load is complete 1650 function on_load_complete() { 1651 1652 // add anchors 1653 if (window.anchors) { 1654 window.anchors.options.placement = 'left'; 1655 window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5'); 1656 } 1657 1658 1659 // set body to visible 1660 document.body.style.visibility = 'visible'; 1661 1662 // force redraw for leaflet widgets 1663 if (window.HTMLWidgets) { 1664 var maps = window.HTMLWidgets.findAll(".leaflet"); 1665 $.each(maps, function(i, el) { 1666 var map = this.getMap(); 1667 map.invalidateSize(); 1668 map.eachLayer(function(layer) { 1669 if (layer instanceof L.TileLayer) 1670 layer.redraw(); 1671 }); 1672 }); 1673 } 1674 1675 // trigger 'shown' so htmlwidgets resize 1676 $('d-article').trigger('shown'); 1677 } 1678 1679 function init_distill() { 1680 1681 init_common(); 1682 1683 // create front matter 1684 var front_matter = $('<d-front-matter></d-front-matter>'); 1685 $('#distill-front-matter').wrap(front_matter); 1686 1687 // create d-title 1688 $('.d-title').changeElementType('d-title'); 1689 1690 // create d-byline 1691 var byline = $('<d-byline></d-byline>'); 1692 $('.d-byline').replaceWith(byline); 1693 1694 // create d-article 1695 var article = $('<d-article></d-article>'); 1696 $('.d-article').wrap(article).children().unwrap(); 1697 1698 // move posts container into article 1699 $('.posts-container').appendTo($('d-article')); 1700 1701 // create d-appendix 1702 $('.d-appendix').changeElementType('d-appendix'); 1703 1704 // flag indicating that we have appendix items 1705 var appendix = $('.appendix-bottom').children('h3').length > 0; 1706 1707 // replace footnotes with <d-footnote> 1708 $('.footnote-ref').each(function(i, val) { 1709 appendix = true; 1710 var href = $(this).attr('href'); 1711 var id = href.replace('#', ''); 1712 var fn = $('#' + id); 1713 var fn_p = $('#' + id + '>p'); 1714 fn_p.find('.footnote-back').remove(); 1715 var text = fn_p.html(); 1716 var dtfn = $('<d-footnote></d-footnote>'); 1717 dtfn.html(text); 1718 $(this).replaceWith(dtfn); 1719 }); 1720 // remove footnotes 1721 $('.footnotes').remove(); 1722 1723 // move refs into #references-listing 1724 $('#references-listing').replaceWith($('#refs')); 1725 1726 $('h1.appendix, h2.appendix').each(function(i, val) { 1727 $(this).changeElementType('h3'); 1728 }); 1729 $('h3.appendix').each(function(i, val) { 1730 var id = $(this).attr('id'); 1731 $('.d-contents a[href="#' + id + '"]').parent().remove(); 1732 appendix = true; 1733 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix')); 1734 }); 1735 1736 // show d-appendix if we have appendix content 1737 $("d-appendix").css('display', appendix ? 'grid' : 'none'); 1738 1739 // localize layout chunks to just output 1740 $('.layout-chunk').each(function(i, val) { 1741 1742 // capture layout 1743 var layout = $(this).attr('data-layout'); 1744 1745 // apply layout to markdown level block elements 1746 var elements = $(this).children().not('details, div.sourceCode, pre, script'); 1747 elements.each(function(i, el) { 1748 var layout_div = $('<div class="' + layout + '"></div>'); 1749 if (layout_div.hasClass('shaded')) { 1750 var shaded_content = $('<div class="shaded-content"></div>'); 1751 $(this).wrap(shaded_content); 1752 $(this).parent().wrap(layout_div); 1753 } else { 1754 $(this).wrap(layout_div); 1755 } 1756 }); 1757 1758 1759 // unwrap the layout-chunk div 1760 $(this).children().unwrap(); 1761 }); 1762 1763 // remove code block used to force highlighting css 1764 $('.distill-force-highlighting-css').parent().remove(); 1765 1766 // remove empty line numbers inserted by pandoc when using a 1767 // custom syntax highlighting theme 1768 $('code.sourceCode a:empty').remove(); 1769 1770 // load distill framework 1771 load_distill_framework(); 1772 1773 // wait for window.distillRunlevel == 4 to do post processing 1774 function distill_post_process() { 1775 1776 if (!window.distillRunlevel || window.distillRunlevel < 4) 1777 return; 1778 1779 // hide author/affiliations entirely if we have no authors 1780 var front_matter = JSON.parse($("#distill-front-matter").html()); 1781 var have_authors = front_matter.authors && front_matter.authors.length > 0;
1782 if (!have_authors) 1783 $('d-byline').addClass('hidden'); 1784 1785 // article with toc class 1786 $('.d-contents').parent().addClass('d-article-with-toc'); 1787 1788 // strip links that point to # 1789 $('.authors-affiliations').find('a[href="#"]').removeAttr('href'); 1790 1791 // add orcid ids 1792 $('.authors-affiliations').find('.author').each(function(i, el) { 1793 var orcid_id = front_matter.authors[i].orcidID; 1794 if (orcid_id) { 1795 var a = $('<a></a>'); 1796 a.attr('href', 'https://orcid.org/' + orcid_id); 1797 var img = $('<img></img>'); 1798 img.addClass('orcid-id'); 1799 img.attr('alt', 'ORCID ID'); 1800 img.attr('src','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=='); 1801 a.append(img); 1802 $(this).append(a); 1803 } 1804 }); 1805 1806 // hide elements of author/affiliations grid that have no value 1807 function hide_byline_column(caption) { 1808 $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden'); 1809 } 1810 1811 // affiliations 1812 var have_affiliations = false; 1813 for (var i = 0; i<front_matter.authors.length; ++i) { 1814 var author = front_matter.authors[i]; 1815 if (author.affiliation !== " ") { 1816 have_affiliations = true; 1817 break; 1818 } 1819 } 1820 if (!have_affiliations) 1821 $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden'); 1822 1823 // published date 1824 if (!front_matter.publishedDate) 1825 hide_byline_column("Published"); 1826 1827 // document object identifier 1828 var doi = $('d-byline').find('h3:contains("DOI")'); 1829 var doi_p = doi.next().empty(); 1830 if (!front_matter.doi) { 1831 // if we have a citation and valid citationText then link to that 1832 if ($('#citation').length > 0 && front_matter.citationText) { 1833 doi.html('Citation'); 1834 $('<a href="#citation"></a>') 1835 .text(front_matter.citationText) 1836 .appendTo(doi_p); 1837 } else { 1838 hide_byline_column("DOI"); 1839 } 1840 } else { 1841 $('<a></a>') 1842 .attr('href', "https://doi.org/" + front_matter.doi) 1843 .html(front_matter.doi) 1844 .appendTo(doi_p); 1845 } 1846 1847 // change plural form of authors/affiliations 1848 if (front_matter.authors.length === 1) { 1849 var grid = $('.authors-affiliations'); 1850 grid.children('h3:contains("Authors")').text('Author'); 1851 grid.children('h3:contains("Affiliations")').text('Affiliation'); 1852 } 1853 1854 // remove d-appendix and d-footnote-list local styles 1855 $('d-appendix > style:first-child').remove(); 1856 $('d-footnote-list > style:first-child').remove(); 1857 1858 // move appendix-bottom entries to the bottom 1859 $('.appendix-bottom').appendTo('d-appendix').children().unwrap(); 1860 $('.appendix-bottom').remove(); 1861 1862 // hoverable references 1863 $('span.citation[data-cites]').each(function() { 1864 if ($(this).children()[0].nodeName == "D-FOOTNOTE") { 1865 var fn = $(this).children()[0] 1866 $(this).html(fn.shadowRoot.querySelector("sup")) 1867 $(this).id = fn.id 1868 fn.remove() 1869 } 1870 var refs = $(this).attr('data-cites').split(" "); 1871 var refHtml = refs.map(function(ref) { 1872 return "<p>" + $('#ref-' + ref).html() + "</p>"; 1873 }).join("\n"); 1874 window.tippy(this, { 1875 allowHTML: true, 1876 content: refHtml, 1877 maxWidth: 500, 1878 interactive: true, 1879 interactiveBorder: 10, 1880 theme: 'light-border', 1881 placement: 'bottom-start' 1882 }); 1883 }); 1884 1885 // fix footnotes in tables (#411) 1886 // replacing broken distill.pub feature 1887 $('table d-footnote').each(function() { 1888 // we replace internal showAtNode methode which is triggered when hovering a footnote
1889 this.hoverBox.showAtNode = function(node) { 1890 // ported from https://github.com/distillpub/template/pull/105/files 1891 calcOffset = function(elem) { 1892 let x = elem.offsetLeft; 1893 let y = elem.offsetTop; 1894 // Traverse upwards until an `absolute` element is found or `elem` 1895 // becomes null. 1896 while (elem = elem.offsetParent && elem.style.position != 'absolute') { 1897 x += elem.offsetLeft; 1898 y += elem.offsetTop; 1899 } 1900 1901 return { left: x, top: y }; 1902 } 1903 // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop 1904 const bbox = node.getBoundingClientRect(); 1905 const offset = calcOffset(node); 1906 this.show([offset.left + bbox.width, offset.top + bbox.height]); 1907 } 1908 }) 1909 1910 // clear polling timer 1911 clearInterval(tid); 1912 1913 // show body now that everything is ready 1914 on_load_complete(); 1915 } 1916 1917 var tid = setInterval(distill_post_process, 50); 1918 distill_post_process(); 1919 1920 } 1921 1922 function init_downlevel() { 1923 1924 init_common(); 1925 1926 // insert hr after d-title 1927 $('.d-title').after($('<hr class="section-separator"/>')); 1928 1929 // check if we have authors 1930 var front_matter = JSON.parse($("#distill-front-matter").html()); 1931 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1932
1933 // manage byline/border 1934 if (!have_authors) 1935 $('.d-byline').remove(); 1936 $('.d-byline').after($('<hr class="section-separator"/>')); 1937 $('.d-byline a').remove(); 1938 1939 // remove toc 1940 $('.d-contents').remove(); 1941 1942 // move appendix elements 1943 $('h1.appendix, h2.appendix').each(function(i, val) { 1944 $(this).changeElementType('h3'); 1945 }); 1946 $('h3.appendix').each(function(i, val) { 1947 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix')); 1948 }); 1949 1950 1951 // inject headers into references and footnotes 1952 var refs_header = $('<h3></h3>'); 1953 refs_header.text('References'); 1954 $('#refs').prepend(refs_header); 1955 1956 var footnotes_header = $('<h3></h3'); 1957 footnotes_header.text('Footnotes'); 1958 $('.footnotes').children('hr').first().replaceWith(footnotes_header); 1959 1960 // move appendix-bottom entries to the bottom 1961 $('.appendix-bottom').appendTo('.d-appendix').children().unwrap(); 1962 $('.appendix-bottom').remove(); 1963 1964 // remove appendix if it's empty 1965 if ($('.d-appendix').children().length === 0) 1966 $('.d-appendix').remove(); 1967 1968 // prepend separator above appendix 1969 $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>')); 1970 1971 // trim code 1972 $('pre>code').each(function(i, val) { 1973 $(this).html($.trim($(this).html())); 1974 }); 1975 1976 // move posts-container right before article 1977 $('.posts-container').insertBefore($('.d-article')); 1978 1979 $('body').addClass('downlevel'); 1980 1981 on_load_complete(); 1982 } 1983 1984 1985 function init_common() { 1986 1987 // jquery plugin to change element types 1988 (function($) { 1989 $.fn.changeElementType = function(newType) { 1990 var attrs = {}; 1991 1992 $.each(this[0].attributes, function(idx, attr) { 1993 attrs[attr.nodeName] = attr.nodeValue; 1994 }); 1995 1996 this.replaceWith(function() { 1997 return $("<" + newType + "/>", attrs).append($(this).contents()); 1998 }); 1999 }; 2000 })(jQuery); 2001 2002 // prevent underline for linked images 2003 $('a > img').parent().css({'border-bottom' : 'none'}); 2004 2005 // mark non-body figures created by knitr chunks as 100% width 2006 $('.layout-chunk').each(function(i, val) { 2007 var figures = $(this).find('img, .html-widget'); 2008 // ignore leaflet img layers (#106) 2009 figures = figures.filter(':not(img[class*="leaflet"])') 2010 if ($(this).attr('data-layout') !== "l-body") { 2011 figures.css('width', '100%'); 2012 } else { 2013 figures.css('max-width', '100%'); 2014 figures.filter("[width]").each(function(i, val) { 2015 var fig = $(this); 2016 fig.css('width', fig.attr('width') + 'px'); 2017 }); 2018 2019 } 2020 }); 2021 2022 // auto-append index.html to post-preview links in file: protocol 2023 // and in rstudio ide preview 2024 $('.post-preview').each(function(i, val) { 2025 if (window.location.protocol === "file:") 2026 $(this).attr('href', $(this).attr('href') + "index.html"); 2027 }); 2028 2029 // get rid of index.html references in header 2030 if (window.location.protocol !== "file:") { 2031 $('.distill-site-header a[href]').each(function(i,val) { 2032 $(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./")); 2033 }); 2034 } 2035 2036 // add class to pandoc style tables 2037 $('tr.header').parent('thead').parent('table').addClass('pandoc-table'); 2038 $('.kable-table').children('table').addClass('pandoc-table'); 2039 2040 // add figcaption style to table captions 2041 $('caption').parent('table').addClass("figcaption"); 2042 2043 // initialize posts list 2044 if (window.init_posts_list) 2045 window.init_posts_list(); 2046 2047 // implmement disqus comment link 2048 $('.disqus-comment-count').click(function() { 2049 window.headroom_prevent_pin = true; 2050 $('#disqus_thread').toggleClass('hidden'); 2051 if (!$('#disqus_thread').hasClass('hidden')) { 2052 var offset = $(this).offset(); 2053 $(window).resize(); 2054 $('html, body').animate({ 2055 scrollTop: offset.top - 35 2056 }); 2057 } 2058 }); 2059 } 2060 2061 document.addEventListener('DOMContentLoaded', function() { 2062 if (is_downlevel_browser()) 2063 init_downlevel(); 2064 else 2065 window.addEventListener('WebComponentsReady', init_distill); 2066 }); 2067 2068 </script>
2068 2069 2070 <!--/radix_placeholder_distill--> 2071
2071<script src="site_libs/header-attrs-2.14/header-attrs.js"></script>
2071 2072
2072<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2072 2073 <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" /> 2074 <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" /> 2075
2075<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2075 2076
2076<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2076 2077
2077<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2077 2078
2078<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2078 2079
2079<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2079 2080 <!--radix_placeholder_site_in_header-->
vendor: 116 bytes, lines 2080-2081
2080 2081 <script type="text/javascript" cookie-consent="tracking" async src="https://www.googletagmanager.com/gtag/js?id=
2081G-1RQZJC7E05
vendor: 15 bytes, lines 2081-2082
2081"></script> 2082
2082<script type="text/javascript" cookie-consent="tracking"> 2083
vendor: 136 bytes, lines 2083-2086
2083window.dataLayer = window.dataLayer || []; 2084 function gtag(){dataLayer.push(arguments);} 2085 gtag('js', new Date()); 2086 gtag('config', '
2086G-1RQZJC7E05
vendor: 7 bytes, lines 2086-2087
2086'); 2087
2087</script>
2087 2088 <!--/radix_placeholder_site_in_header--> 2089 2090 2091</head> 2092 2093<body> 2094 2095<!--radix_placeholder_front_matter--> 2096
2097<script id="distill-front-matter" type="text/json"> 2098{"title":"Course Syllabus","authors":[]} 2099</script>
2099 2100 2101<!--/radix_placeholder_front_matter--> 2102<!--radix_placeholder_navigation_before_body--> 2103<header class="header header--fixed" role="banner"> 2104<nav class="distill-site-nav distill-site-header"> 2105<div class="nav-left"> 2106<a class='title' href='/'>Applied Machine Learning for Educational Data Science</a> 2107</div> 2108<div class="nav-right"> 2109<a href='/'>Home</a> 2110<a href='/syllabus'>Syllabus</a> 2111<a href='/schedule'>Schedule</a> 2112<div class="nav-dropdown"> 2113<button class="nav-dropbtn"> 2114Lecture Notes 2115 2116<span class="down-arrow">▾</span> 2117</button> 2118<div class="nav-dropdown-content"> 2119<a href='/lecture-1'>Lecture-1</a> 2120<a href='/lecture-2a'>Lecture-2a</a> 2121<a href='/lecture-2b'>Lecture-2b</a> 2122<a href='/lecture-3a'>Lecture-3a</a> 2123<a href='/lecture-3b'>Lecture-3b</a> 2124<a href='/lecture-4'>Lecture-4</a> 2125<a href='/lecture-5'>Lecture-5</a> 2126<a href='/lecture-6a'>Lecture-6a</a> 2127<a href='/lecture-6b'>Lecture-6b</a> 2128<a href='/lecture-7a'>Lecture-7a</a> 2129<a href='/lecture-7b'>Lecture-7b</a> 2130</div> 2131</div> 2132<div class="nav-dropdown"> 2133<button class="nav-dropbtn"> 2134Kaggle Notebooks 2135 2136<span class="down-arrow">▾</span> 2137</button> 2138<div class="nav-dropdown-content"> 2139<a href="https://www.kaggle.com/code/uocoeeds/week-1-introduction/notebook">Notebook-1</a> 2140<a href="https://www.kaggle.com/code/uocoeeds/lecture-2a-data-preprocessing-i">Notebook-2a</a> 2141<a href="https://www.kaggle.com/code/uocoeeds/lecture-2b-data-preprocessing-ii">Notebook-2b</a> 2142<a href="https://www.kaggle.com/code/uocoeeds/the-recipes-package-demo">The {recipes} demo</a> 2143<a href="https://www.kaggle.com/code/uocoeeds/lecture-3a-overview-of-linear-regression">Notebook-3a</a> 2144<a href="https://www.kaggle.com/code/uocoeeds/lecture-3b-review-of-bias-variance-tradeoff">Notebook-3b</a> 2145<a href="https://www.kaggle.com/code/uocoeeds/building-a-prediction-model-with-cross-validation">Building Linear Models with `caret`</a> 2146<a href="https://www.kaggle.com/code/uocoeeds/lecture-4-regularized-penalized-regression">Notebook-4</a> 2147<a href="https://www.kaggle.com/code/uocoeeds/building-a-ridge-regression-model">Building a Ridge Regression Model</a> 2148<a href="https://www.kaggle.com/code/uocoeeds/building-a-lasso-regression-model">Building a Lasso Regression Model</a> 2149<a href="https://www.kaggle.com/code/uocoeeds/building-a-regression-model-with-elastic-net">
2149Building an Elastic Net Model</a> 2150<a href="https://www.kaggle.com/code/uocoeeds/using-the-prediction-models-for-a-new-text">Using the Existing Models to Predict Outcome for New Observations</a> 2151<a href="https://www.kaggle.com/code/uocoeeds/building-a-logistic-regression-model/notebook">Building a Logistic Regression Model</a> 2152<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-ridge-penalty/">Building a Classification Model with Ridge Penalty</a> 2153<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-lasso-penalty">Building a Classification Model with Lasso Penalty</a> 2154<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-elastic-net">Building a Classification Model with Elastic Net</a> 2155<a href="https://www.kaggle.com/code/uocoeeds/building-a-prediction-model-using-knn">Building a Prediction Model with K-nearest neighbors</a> 2156<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-using-knn">Building a Classification Model with K-nearest neighbors</a> 2157<a href="https://www.kaggle.com/uocoeeds/building-a-prediction-model-using-a-decision-tree">Building a Prediction Model with a Decision Tree</a> 2158<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-tree-algorithm">Building a Classification Model with a Decision Tree</a> 2159</div> 2160</div> 2161<div class="nav-dropdown"> 2162<button class="nav-dropbtn"> 2163Slides 2164 2165<span class="down-arrow">▾</span> 2166</button> 2167<div class="nav-dropdown-content"> 2168<a href='/slides/slide1'>Week 1</a> 2169<a href='/slides/slide2'>Week 2</a> 2170<a href='/slides/slide3'>Week 3 & 4</a> 2171<a href='/slides/slide4'>Week 5</a> 2172<a href='/slides/slide5'>Week 6 & 7</a> 2173<a href='/slides/slide6a'>Week 8_Part 1</a> 2174<a href='/slides/slide6b'>Week 8_Part 2</a> 2175</div> 2176</div> 2177<div class="nav-dropdown"> 2178<button class="nav-dropbtn"> 2179Assignments 2180 2181<span class="down-arrow">▾</span> 2182</button> 2183<div class="nav-dropdown-content"> 2184<a href="https://www.kaggle.com/code/uocoeeds/assignment-1">Assignment1</a> 2185<a href="https://www.kaggle.com/code/uocoeeds/assignment-2">Assignment2</a> 2186<a href="https://www.kaggle.com/code/uocoeeds/assignment-3">Assignment3</a> 2187</div> 2188</div> 2189<a href="https://github.com/uo-datasci-specialization/c4-ml-fall-2022"> 2190<i class="fa fa-github" aria-hidden="true"></i> 2191</a> 2192<a href="javascript:void(0);" class="nav-toggle">☰</a> 2193</div> 2194</nav> 2195</header> 2196<!--/radix_placeholder_navigation_before_body--> 2197<!--radix_placeholder_site_before_body--> 2198<!--/radix_placeholder_site_before_body--> 2199 2200<div class="d-title"> 2201<h1>Course Syllabus</h1> 2202<!--radix_placeholder_categories--> 2203<!--/radix_placeholder_categories--> 2204 2205</div> 2206 2207 2208<div class="d-article"> 2209<ul> 2210<li><p>Course Title : Machine Learning for Educational Data 2211Science</p></li> 2212<li><p>Course Number : EDLD 654</p></li> 2213<li><p>Term : Fall 2022</p></li> 2214<li><p>Date/Time : Monday, 13:00 pm â 15:50 pm</p></li> 2215<li><p>Place : Lokey 176 <a 2216href="https://map.uoregon.edu/ae909e0cf">(Click for map)</a></p></li> 2217<li><p>Instructor : Dr. Cengiz Zopluoglu <a 2218href="https://namedrop.io/cengizzopluoglu">(Click for 2219pronunciation)</a></p></li> 2220<li><p>E-mail : <a href="mailto:[email protected]" 2221class="email">[email protected]</a></p></li> 2222</ul> 2223<p><a 2224href="https://github.com/uo-datasci-specialization/c4-ml-fall-2022/raw/main/Syllabus_EDUC654.pdf">Download 2225the complete course syllabus</a></p> 2226<div class="sourceCode" id="cb1"><pre 2227class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div> 2228<!--radix_placeholder_article_footer--> 2229<!--/radix_placeholder_article_footer--> 2230</div> 2231 2232<div class="d-appendix"> 2233</div> 2234 2235 2236<!--radix_placeholder_site_after_body--> 2237<!--/radix_placeholder_site_after_body--> 2238<!--radix_placeholder_appendices--> 2239<div class="appendix-bottom"> 2240<h3 id="reuse">Reuse</h3> 2241<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p> 2242</div> 2243<!--/radix_placeholder_appendices--> 2244<!--radix_placeholder_navigation_after_body--> 2245<div class="distill-site-nav distill-site-footer"> 2246<center> 2247<p> Cengiz Zopluoglu, [email protected] </p> 2248<p>
2248 Made using <a href="https://rstudio.github.io/distill/website.html"> the Distill for R Markdown</a> in 2249<a href = "https://www.rstudio.com"> RStudio.</a></p> 2250<p>Copyright © 2022 Cengiz Zopluoglu. All rights reserved.</p> 2251</center> 2252</div> 2253<!--/radix_placeholder_navigation_after_body--> 2254 2255 2256</body> 2257 2258</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.