Fall Semester 2018

Role: Co-Teacher with Jimmy Stauder and Kathryn Reese

Course Description: Mobile Computer Science Principles (Mobile CSP) is an endorsed provider of the Advanced Placement Computer Science Principles (AP CSP) curriculum and professional development. Students learn computer science by building socially useful mobile apps. In addition to programming and computer science principles, the course is project-based and emphasizes writing, communication, collaboration, and creativity. A complete set of free, openly licensed, Mobile CSP curricular and instructional materials are available online. Developed and piloted at Trinity College, Mobile CSP is now also partnered with the College of St. Scholastica. Both are funded by the National Science Foundation. Since 2013 the Mobile CSP project has provided professional development to more than 400 teachers throughout the U.S. and reached more than 6,000 students. For 2017-18, there are more than 600 teachers and 10,000 students using the Mobile CSP curriculum.


A map showing the coverage of Mobile CSP around the nation.



Alyce Leonardi, Business & Computer Technology at Corvallis High School


The Mobile Computer Science Principles course (Mobile CSP) satisfies all requirements of the College Board's new AP Computer Science Principles course, which has been designed to help broaden participation in computer science among high school girls and underrepresented minorities. The Mobile CSP course uses the visual programming language, MIT App Inventor, to provide a rigorous, programming-based introduction to computer science using a project-based curriculum. Students learn computer science by building socially useful mobile apps. In this way, student learning will be associated closely with their interests and grounded in their schools, their homes, and their communities.


Student Turtle Graphics Artwork




Spring Semester 2019

Role: Teaching Assistant

Course Description: An overview of both the theory of and applications for providing effective security in database management systems. Topics include conceptual frameworks for discretionary and mandatory access control, data integrity, availability, secure database design, data aggregation and data inference. Models for multilevel secure databases for both relational and object-relational databases are analyzed. Assignments focus on database security concepts and require use of a remote access laboratory.

Learning Outcomes: At the end of the course, students should be able to:

  • Articulate database security techniques and procedures and use them to develop a database security plan

  • Produce secure database designs

  • Illustrate principles of discretionary and mandatory access control

  • Recognize and apply availability concepts for security

  • Assess different database security architectures

  • Implement concepts of data integrity, data aggregation, and data inference in database secure environments

  • Identify, define and distinguish between the fundamental issues in multilevel secure database systems

  • Identify the common database threats and compile a list of counterthreats

Michael L. Martin, Visiting Professor.




Fall Semester 2019

Role: Teaching Assistant

Course Description: The purpose of this course is to introduce you to essential data structures and algorithms that will serve as valuable building blocks for the remainder of your career as a computer scientist. In this class, we emphasize understanding of both (i) the methods for implementing fundamental data structures and algorithms and (ii) the ways in which these data structures and algorithms can be used in code you will write for the remainder of your career.

Learning Outcomes: Upon successful completion of this class, students will:

  • Become familiar with fundamental data structures like stacks, queues, priority queues, associative arrays / hashes, and graphs (e.g. search trees and perhaps tries)

  • Become familiar with fundamental algorithms based on these data structures, including sorting, clustering, graph search, and string search

  • Improve your facility with software development, by implementing these data structures and algorithms in Java

  • Become familiar with the basic notion of run time and space analysis, as applied to algorithm development

Travis Wheeler, Associate Professor of Computer Science.




Spring Semester 2020

Role: Teaching Assistant

Course Description: Databases are an essential and ubiquitous part of everyday life, and many of our day-to-day tasks involve the use of an underlying database in some form or another. As computer scientists, it is critical that we understand fundamental concepts of databases and database management systems (DBMS), including how they are designed, implemented, queried and maintained. In this class, we will learn about data modeling, relational models, normal forms, file organization, index structures, SQL, and PHP. Through the course of many weeks, students will work on a project that involves the design and implementation of a web-accessible database using PHP and MySQL.

Learning Outcomes: Upon successful completion of this class, students should be proficient with the following:

  • Database system terminology, concepts and architecture

  • Database design, including requirements specification and ER modeling

  • Relational data model concepts, schemas, and constraints

  • Functional dependencies and the process of normalization

  • Programming in SQL, PHP, and MySQL

  • File organizations, including single and multi-level indexing structures

Yolanda Reimer, Professor of Computer Science.

Lectures given by me