Update (December 2020)

I am trying to solve a two-body problem in the American West. Here's my CV. Also check out:

### source view: teaching.php

<?php

require_once sprintf( '%s/classes/Course.php', __DIR__ );

class OldCourse
{
private \$course_title;
private \$description;
private \$eval_mean;
private \$eval_median;
private \$has_notes;

function __construct ( \$course_title, \$description, \$eval_mean, \$eval_median, \$notes_addendum )
{
\$this->course_title   = \$course_title;
\$this->description    = \$description;
\$this->eval_mean      = \$eval_mean;
\$this->eval_median    = \$eval_median;

if ( is_array( \$this->description ) )
{
\$this->description = \$this->description[ rand( 1, count( \$this->description ) ) - 1 ];
}
}

function toHTML ( \$i )
{
\$c = \$i % 2 ? 'eee' : 'fff';

\$s = <<<EOH
<tr><td><strong>{\$this->course_title}</strong>
EOH;

if ( strlen( \$this->eval_mean ) > 0 )
{
if ( strlen( \$this->description ) > 0 )
{
\$s .= <<<EOH
<span style="display:block;font-size:9pt;margin-bottom:1ex;">Mean {\$this->eval_mean}; median {\$this->eval_median}
EOH;
}
else
{
\$s .= <<<EOH
<span style="display:block;font-size:9pt;">Mean {\$this->eval_mean}; median {\$this->eval_median}
EOH;
}

{
// \$s .= ' | <a href="/economics-notes">class notes</a>';
\$s .= ' | <span style="font-style:italic;">notes available</span>';
}

\$s .= '</span>';
}
{
// \$s .= '<span style="display:block;font-size:9pt;margin-bottom:1ex;"><a href="?economics-notes">class notes</a></span>';
\$s .= '<span style="display:block;font-size:9pt;font-style:italic;margin-bottom:1ex;">notes available</span>';
}

// gross but fast
{
}

\$s .= <<<EOH
EOH;

if ( strlen( \$this->description ) > 0 )
{
\$s .= <<<EOH
<a href="#" onclick="return showIt( this );">details</a>
EOH;
}

\$s .= '</td></tr>';

return \$s;
}
}

class Hobby
{
private \$description;
private \$name;
private \$type;
private \$url;

function __construct ( \$name, \$type, \$url, \$description )
{
\$this->description = \$description;
\$this->name        = \$name;
\$this->type        = \$type;
\$this->url         = \$url;
}

function toHTML ( \$i )
{
\$s = '<tr><td>';

\$type_letter = strtoupper( substr( \$this->type, 0, 1 ) );
\$type_color  = \$this->type == 'Android' ? '229966' : ( \$this->type == 'HTML' ? '536895' : '990000' );

\$s .= <<<EOH
<span style="color:#{\$type_color};cursor:default;font-weight:bold;margin-right:1ex;" title="{\$this->type}">{\$type_letter}</span>
EOH;

if ( \$this->url != null )
{
\$s .= <<<EOH
<a class="heavy" href="{\$this->url}" target="_blank">{\$this->name}</a>
EOH;
}
else
{
\$s .= <<<EOH
<strong>{\$this->name}</strong>
EOH;
}

\$s .= <<<EOH
<p style="display:none;">{\$this->description}</p></td><td class="more">[<a href="#" onclick="return showIt( this );">more</a>]</td></tr>
EOH;

return \$s;
}
}

require './classes/Page.php';
\$page = new Page();

<style type="text/css">
table
{
margin-bottom: 0px;
margin-left:   15px;
width:         550px;
}

td
{
}

td.more
{
position:       relative;
width:          6ex;
text-align:     center;
vertical-align: top;
}

td > p
{
margin-bottom: 0ex;
}

@media screen and (max-width: 600px)
{
table
{
width: initial;
}
}
</style>
EOH
);
<style type="text/css">
div#content_actual > ul, div#content_actual > ul ul
{
list-style-type: none;
}

div#content_actual > ul ul ul
{
margin-left: 1.75ex;
}

div#content_actual > ul li
{
margin-bottom: 2ex;
}

ul.course-notes p
{
margin-bottom: 0ex;
}

a.notes-title
{
display: block;
}

div.course-details
{
border-left:   1px solid #eee;
display:       none;
margin-bottom: 3.0ex;
margin-left:   0.5ex;
}

li.course p:last-of-type
{
margin-bottom: 0ex;
}

div#content_actual > ul li.course li:last-of-type
{
margin-bottom: 0ex;
}

span.course-name
{
font-weight: 400;
}

span.course-summary
{
display:   block;
font-size: 9pt;
}

span.show-details
{
float:        right;
}

span.semester-offered
{
font-weight: 400;
}
</style>
EOH
);
<script language="javascript">
var A = document.getElementsByClassName( 'show-details' );
for ( var i = 0; i < A.length; ++i )
{
A[i].firstChild.addEventListener( 'click', makeDetailsHandler( A[i].firstChild ) );
}
} );

function makeDetailsHandler ( a )
{
return function ( e )
{
let c           = a.parentNode;
c.style.display = 'none';
c               = c.parentNode;
c.getElementsByClassName( 'course-summary' )[0].style.display = 'none';
c.getElementsByClassName( 'course-details' )[0].style.display = 'block';

e.preventDefault && e.preventDefault();
e.cancel && e.cancel();
return false;
};
}
</script>
EOJ
);

\$courses = array(
new OldCourse( 'Economics 701: Analytical Methods for Mathematical Economics (UNC, Fall 2020)', '', '', '', false ),
new OldCourse( 'Economics 510H: Honors Advanced Microeconomic Theory (UNC, Fall 2020)', '', '', '', false ),
new OldCourse( 'Economics 701: Analytical Methods for Mathematical Economics (UNC, Fall 2019)', '', '', '', false ),
new OldCourse( 'Economics 510: Advanced Microeconomic Theory (UNC, Spring 2019)', '"Now I find myself in a class where I excitedly talk to my peers and family about topics from lecture over dinner about what I\'m learning, completely unprompted."', '4.20/5', '4.00/5', false ),
new OldCourse( 'Economics 890: Contract Theory (UNC, Spring 2019)', '', '4.50/5', '4.50/5', false ),
new OldCourse( 'Economics 701: Analytical Methods for Mathematical Economics (UNC, Fall 2018)', '', '', '', false ),
new OldCourse( 'Economics 510: Advanced Microeconomic Theory (UNC, Fall 2017)', '"He tried his best."', '3.90/5', '4.00/5', false ),
new OldCourse( 'Economics 890: Quantitative Techniques II (UNC, Fall 2017)', '', '', '', false ),
new OldCourse( 'Economics 510: Advanced Microeconomic Theory (UNC, Spring 2017)', '', '4.70/5', '5.00/5', false ),
new OldCourse( 'Economics 890: Quantitative Techniques II (UNC, Fall 2016)', '', '', '', false ),
new OldCourse( 'Economics 510: Advanced Microeconomic Theory (UNC, Fall 2015)', '', '', '', false ),
new OldCourse( 'Economics 890: Quantitative Techniques II (UNC, Fall 2015)', '', '', '', false ),
new OldCourse( 'Economics 97: The Economic Toolkit (UCLA, Summer 2013)', '', '', '', false ),
//new OldCourse( 'Economics 106D: Market Design (UCLA, Spring 2013)', '"One of the best econ TAs I\'ve had. I hope you become an econ professor somewhere awesome."<br /><br /><em>Ed. note: I asked for bonus points in my ratings. Absent extra credit, the mean was 8.82 and the median was 9.', '13.18', '12', true ),
new OldCourse( 'Economics 106D: Market Design (UCLA, Spring 2013)', '"One of the best econ TAs I\'ve had. I hope you become an econ professor somewhere awesome."', '8.82/9', '9.00/9', 'UCLA ECON 106D' ),
new OldCourse( 'Economics 41: Statistics for Economists (UCLA, Winter 2013)', array( '"You sir are a BEAST!"<br /><br /><img src="/blog_data/images/you_are_a_straight_gem.jpg" alt="I am a straight gem." width="300" /><br /><em>Ed. note: I happen to enjoy pepperoni pizza.</em>', '"Better teacher than any Econ 41 prof I\'ve seen (I\'ve seen 3)."<br /><br /><img src="/blog_data/images/you_are_a_straight_gem.jpg" alt="I am a straight gem." width="300" /><br /><em>Ed. note: I happen to enjoy pepperoni pizza.</em>' ), '8.60/9', '9.00/9', 'UCLA ECON 41' ),
new OldCourse( 'Economics 101: Microeconomic Theory (UCLA, Fall 2012)', '"[...] Hope Kyle will teach econ here as a professor soon."<br /><br /><img src="/blog_data/images/i_am_a_bomb.jpg" alt="I am a [bomb]" width="300" />', '8.65/9', '9.00/9', 'UCLA ECON 101' ),
new OldCourse( 'Economics 11: Microeconomic Theory (UCLA, Spring 2012)', '"Kyle balls out. He\'s the man. Best TA I\'ve ever had. Thanks, homie."<br /><br /><em>(sadly there was a mix-up in evaluations, and only half were returned)</em>', '8.67/9', '9.00/9', 'UCLA ECON 11' ),
new OldCourse( 'Economics 41: Statistics for Economists (UCLA, Winter 2012)', '"Phenomenal job. Honestly the most comprehensive TA I have ever had. You would make one of the best professors this school offers. Good luck and thank you for the time you put into your precision and care."', '8.51/9', '9.00/9', 'UCLA ECON 41' ),
new OldCourse( 'Economics 201A: Microeconomics (UCLA, Fall 2011)', '"Kyle is the best TA. He was always available and responsive, came prepared, and thoroughly answered questions."', '8.56/9', '9.00/9', 'UCLA ECON 201A' ),
new OldCourse( 'Economics M134A: Environmental Economics (UCLA, Summer 2011)', '', '', '', false ),
new OldCourse( 'Global Green Business Week (UCLA, Summer 2011)', 'Covered a motivation of and introduction to game theory for high school students, by way of demonstrating that other people\'s choices affect the choices we would like to make.', '', '', 'CIEBR' ),
new OldCourse( 'Economics 201C: Welfare Economics (UCLA, Spring 2011)', '', '8.37/9', '9.00/9', 'UCLA ECON 201C' ),
new OldCourse( 'Economics 101: Microeconomic Theory (UCLA, Winter 2011)', '"List of top 5 people I want to be: (1) Derek Jeter; (2) Johnny Depp; (3) Andy Roddick; (4) Michael Burry; (5) Kyle Woodward"', '8.23/9', '9.00/9', 'UCLA ECON 101' ),
new OldCourse( 'Economics 41: Statistics for Economists (UCLA, Fall 2010)', '"Kyle was really clear. He was effective, straightforward, and super helpful. He also gave us cookies, which in no way influenced my evaluation. Seriously, though, he was really good. Give him a raise, because he really works hard to make us learn."', '8.27/9', '9.00/9', 'UCLA ECON 41' ),
new OldCourse( 'Introduction to Computer Science (Phillips Academy Andover, Summer 2005)', 'A six-week course covering an introduction to C++ programming. Things went well until I forced recursion and pointers into the final week; I do believe my three charges are more than capable of writing competent programs.', '', '', false ),
new OldCourse( 'Algebra II (Phillips Academy Andover, Summer 2005)', 'TA\'d for a course with roughly twenty tenth-graders. Teaching this basic content did more to build my powers of explanation than any amount of training could have. I can still teach memorization of the quadratic formula by way of <em>Row, Row, Row Your Boat</em>.', '', '', false )
);

'UCLA ECON 11' => <<<EOA
EOA
,
'UCLA ECON 41' => <<<EOA
EOA
,
'UCLA ECON 101' => <<<EOA
EOA
,
'UCLA ECON 106D' => <<<EOA
<ul><li> <a href="/blog_data/pdfs/handout_micro_revenue_equivalence.pdf" onclick="pageTracker._trackEvent('Blog','Downloads','Econ 106D - Revenue equivalence');return true;" target="_top">Uses of revenue equivalence</a> &mdash; solving an all-pay auction without the revelation principle, using revenue equivalence to compute strategies, order statistics and their applications.</li></ul>
EOA
,
'UCLA ECON 201A' => <<<EOA
<p>I had a concussion during this quarter and most of my notes are not very good. What follows is the one set that is worth anything, and it only on a practice-problem basis.</p>
<ul><li> <a href="/blog_data/pdfs/handout_micro_production_assets.pdf" onclick="pageTracker._trackEvent('Blog','Downloads','Econ 201A - Production, assets, and insurance');return true;" target="_top">Production, assets, and insurance</a> &mdash; a definitional approach to production; &#8220;baby asset-pricing</tag>&#8221;; a handful of very simple forms of insurance and what they imply about insurer profits.</li></ul>
EOA
,
'UCLA ECON 201C' => <<<EOA
<p>Many of these notes refer to <a href="http://essentialmicroeconomics.com/" target="_top"><em>Essential Microeconomics</em></a>, John Riley&#0039;s textbook-in-progress. It&#0039;s a good reference with a nice view towards applying questions to real-ish problems; this is of course opposed to <a href="http://www.amazon.com/gp/product/0195073401/ref=as_li_ss_tl?ie=UTF8&tag=kylewoodward-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0195073401" target="_top">MWG's</a> proof-heavy book which, while mathematically powerful, is often devoid of any intuitive appeal.</p>
EOA
,
'CIEBER' => <<<EOA
<ul><li> <a href="/blog_data/pdfs/lecture_intro_game_theory.pdf" onclick="pageTracker._trackEvent('Blog','Downloads','CIBER GGBW - Notes 2011');return true;" target="_top">Introduction to Game Theory</a> &mdash; a ground-up introduction to game theory and related topics, assuming no knowledge of anything (other than how to find the extremum of a quadratic equation). Fairly well put-together, if I do say so, but the last bit on sustainability could use some work.</li></ul>
EOA
);

?>
<h3>teaching</h3>
<p>
<!-- note: this average hasn't been updated in years... -->
My overall mean teaching evaluation comes in at 8.57/9, with a median of 9/9; the latter held pointwise until 2018. I am occasionally asked to provide more motivation in tying economic themes together.
</p>
<ul>
<?php

\$courses = Course::fetchAllCourses();

for ( \$i = 0; \$i < count( \$courses ); ++\$i )
{
\$courses[\$i]->printCourse();
}

?>
</ul>
<?php

\$page->printPageFooter();

?>