1// Teaching data 2 3const TEACHING_DATA = { 4 courses: [ 5 { 6 name: 'Labour Economics', 7 university: 'Queen Mary University of London', 8 year: 2025, 9 level: 'Undergraduate', 10 }, 11 { 12 name: 'CostâBenefit Analysis', 13 university: 'Queen Mary University of London', 14 year: 2025, 15 level: 'Master', 16 }, 17 { 18 name: 'Labour Economics', 19 university: 'Queen Mary University of London', 20 year: 2024, 21 level: 'Undergraduate', 22 }, 23 { 24 name: 'Excel for Economics', 25 university: 'Queen Mary University of London', 26 year: 2025, 27 level: 'Undergraduate', 28 }, 29 { 30 name: 'Excel for Economics', 31 university: 'Queen Mary University of London', 32 year: 2024, 33 level: 'Undergraduate', 34 }, 35 { 36 name: 'Macroeconomics I', 37 university: 'London School of Economics', 38 year: 2024, 39 level: 'Undergraduate', 40 }, 41 { 42 name: 'Macroeconomics', 43 university: 'London School of Economics', 44 year: 2024, 45 level: 'Summer School', 46 }, 47 { 48 name: 'Labour Economics', 49 university: 'Queen Mary University of London', 50 year: 2023, 51 level: 'Undergraduate', 52 }, 53 { 54 name: 'Macroeconomics I', 55 university: 'London School of Economics', 56 year: 2023, 57 level: 'Undergraduate', 58 }, 59 { 60 name: 'Statistics', 61 university: 'Queen Mary University of London', 62 year: 2022, 63 level: 'Undergraduate', 64 }, 65 { 66 name: 'Principles of Economics', 67 university: 'Queen Mary University of London', 68 year: 2022, 69 level: 'Undergraduate', 70 }, 71 { 72 name: 'Managerial Economics', 73 university: 'Imperial College Business School', 74 year: 2022, 75 level: 'Master', 76 }, 77 { 78 name: 'Macroeconomics I', 79 university: 'Queen Mary University of London', 80 year: 2021, 81 level: 'Undergraduate', 82 }, 83 { 84 name: 'Principles of Economics', 85 university: 'Queen Mary University of London', 86 year: 2021, 87 level: 'Undergraduate', 88 }, 89 { 90 name: 'Principles of Economics', 91 university: 'Queen Mary University of London', 92 year: 2020, 93 level: 'Undergraduate', 94 }, 95 { 96 name: 'Econometrics III', 97 university: 'University of Bologna', 98 year: 2019, 99 level: 'Master', 100 }, 101 { 102 name: 'Public Economics', 103 university: 'University of Bologna', 104 year: 2019, 105 level: 'Undergraduate', 106 }, 107 { 108 name: 'Public Economics', 109 university: 'University of Pavia', 110 year: 2016, 111 level: 'Undergraduate', 112 }, 113 { 114 name: 'Public Economics', 115 university: 'University of Pavia', 116 year: 2015, 117 level: 'Undergraduate', 118 } 119 ], 120 // intro: `qui inserire testo che appare in banner in cima alla pagina` 121 outro: ` 122 I am a <a target="_blank" href="assets/documents/teaching_training_certificate.pdf">trained</a> Graduate Teaching Assistant (Economics Network). I was awarded the 2025 Excellence in Undergraduate Class Teaching <a href="https://www.qmul.ac.uk/sef/media/econ/news/browse-our-newsletter/30th-SEF-Newsletter---September-2025.pdf" target="_blank">Prize</a> at <a href="https://www.qmul.ac.uk/" target="_blank" class="secondary-link"><strong>QMUL</strong></a> and I received 123 teaching bonuses from <a href="https://www.lse.ac.uk/" target="_blank" class="secondary-link"><strong>LSE</strong></a> for the outstanding results in students <a target="_blank" href="assets/documents/teaching_evaluations.pdf">teaching evaluations</a>. 124 `, 125}; 126 127 128const TEACHING_UTILS = { 129 getCourseID(course) { 130 return [course.name, course.university, course.level].join('-'); 131 }, 132 133 getCourses() { 134 const courses = TEACHING_DATA.courses.reduce( 135 (acc, instance) => { 136 key = this.getCourseID(instance); 137 if (!acc[key]) { 138 const { year, ...course } = instance; 139 course.years = [year]; 140 acc[key] = course; 141 } else { 142 acc[key].years.push(instance.year); 143 } 144 145 return acc; 146 }, 147 {}, 148 ); 149 150 return Object.values(courses); 151 }, 152 153 getStyleClassLevel(course) { 154 switch (course.level.toLowerCase()) { 155 case 'undergraduate': 156 return 'undergraduate'; 157 case 'master': 158 return 'master'; 159 case 'phd': 160 return 'phd'; 161 case 'summer school': 162 return 'summer-school'; 163 default: 164 return 'other'; 165 } 166 }, 167 168 getTeachingIntro() { 169 if (!TEACHING_DATA.intro) return null; 170 171 return ` 172 <div class="teaching-intro"> 173 ${TEACHING_DATA.intro} 174 </div>`; 175 }, 176 177 getTeachingOutro() { 178 if (!TEACHING_DATA.outro) return null; 179 180 return ` 181 <div class="teaching-outro"> 182 ${TEACHING_DATA.outro} 183 </div>`; 184 }, 185 186 generateCourseHTML(course) { 187 id = this.getCourseID(course); 188 return ` 189 <div class="course-card" id="course-${id}">
190 <div class="course-level ${this.getStyleClassLevel(course)}">${course.level}</div> 191 <h4 class="course-title">${course.name}</h4> 192 <div class="course-years">${course.years.sort((a, b) => a < b ? 1 : a == b ? 0 : -1).map(year => `<div class="year-tag">${year}</div>`).join('')}</div> 193 </div> 194 `; 195 } 196} 197 198window.TEACHING_DATA = TEACHING_DATA; 199window.TEACHING_UTILS = TEACHING_UTILS;
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.