PageSourceSearch

https://edld654-fall22.netlify.app/syllabus

html edld654-fall22.netlify.app collected 2026-10-03 10:40:55 UTC 62,547 bytes, 2,258 lines download raw bytes

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 !== "&nbsp;") {
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">&#x25BE;</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">&#x25BE;</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">&#x25BE;</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 &amp; 4</a>
2171<a href='/slides/slide4'>Week 5</a>
2172<a href='/slides/slide5'>Week 6 &amp; 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">&#x25BE;</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">&#9776;</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 &copy; 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.