I have a passion for teaching. As can be seen below, I now teach
two 3^{rd}-year/4^{th} year courses that are challenging, but
very popular (> 50 students in a dept with ca 100 students/year). Both
courses have a heavy programming component which I feel strongly contributes to
the success of these courses. In addition to the list of the courses I have
taught, I have also included a “Teaching Highlights” below that
include comments re. specific course developments etc.

**Training:**

I have completed the PEDUP (PEDagogical Development Program put together
for NTNU faculty. I joined this program in 2001/2002 which included a general
part estimated to take 50 work-hours and two smaller modules which are
estimated to take 25 hours each. I
selected PBL (Problem-Based Learning) and “Teaching in Larger
Groups” as these modules. A longer report was also submitted which is
being reworked as aconference/journal teaching article.

I have not
only taught all the following course, but also developed a lot of the course
material, included updated programming and problem sets for each semester. As
mentioned, I have a passion for teaching. J

·
DT8117
Grid Technology and Heterogeneous Computing -- PhD-level course talk every
other year. This is a PhD course where we currently primarily focus on
Heterogeneous and GPU computing by also cover related GRID and Cloud
technology. Students do related Problems sets.

·
TDT
4200 Parallel Computing(Fall 2011)

See above for the history of this
course and below for older versions. Currently includes several programming
assignments in MPI, OpenMP + threads and CUDA (GPU) programming. May also
include an assignment OpenCL this semester. GPU assignments made possible by
donations from NVIDIA. Over 50 students currently registered.

·
TDT
4200 Parallel Computing (Fall 2009)

· TDT 4200 Parallel Computing (Spring 2009)

· TDT 4200 Parallel Computing (Spring 2008)

· TDT 4200 Parallel Computing (Spring 2007)

· TDT 4200 Parallel Computing (Spring 2006)

· TDT 4200 Parallel Computing (Spring 2004)

· SIF 8044 Parallel Computing (Spring 2003)

·
TDT
24 Parallel Environments & Numerical Methods (Fall 2011)

Graduate seminar-style course for
5^{th} year master students. The course includes a crash-course in
matrix basics and iterative methods, then several recent articles on GPU
computing and related articles to the students’ project. Current
enrollment: 10 students + 4 audits. Link to previous versions:

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2009)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2008)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2007)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2006)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2003)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2002)

· TDT 24 Parallel Environments
& Numerical Methods (Fall 2001)

· TDT 4205 Compilers/Kompilatorteknikk ( Spring 2010)

See above for ow I developed this course. Current attendance: 50+

· TDT 4205-1 Compilers/Kompilatorteknikk (Fall 2008)

· TDT 4205-1 Compilers/Kompilatorteknikk (Fall 2007)

· TDT 4205-1 Compilers/Kompilatorteknikk (Fall 2006)

· DIF 8916 -- Topics in Computer and
Information Science (Spring 2001) -- PhD research techniques course which I
helped develop. Includes the NTNU CSGSC (Computer Science Graduate Student
Conference) series that I founded. Last year (2010) I received a plaque from
the students for its success and 10^{th} year anniversary.

·
SIF
8041 -- Operating Systems & Databases (Spring 2001)

**Courses taught at Univ. of Texas at Austin, USA
(ECE, CS and Math):**

· EE 360 "Conference course"
(individuelt lesepensum) on "Special Problems in Parallel Computing"
(Spring 2002). The student is now in the Computer Science Ms/PhD Program at
Univ. of Illinois Urbana-Champaign.

· Supervised EE 464H -- ECE Honors
Student Project,(Summer 2001).

This course led to student taking a 4-moth
extended summer job at NTNU + paper at PARA 2002.

· EE 360P -- Operating Systems (Fall 2000)

· EE 360C -- Data Structures in
C++ (CS7) (Summer 2000)

· CS/M 393N --
Numerical Solutions to Elliptic Partial Differential Equations (Spring 1999)

-- a second level grad. course on iterative PDE methods (lectured for Dr. David
M. Young)

· M 340L (Spring 1999) -- Linear
Algebra for non-math majors. -- Assisted with exams and gave several guest
lectures.

· CS 328 -- Abstract Data Types
(CS7, incl. graph algorithms) (Summer 1998) -- taught in C++.

· CS 315 -- Data Structures
(CS2)(Summer 1997) --
taught in C++.

**Course taught through Acenor Inc.: **

**Teaching
Highlights:**

- Developed
from scratch the upper division course TDT 4200 Parallel Computing,
starting as a graduate seminar and becoming a full senior (4
^{th}-year) level course by 2003. Although considered on of the more demanding courses, it is now very popular, 43 taking the final last year and over 50 registered this semester. This course is now one of the largest such classes world-wide on the subject, which recently led to NVIDIA donating 20+ GTX 480 cards as well as USD 10 000 for course development, one of the largest such grant given as part of their CUDA Teaching Center program.

- I took over our compilers course when the dept.
threatened to cancel it due to lack of interest. I completely revamped the course.
Went from ca. 5 students before I took it over in 2006 to ca 50 student
now taking this course (Spring 2010 and 2011) after it now follows new
major US text book, has redesigned programming assignments is shared with
my recent PhD student Jan Christian Meyer.

- Attended the NTNU Ped-UP course, pedagogical training course for NTNU teaching staff in 2002/2003. Elective modues: Large lecture and Problem-based Teaching.

- Participant
in Committee which developed "IT-emner"/ Topics in Computer
Science, a PhD level course, in early spring 2001. My active participation on this
committee led me to become the official instructor for this course for
Spring 2001 (see Pedagogical Experience). The committee met several times
to develop the specifications for this course which was completely
revamped from its previous incarnation.

- Developed
and organized the first NTNU Computer Science Graduate Conference, May
2001, as a pedagogical tool to help our graduate students get started with
research, broaden their perspectives of Computer Science. This kind of
conference teaches them how to review papers, write papers, as well as
teaches them how to present their work through peer and faculty feed-back.

- Given
guest lecture in EE 306 – Introduction to Computing, Dept. of
Electrical and Computer Engineering, Univ,. of Texas at Austin for Prof.
Tony Ambler.

- Developed
several innovative programming assignments for my data structures and
algorithm courses at UT Austin. E.g. taught linked lists by having
students generate 2D objects where nodes and vertices represented by links
and displayed via Open GL. The students then performed operations such as
enlarge/reduce and rotate on these objects. When teaching about trees, I
had them do a web-page style generator that spat out HTML code and linked
the pages (this was in 1999), then towards the end we did Dijkstra’s
shortest path algorthim on the web generated by adding cross link,
external link and simple timing weights for various sites (some obtained
via Unix tests).

- Responsible for the choosing course text-book for Data Structures (CS at University of Texas at Austin) being switched after I reviewed several Data Structures texts and decided the current book that was in use was not optimal. Wrote up an evaluation to the Department.
- In May 2000 I co-taught a 2-day tutorial on Numerical Methods for
PDEs for the US Air Force Research Lab at WPAFB in Dayton, Ohio, USA
through my US company ACENOR INC. Together with my co-organizer Dr. David
Kincaid, we developed the 2-day course from scratch on request from WPAFB,
including the workbook with copies of the slides presented. The course was
attended by USAF researchers from throughout the USA.
- I
visited EECS at MIT fall 2000 where I discussed their new direct-to-MS
program, as well as other pedagogical issues with faculty members both on
the CS and EE side. Their new Masters of engineering thesis project
program specifically encourages their brightest seniors to pick up a
Master of Engineering project. For more information, including information
on their new course for this program, 6.191-Prototyping Research Results,
see http://wilson.ai.mit.edu/courses/6191/index.html

**Co-taught 1/2 day Tutorial “Optimization Techniques for Scientic Codes”, with my PhD student Rune Jensen at PARA 2008**

This page is maintained by : elster at idi.ntnu.no

It was last updated on April 30,
2012. Comments welcome.