Current Teaching Responsibilities

Dr. Berns discusses a research paper with a graduate student reading group I am currently an Assistant Professor of Computer Science at the University of Northern Iowa. My teaching responsibilities for Fall 2023 are given below. Course materials can be found on Blackboard

  • CS 2530: Intermediate Computing
  • CS 3120: User Interface Design
  • CS 3730: Project Management
  • CS 4740: Real Time Embedded Systems

Short Teaching Philosophy

I enjoy teaching, as it gives me an opportunity to share my excitement for computer science with students. I feel that becoming a better teacher requires not only experience in the classroom, but also a serious approach towards understanding teaching and learning and constantly improving one’s teaching fluency. Towards this end, I earned my Certificate in College Teaching, which not only provided classes focused on teaching and learning practice, but also gave me the opportunity to “student teach” for several college-level courses through the Practicum in College Teaching. I am also a member of ACM’s Special Interest Group on Computer Science Education (SIGCSE) and the IEEE Education Society, and enjoy following the advances in pedagogical and content knowledge in computer science.

Past Courses

Below is a list of my prior course responsibilities. If you would like materials from previous courses, please feel free to e-mail me.

Assistant Professor, University of Northern Iowa

  • CS 1510: Introduction to Computing (Fall 2017)
  • CS 2530: Intermediate Computing (Fall 2018)
  • CS 2720: Software Engineering (Spring 2023, Spring 2022, Spring 2021, Spring 2020, Spring 2019, Spring 2018, Spring 2017)
  • CS 3120: User Interface Design (Fall 2022)
  • CS 3610: Artificial Intelligence (Fall 2021)
  • CS 3730: Project Management (Fall 2016)
  • CS 3750: Software Verification and Validation (Spring 2019, Spring 2018, Spring 2017)
  • CS 3810: Theory of Computation (Spring 2019, Spring 2018)
  • CS 4400: System Administration (Fall 2018)
  • CS 4740: Real-Time Embedded Systems (Fall 2021, Fall 2020, Fall 2019, Fall 2018, Fall 2017, Fall 2016)

Assistant Professor, University of Wisconsin - La Crosse

  • CT100: Introduction to Computational Thinking (Fall 2014)
  • CS120: Software Design I (Fall 2013, Spring 2014, Fall 2014, Spring 2015)
  • CS220: Software Design II (Spring 2015)
  • CS225: Discrete Computational Structures (Spring 2014, Fall 2014)
  • CS272: Digital Circuit Design for Microcontrollers I (Spring 2016)
  • CS341: Software Design IV: Software Engineering (Fall 2013, Spring 2014, Spring 2015)
  • CS342: Software Testing Techniques (Spring 2015)
  • CS353: Analysis of Algorithm Complexity (Spring 2016)
  • CS421: Programming Language Concepts (Fall 2015, Spring 2016)

Visiting Assistant Professor, The University of Iowa

  • 22C:021 - Computer Science II: Data Structures (Spring 2013)
  • 22C:109 - Programming Languages and Tools: Programming with Java (Spring 2013)

Practicum in College Teaching, The University of Iowa

  • 22C:005 - Introduction to Computer Science (Fall 2011)
  • 22C:166 - Distributed Systems and Algorithms (Spring 2011)

Teaching Assistant, The University of Iowa

  • 22C:166 - Distributed Systems and Algorithms (Fall 2009)
  • 22C:166 - Distributed Systems and Algorithms (Fall 2008)
  • 22C:113 - Introduction to Systems Software (Fall 2008)

Past Student Projects

I am always looking for students interested in working with me on my research and other interests. For a sense of the projects I am interested in, consider the list below of some current and previous student projects I have advised:

Undergraduate Research in Computer Science - CS 4800

  • Logan Radloff: Building Swift Playgrounds for UAVs (Fall 2017)
  • Kaleb Luse: Search Algorithms for Embedded Systems (Fall 2016)

Honors Thesis

  • Josh Schriever: Live Notes: Bringing the Power of Desktop MIDI Input to the Android Platform (Fall 2016 - Spring 2017)

Master of Software Engineering Capstone Projects (University of Wisconsin-La Crosse)

  • Leland Haley:
  • Xiao Mushen: A Scheduling System for a Volunteer Ambulance Service (Spring 2015-Present)
  • Jiaowen Lan: A Chance Encounter App for iOS (Spring 2015-Spring 2016)
  • Yue Lu and Zhishang Wang: A Comment Overlay Service for Streaming Video (Spring 2015-Spring 2016)
  • Meixiang Jin and Menglan Tian: A Framework for Participatory Sensing (Spring 2014-Spring 2015)
  • Zihao Lin and Xi Yang: Designing and Evaluating a Prototype Vehicular Ad-Hoc Network (Spring 2014-Spring 2015)

Undergraduate Projects (University of Wisconsin-La Crosse)

  • Modern Software Engineering Practices for Web Design (Spring 2016)
  • Embedded Systems for Unmanned Aerial Vehicles (Fall 2015)
  • Image Recognition for Sleep Detection in Mice (Fall 2015)
  • Self-Stabilizing Phase Clocks (Spring 2015)
  • Android App Development using Unity (Spring 2015)
  • Game Programming in Python (Spring 2015)
  • Game Programming in C++ (Fall 2014)