# Teaching

### Software Setup

Most of my courses involve installing the same set of software. See software and HW for instructions on which programs to install, and some hints/tips on commands to use on the unix/linux shell, and shortcuts to use in emacs. For some references and practice questions about C programming, see http://cs.indstate.edu/~jkinne/Cpractice/.

### Course Websites

- bioinformatics stuff...
**Summer Honors**- Arificial Intelligence (2017)**CS 151 Introduction to Programming**- summer 2017,

fall 2014, spring 2014, fall 2013, spring 2013 sections 001 and 003, fall 2012 section 001, spring 2012 sections 001 and 003, fall 2011 sections 001 and 002, spring 2011 section 003, fall 2010 section 003**CS 170 Web Programming I - Summer 2016****CS 201 Computer Science I**- Summer 2016, spring 2015, spring 2014**CS 202 Computer Science II**- fall 2017, spring 2017, spring 2016**CS 220 Java Programming**- spring 2015**CS 420/520 Theory of Computation**- fall 2016, fall 2015**CS 440/540 Graphics Programming**- fall 2012**CS 457/557 Database Processing**- fall 2012**CS 458/558 Algorithms**- fall 2013**CS 459/559 Computational Software Packages and Tools**- Summer I 2014**CS 473/573 Computer Networks**- spring 2015-
**CS 475/575 Artificial Intelligence**- fall 2011 -
**CS 499 Senior Seminar**- information **CS 559 Topics in Computer Science**- fall 2013**CS 609 Web Programming and Applications**- fall 2015 (as CS 650-003)**CS 603 Networking and Security**- fall 2016**CS 617 Databases, Data Mining, and Big Data**- fall 2017-
**CS 620 Theory of Computation II**- spring 2016, spring 2011, fall 2010 -
**CS 658 Algorithms II**- spring 2014, spring 2012 -
**CS 670 Concurrent Programming**- spring 2013 -
**CS 671 Operating Systems II - spring 2017** **CS 695 Computer Science Research**- fall 2014, spring 2011**CS 399/699 Computer Science Internship**- information

### Courses at UW-Madison

**CS/Math 240 Discrete Mathematics**- summer 2007**CS 810/710 Theory of Computation**- spring 2007**CS 310 Problem Solving with Computers**- fall 2003 - spring 2005

### Importance of Teaching

Among the greatest passions of my life are teaching and learning. I greatly enjoy both. More importantly, teaching and learning are at the foundation of modern society. Could there be doctors or astronauts without teachers? Would we have computers, the Internet, modern medicine, industry, etc. without teaching and learning? Indeed, just about any profession - whether it be a so-called "high tech" profession, a trade, or an art - relies on teaching and learning.

It is only logical that
*excellent* teachers are necessary to produce *excellence* in our
workforce. I am committed to being an excellent teacher of computer
science and mathematics. I primarily work to achieve this with
the teaching I perform in the classroom. I also am interested in outreach
opportunities to inspire a wider audience with the fascinating lessons
of computer science and mathematics.

### Links

When I have a link to a teaching resource, organization, etc. that I want to remember, I usually dump it here...

**National Organizations:**
Code.org Teach,
Computing Research Association (CRA),
Shodor (computational science),
Computer Science Teachers Association (CSTA) ,
National Council of Teachers of Mathematics (NCTM),
ACM Special Interest Group on Computer Science Education (SIGSCE) ,
CACM: Education,
MAA: Teaching and Learning

**National Events:**
Computer Science Education Week,
Mathematics Awareness Month,
National Lab Day,
Math Circles

**UW Organizations/Events:**
Scientific Teaching,
Delta Program,
Teaching Academy,
Teaching & Learning Symposium

**Other Resources:**
Computer Science Unplugged,
Teaching Complexity Theory (Goldreich),
Khan Academy,
Codepad,
Udacity,
Some cool math problems