-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathteaching.html
More file actions
247 lines (237 loc) · 15.4 KB
/
Copy pathteaching.html
File metadata and controls
247 lines (237 loc) · 15.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="icon" type="image/svg+xml" href="assets/img/favicon.svg" />
<title>Teaching — VIDAL Lab</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="assets/css/styles.css" />
<link rel="stylesheet" href="assets/css/subpages.css" />
<script defer src="assets/js/nav.js"></script>
</head>
<body data-page="teaching">
<header class="nav" id="nav">
<a class="brand" href="index.html"><span class="brand-mark"><svg viewBox="0 0 40 40" width="28" height="28" aria-hidden="true"><g fill="#011F5B" opacity="0.18"><rect x="9" y="1" width="7" height="7"/><rect x="17" y="1" width="7" height="7"/><rect x="25" y="1" width="7" height="7"/><rect x="33" y="1" width="7" height="7"/><rect x="1" y="9" width="7" height="7"/><rect x="17" y="9" width="7" height="7"/><rect x="25" y="9" width="7" height="7"/><rect x="33" y="9" width="7" height="7"/><rect x="1" y="17" width="7" height="7"/><rect x="9" y="17" width="7" height="7"/><rect x="25" y="17" width="7" height="7"/><rect x="33" y="17" width="7" height="7"/><rect x="1" y="25" width="7" height="7"/><rect x="9" y="25" width="7" height="7"/><rect x="17" y="25" width="7" height="7"/><rect x="33" y="25" width="7" height="7"/><rect x="1" y="33" width="7" height="7"/><rect x="9" y="33" width="7" height="7"/><rect x="17" y="33" width="7" height="7"/><rect x="25" y="33" width="7" height="7"/></g><g fill="#990000"><rect x="1" y="1" width="7" height="7"/><rect x="9" y="9" width="7" height="7"/><rect x="17" y="17" width="7" height="7"/><rect x="25" y="25" width="7" height="7"/><rect x="33" y="33" width="7" height="7"/></g></svg></span><span class="brand-word"><em>Vidal</em>Lab<sup>↗</sup></span></a>
<nav class="nav-links" aria-label="Primary">
<a href="index.html" data-key="home"><span>01</span> Home</a>
<a href="people.html" data-key="people"><span>02</span> People</a>
<a href="research.html" data-key="research"><span>03</span> Research</a>
<div class="nav-more">
<button class="nav-more-btn"><span>04</span> More <svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M6 9l6 6 6-6"/></svg></button>
<div class="nav-more-menu">
<a href="teaching.html" data-key="teaching" class="active"><span>a</span> Teaching</a>
<a href="talks.html" data-key="talks"><span>b</span> Talks</a>
<a href="tutorials.html" data-key="tutorials"><span>c</span> Tutorials</a>
<a href="data-code.html" data-key="data"><span>d</span> Data & Code</a>
</div>
</div>
</nav>
</header>
<section class="page-hero">
<div class="page-hero-meta">
<span><span class="tick"></span> § 04 — Teaching</span>
<span class="mono">24 courses · 2005 – present</span>
</div>
<h1 class="page-display">
Two decades<br/>
of teaching<br/>
<em>at the boundary</em>.
</h1>
<p class="page-lede">
Courses Prof. René Vidal has taught at the University of Pennsylvania and Johns Hopkins — spanning generative models, mathematics of deep learning, computer vision, control, and signal processing.
</p>
</section>
<section>
<header class="section-head">
<div class="section-num">§ 04·1</div>
<h2>Currently <em>teaching</em></h2>
<p class="section-note">Active courses at Penn.</p>
</header>
<div class="featured-callout">
<div class="fc-art">
<span class="fc-tag">Fall 2025 · Penn ESE</span>
<canvas id="dgm-canvas"></canvas>
<div class="fc-mega">Deep<br/>Generative<br/>Models</div>
</div>
<div class="fc-text">
<span class="fc-eyebrow">ESE 6450·001</span>
<h3 class="fc-title">Deep Generative <em>Models</em></h3>
<p class="fc-desc">A graduate course covering the modern landscape of generative modeling — VAEs, GANs, normalizing flows, score-based diffusion models, and their connections to information theory, optimal transport, and dynamical systems.</p>
<p class="fc-desc"><b>Prerequisites:</b> probability, linear algebra, and a prior course in machine learning.</p>
<div class="fc-actions">
<a class="btn btn-primary" href="https://vidal-lab.github.io/dgm/" target="_blank" rel="noopener">Course page <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M7 17L17 7M9 7h8v8"/></svg></a>
<a class="btn btn-ghost" href="#archive">See past offerings</a>
</div>
</div>
</div>
</section>
<section style="margin-top:80px;" id="archive">
<header class="section-head">
<div class="section-num">§ 04·2</div>
<h2>Course <em>archive</em></h2>
<p class="section-note">Every course taught by Prof. Vidal — newest first.</p>
</header>
<div class="timeline" id="course-timeline"></div>
</section>
<section style="margin-top:120px;">
<header class="section-head">
<div class="section-num">§ 04·3</div>
<h2>Recurring <em>themes</em></h2>
<p class="section-note">Three threads that run through the courses.</p>
</header>
<div class="card-grid">
<div class="lab-card">
<div class="lab-card-head">
<span class="lab-card-tag">Theme i.</span>
<span class="lab-card-arrow">↗</span>
</div>
<div class="lab-card-num">i.</div>
<h3>Mathematics of <em>Deep Learning</em></h3>
<p>From overparameterised loss landscapes to neural collapse — a coarse-grained tour of why deep networks generalize, and when they don't.</p>
<div class="lab-card-meta">JHU 2018 · 2019</div>
</div>
<div class="lab-card">
<div class="lab-card-head">
<span class="lab-card-tag">Theme ii.</span>
<span class="lab-card-arrow">↗</span>
</div>
<div class="lab-card-num">ii.</div>
<h3>Generative <em>Models</em></h3>
<p>The mathematical foundations behind modern generative AI — diffusion, flows, score matching, and their training dynamics.</p>
<div class="lab-card-meta">Penn 2023 · 2024 · 2025</div>
</div>
<div class="lab-card">
<div class="lab-card-head">
<span class="lab-card-tag">Theme iii.</span>
<span class="lab-card-arrow">↗</span>
</div>
<div class="lab-card-num">iii.</div>
<h3>Vision & <em>Control</em></h3>
<p>Foundational courses in computer vision, signals & systems, and linear systems theory — the building blocks for downstream research.</p>
<div class="lab-card-meta">JHU 2005 · 2007 · 2013 · 2014</div>
</div>
</div>
</section>
<section class="cta" style="margin-top:120px;">
<div class="cta-inner">
<h2 class="cta-title">Want to <em>take</em><br/>a course?</h2>
<p class="cta-note">Penn ESE/CIS graduate students can register for Deep Generative Models in the Fall.</p>
<div class="cta-actions">
<a class="btn btn-primary btn-lg" href="https://vidal-lab.github.io/dgm/" target="_blank" rel="noopener">Current syllabus <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
<a class="btn btn-ghost btn-lg" href="mailto:vidalr@seas.upenn.edu">Audit inquiry</a>
</div>
</div>
</section>
<footer class="foot">
<div class="foot-mega" aria-hidden="true">VIDAL</div>
<div class="foot-grid">
<div class="foot-col">
<div class="foot-h">Vidal Lab</div>
<p>Vision, Dynamics & Learning<br/>University of Pennsylvania<br/>Department of Electrical & Systems Engineering</p>
</div>
<div class="foot-col">
<div class="foot-h">Sitemap</div>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="people.html">People</a></li>
<li><a href="research.html">Research</a></li>
<li><a href="teaching.html">Teaching</a></li>
<li><a href="talks.html">Talks</a></li>
<li><a href="tutorials.html">Tutorials</a></li>
<li><a href="data-code.html">Data & Code</a></li>
</ul>
</div>
<div class="foot-col">
<div class="foot-h">Contact</div>
<p>Prof. René Vidal<br/><a href="mailto:vidalr@seas.upenn.edu">vidalr@seas.upenn.edu</a></p>
</div>
<div class="foot-col">
<div class="foot-h">Join the Lab</div>
<p>We seek students at the boundary of mathematical foundations and impactful AI. PhD applications go through Penn ESE; postdoc and visitor inquiries direct to Prof. Vidal.</p>
<p><a href="mailto:vidalr@seas.upenn.edu">Email Prof. Vidal →</a></p>
<p class="mono dim">© 2026 Vidal Lab</p>
</div>
</div>
</footer>
<script>
window.COURSES = [
{ sem:"Fall 2025", code:"ESE-6450-001", title:"Deep Generative Models", url:"https://vidal-lab.github.io/dgm/", inst:"Penn" },
{ sem:"Fall 2024", code:"ESE-6450-001", title:"Deep Generative Models", url:"https://vidal-lab.github.io/dgm/", inst:"Penn" },
{ sem:"Fall 2023", code:"ESE-9000-004", title:"Deep Generative Models", url:"", inst:"Penn" },
{ sem:"Fall 2019", code:"EN.580.745", title:"Mathematics of Deep Learning", url:"http://www.vision.jhu.edu/teaching/learning/deeplearning19/", inst:"JHU" },
{ sem:"Fall 2018", code:"EN.580.421/721", title:"Biomedical Data Science", url:"http://www.vision.jhu.edu/teaching/learning/datascience18/", inst:"JHU" },
{ sem:"Fall 2018", code:"EN.580.745", title:"Mathematics of Deep Learning", url:"http://www.vision.jhu.edu/teaching/learning/deeplearning18/", inst:"JHU" },
{ sem:"Fall 2017", code:"MVA ENS", title:"Unsupervised Learning", url:"http://www.vision.jhu.edu/teaching/learning/learning17/mva-cachan-learning17.htm", inst:"ENS Cachan" },
{ sem:"Spring 2017", code:"600.692", title:"Unsupervised Learning", url:"http://www.vision.jhu.edu/teaching/learning/learning17/", inst:"JHU" },
{ sem:"Spring 2016", code:"600.692", title:"Advanced Topics in Machine Learning", url:"http://www.vision.jhu.edu/teaching/learning/learning16/", inst:"JHU" },
{ sem:"Fall 2014", code:"600.461/661", title:"Computer Vision", url:"http://www.vision.jhu.edu/teaching/vision/vision14/", inst:"JHU" },
{ sem:"Spring 2014", code:"600.692", title:"Advanced Topics in Machine Learning", url:"http://www.vision.jhu.edu/teaching/learning/learning14/", inst:"JHU" },
{ sem:"Fall 2013", code:"600.361/461", title:"Computer Vision", url:"http://www.vision.jhu.edu/teaching/vision/vision13/", inst:"JHU" },
{ sem:"Spring 2011", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2008/controls08.htm", inst:"JHU" },
{ sem:"Spring 2010", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2008/controls08.htm", inst:"JHU" },
{ sem:"Spring 2010", code:"580.692/600.692", title:"Advanced Topics in Machine Learning", url:"http://www.vision.jhu.edu/teaching/learning/learning10", inst:"JHU" },
{ sem:"Spring 2009", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2008/controls08.htm", inst:"JHU" },
{ sem:"Spring 2009", code:"580.681/600.681", title:"Advanced Topics in Computer Vision", url:"http://www.vision.jhu.edu/teaching/vision09", inst:"JHU" },
{ sem:"Spring 2008", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2008/controls08.htm", inst:"JHU" },
{ sem:"Spring 2008", code:"580.481/600.361/461", title:"Computer Vision", url:"http://www.vision.jhu.edu/teaching/vision08/index.htm", inst:"JHU" },
{ sem:"Spring 2007", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2007/controls07.htm", inst:"JHU" },
{ sem:"Spring 2007", code:"530.616/580.616/520.601", title:"Introduction to Linear Systems Theory", url:"http://www.vision.jhu.edu/teaching/linearsystems.htm", inst:"JHU" },
{ sem:"Fall 2006", code:"580.692", title:"Learning Theory II", url:"http://www.vision.jhu.edu/teaching/learningtheory2.htm", inst:"JHU" },
{ sem:"Spring 2006", code:"580.222", title:"Signals, Systems and Control", url:"http://www.vision.jhu.edu/teaching/controls/2007/controls07.htm", inst:"JHU" },
{ sem:"Spring 2005", code:"BME 580.464", title:"Advanced Topics in Computer Vision", url:"http://www.vision.jhu.edu/teaching/vision05/index.htm", inst:"JHU" }
];
const tl = document.getElementById('course-timeline');
window.COURSES.forEach(c => {
const a = document.createElement(c.url ? 'a' : 'div');
a.className = 'tl-row';
if(c.url){ a.href = c.url; a.target = '_blank'; a.rel = 'noopener'; }
a.innerHTML = `
<span class="tl-when">${c.sem}</span>
<span class="tl-code">${c.code}<span class="tl-sub">${c.inst}</span></span>
<span class="tl-title">${c.title}</span>
<span class="tl-arrow">${c.url ? '↗' : ''}</span>
`;
tl.appendChild(a);
});
(function(){
const cv = document.getElementById('dgm-canvas');
if(!cv) return;
const ctx = cv.getContext('2d');
const dpr = Math.min(2, window.devicePixelRatio || 1);
function draw(){
const w = cv.clientWidth, h = cv.clientHeight;
cv.width = w*dpr; cv.height = h*dpr;
ctx.setTransform(dpr,0,0,dpr,0,0);
for(let i=0;i<14;i++){
ctx.beginPath();
const cx = w*0.7, cy = h*0.5;
const r = 30 + i*22;
for(let a=0; a<=Math.PI*2; a+=0.05){
const noise = Math.sin(a*3 + i*0.7)*4 + Math.cos(a*5 - i*0.3)*3;
const x = cx + Math.cos(a)*(r+noise);
const y = cy + Math.sin(a)*(r+noise)*0.85;
if(a===0) ctx.moveTo(x,y); else ctx.lineTo(x,y);
}
ctx.closePath();
ctx.strokeStyle = `rgba(255,255,255,${0.06 + (1 - i/14)*0.18})`;
ctx.lineWidth = 0.9;
ctx.stroke();
}
for(let i=0; i<80; i++){
const a = Math.random()*Math.PI*2;
const r = 30 + Math.random()*260;
ctx.beginPath();
ctx.arc(w*0.7 + Math.cos(a)*r, h*0.5 + Math.sin(a)*r*0.85, Math.random()*1.4 + 0.6, 0, Math.PI*2);
ctx.fillStyle = `rgba(1,31,91,${0.5 + Math.random()*0.4})`;
ctx.fill();
}
}
draw(); window.addEventListener('resize', draw);
})();
</script>
<script src="assets/js/page-shell.js"></script>
</body>
</html>