55 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
66 < title > Course Outline - Models of Language and Communication</ title >
77 < meta name ="description " content ="Course syllabus and lecture schedule for PSYC 51.17: Language Models from Scratch ">
8+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css ">
89 < link rel ="stylesheet " href ="../demos/shared/css/demo-styles.css ">
910
1011 < style >
558559 < nav class ="course-nav " id ="navbar ">
559560 < div class ="logo "> Course Outline</ div >
560561 < div class ="nav-links ">
561- < a href ="../demos/ "> Demos</ a >
562562 < a href ="./ " class ="active "> Outline</ a >
563+ < a href ="../demos/ "> Demos</ a >
563564 < a href ="https://github.com/ContextLab/llm-course " target ="_blank "> GitHub</ a >
564565 < a href ="https://pbs.dartmouth.edu/undergraduate/courses-and-syllabi/topics-courses " target ="_blank "> Course Info</ a >
565566 < button class ="theme-toggle " id ="themeToggle " aria-label ="Toggle theme ">
@@ -573,15 +574,15 @@ <h1>Models of Language and Communication</h1>
573574 < p > PSYC 51.17 - Explore the building blocks of modern language models, from classical NLP techniques to cutting-edge transformers and large language models.</ p >
574575 < div class ="course-meta ">
575576 < div class ="meta-item ">
576- < span class ="icon "> 📅 </ span >
577+ < span class ="icon "> < i class =" fa-regular fa-calendar " > </ i > </ span >
577578 < span > MWF 10:10-11:15</ span >
578579 </ div >
579580 < div class ="meta-item ">
580- < span class ="icon "> 📚 </ span >
581+ < span class ="icon "> < i class =" fa-solid fa-book " > </ i > </ span >
581582 < span > X-Hour: Thu 12:15-1:05</ span >
582583 </ div >
583584 < div class ="meta-item ">
584- < span class ="icon "> 🎓 </ span >
585+ < span class ="icon "> < i class =" fa-solid fa-graduation-cap " > </ i > </ span >
585586 < span > Winter 2026</ span >
586587 </ div >
587588 </ div >
@@ -950,26 +951,26 @@ <h1>Models of Language and Communication</h1>
950951 if ( lecture . slides ) {
951952 html += '<div class="resource-group"><div class="resource-label">Slides</div><div class="resource-links">' ;
952953 if ( lecture . slides . html ) {
953- html += '<a href="' + escapeHtml ( lecture . slides . html ) + '" class="resource-link primary"><span class="icon">\u{1F310} </span> HTML</a>' ;
954+ html += '<a href="' + escapeHtml ( lecture . slides . html ) + '" class="resource-link primary"><span class="icon"><i class="fa-solid fa-globe"></i> </span> HTML</a>' ;
954955 }
955956 if ( lecture . slides . pdf ) {
956- html += '<a href="' + escapeHtml ( lecture . slides . pdf ) + '" class="resource-link"><span class="icon">\u{1F4C4} </span> PDF</a>' ;
957+ html += '<a href="' + escapeHtml ( lecture . slides . pdf ) + '" class="resource-link"><span class="icon"><i class="fa-solid fa-file-pdf"></i> </span> PDF</a>' ;
957958 }
958959 html += '</div></div>' ;
959960 }
960961
961962 // Notebook
962963 if ( lecture . notebook ) {
963964 html += '<div class="resource-group"><div class="resource-label">Materials</div><div class="resource-links">' ;
964- html += '<a href="' + escapeHtml ( lecture . notebook ) + '" class="resource-link"><span class="icon">\u{1F4D3} </span> X-hour Notebook</a>' ;
965+ html += '<a href="' + escapeHtml ( lecture . notebook ) + '" class="resource-link"><span class="icon"><i class="fa-solid fa-book-open"></i> </span> X-hour Notebook</a>' ;
965966 html += '</div></div>' ;
966967 }
967968
968969 // Demos
969970 if ( lecture . demos && lecture . demos . length > 0 ) {
970971 html += '<div class="resource-group"><div class="resource-label">Try It</div><div class="resource-links">' ;
971972 lecture . demos . forEach ( demo => {
972- html += '<a href="' + escapeHtml ( demo . url ) + '" class="resource-link' + ( demo . primary ? ' primary' : '' ) + '"><span class="icon">\u{1F3AE} </span> ' + escapeHtml ( demo . name ) + '</a>' ;
973+ html += '<a href="' + escapeHtml ( demo . url ) + '" class="resource-link' + ( demo . primary ? ' primary' : '' ) + '"><span class="icon"><i class="fa-solid fa-gamepad"></i> </span> ' + escapeHtml ( demo . name ) + '</a>' ;
973974 } ) ;
974975 html += '</div></div>' ;
975976 }
@@ -978,8 +979,7 @@ <h1>Models of Language and Communication</h1>
978979 if ( lecture . readings && lecture . readings . length > 0 ) {
979980 html += '<div class="resource-group readings"><div class="resource-label">Readings</div>' ;
980981 lecture . readings . forEach ( reading => {
981- const icon = reading . icon || '\u{1F4D6}' ;
982- html += '<div class="reading-item"><span class="icon">' + icon + '</span><span>' ;
982+ html += '<div class="reading-item"><span class="icon"><i class="fa-solid fa-book"></i></span><span>' ;
983983 html += '<a href="' + escapeHtml ( reading . url ) + '" target="_blank">' + escapeHtml ( reading . text ) + '</a>' ;
984984 if ( reading . desc ) html += ' - ' + escapeHtml ( reading . desc ) ;
985985 html += '</span></div>' ;
@@ -993,15 +993,15 @@ <h1>Models of Language and Communication</h1>
993993 // Assignment released
994994 if ( lecture . assignment ) {
995995 const parts = lecture . assignment . text . split ( ':' ) ;
996- html += '<div class="assignment-badge"><span class="icon">\u{1F4DD} </span><span><strong>' + escapeHtml ( parts [ 0 ] ) + ':</strong> ' ;
996+ html += '<div class="assignment-badge"><span class="icon"><i class="fa-solid fa-clipboard-list"></i> </span><span><strong>' + escapeHtml ( parts [ 0 ] ) + ':</strong> ' ;
997997 html += '<a href="' + escapeHtml ( lecture . assignment . url ) + '" target="_blank">' + escapeHtml ( parts . slice ( 1 ) . join ( ':' ) . trim ( ) ) + '</a>' ;
998998 if ( lecture . assignment . due ) html += ' (Due: ' + escapeHtml ( lecture . assignment . due ) + ')' ;
999999 html += '</span></div>' ;
10001000 }
10011001
10021002 // Assignment due
10031003 if ( lecture . assignmentDue ) {
1004- html += '<div class="assignment-badge due"><span class="icon">\u{1F4C5} </span><span><strong>' + escapeHtml ( lecture . assignmentDue ) + '</strong></span></div>' ;
1004+ html += '<div class="assignment-badge due"><span class="icon"><i class="fa-regular fa-calendar-check"></i> </span><span><strong>' + escapeHtml ( lecture . assignmentDue ) + '</strong></span></div>' ;
10051005 }
10061006
10071007 html += '</div>' ;
@@ -1016,15 +1016,15 @@ <h1>Models of Language and Communication</h1>
10161016 html += '<h2 class="week-title">' + escapeHtml ( week . title ) + '</h2>' ;
10171017 html += '<p class="week-subtitle">' + escapeHtml ( week . subtitle || '' ) + '</p>' ;
10181018 html += '</div>' ;
1019- html += '<span class="expand-icon">\u25BC </span>' ;
1019+ html += '<span class="expand-icon"><i class="fa-solid fa-chevron-down"></i> </span>' ;
10201020 html += '</div>' ;
10211021
10221022 html += '<div class="week-content' + ( week . expanded ? ' expanded' : '' ) + '">' ;
10231023
10241024 // No class notice
10251025 if ( week . noClassNotice ) {
10261026 html += '<div class="no-class-notice">' ;
1027- html += '<h4>\u{1F4C5} ' + escapeHtml ( week . noClassNotice ) + '</h4>' ;
1027+ html += '<h4><i class="fa-regular fa-calendar-xmark"></i> ' + escapeHtml ( week . noClassNotice ) + '</h4>' ;
10281028 if ( week . noClassDetails ) {
10291029 html += '<p>' + escapeHtml ( week . noClassDetails . trim ( ) ) + '</p>' ;
10301030 }
0 commit comments