R.W.'s Professional Portfolio đŗī¸ââ§ī¸
đ Home | đ My courses webpage | đī¸ My course repositories | đšī¸ My games and zines
1. Welcome!
I am R.W. (Rachel Wil) Singh (he/him/they/them)
Role: Associate Professor, Computer Science, Johnson County Community College
1.1. Skills overview
- Tools: C++, Java, C#, Python, Lua, JavaScript, HTML, CSS, Git, Linux, emacs, RESTful APIs, BASIC for Vic-20 :)
- Technical: Software development practices, Agile scrum, Free/Open Source software, retro computing
- Teaching: Course design, curriculum design, flipped and hyflex classroom design, Canvas LMS
- Social: Accessibility in web and course design, learning about culture and language serving "non-traditional" students, diversity equity and inclusion, inclusivity towards LGBTQIA+ members, designing for neurodivergence/ADHD/Autism, designing for remote students, etc.
2. R.W. Singh
2.1. Background
I was originally born in Washington state but have lived in the KC Metro area since I was a pre-teen. My sister and I were homeschooled, and I began taking computer science classes at a local community college starting at the age of
- I went on to UMKC for my Bachelor's in Computer Science and graduated with my BS in 2009.
I've worked in software and web development since 2010, though I've also been programming video games on my own since 2000 (working with C++ since 2002, when I was 14), and developing my own websites and Android apps on the side as an adult. I've worked at various sized companies, including Perceptive Software and Epiq Systems. Most of my work professionally has been with C++ or C#, as well as HTML, CSS, JavaScript, and various flavors of SQL.
I self-publish indie video games as well as cartoons in Esperanto in my spare time. I am currently also learning Hindi so that I can communicate with my husband's family better. I also enjoy bird watching and learning to grow vegetables.
2.2. Teaching philosophy
(Work in progress)
I believe that education should be accessible and available to everybody. As I create educational resources for my courses, I also share those resources for free online, for other teachers and for students who may be self-studying or needing to supplement a class they're taking.
I come from a working class family and I understand the challenges of managing life, expenses, and other responsibilities with trying to build a better future through college. I believe in creating classes that serve and train the students by providing them with all the resources they need to learn, and not punishing students for having other responsibilities in their lives.
I also come from the industry, where I worked as a software and a web developer. I believe in teaching my students about software development practices, use of source control and other important development tools, being aware of current trends in tech, and understanding the ethics of tech and ways bias can creep into designs. Beyond just pure C++ programming, I also provide opportunities for my students to learn and discuss these things.
I believe that anybody who wishes to learn to program can learn to do so. It can be a challenging topic, but we all face challenges in our lives - challenge and difficult doesn't mean impossible. I see myself as a guide to help students build a foundation and learn how to learn and problem solve as they learn the nuances of programming. I am not here to gatekeep technology, but to be a resource.
2.3. Courses I teach
2.3.1. At Johnson County Community College
- CS 134: Programming Fundamentals
- CS 200: Concepts of Programming Algorithms Using C++
- CS 235: Object-Oriented Programming using C++
- CS 250: Basic Data Structures using C++
And I have taught these previously, but not recently:
2.3.2. Elseware
- CS 201R: Problem Solving and Programming II at UMKC
- CS 191: Discrete Structures I at UMKC
2.4. Additional work
- Mentoring new teachers, helping others learn about how to use Canvas LMS.
- Hosted CodeDay at JCCC, Fall 2024.
- Gave Professional Development talks, Spring 2025.
- Participated on a Peer Review Commitee, 2023-2024.
- Volunteered for JCCC's Homeschool Day for the past 3 years.
- Participates in the Teaching & Learning group on campus.
- Advisor for the Developing Diversity in STEM club. Backup advisor for the JCCC Cybersecurity club.
- Girls Who Code / Let's Code! club JCCC chapter - Instructor / organizer. Jan 2018 - Dec 2022.
2.5. Blog
- 2025-03-11: Simulating Real World Codebases and Thwarting Gen AI
- 2025-01-17: Presentation: Accessibility Guidelines for Canvas design - An overview of Web Content Accessibility Guidelines (WCAG) 2.1
- 2025-01-15: Presentation: Takeaways from "The Norton Guide to Equity-Minded Teaching" and "Cheating Lessons: Learning from Academic Dishonesty"
- 2024-08-20: What gender means to me
- 2023-12-14: Spring 2024 preparation
- 2023-12-14: Fall 2023 reflections
- 2023-09-25: What students want in a teacher
- 2023-08-01: Classroom modalities
- 2023-07-11: Lessons learned from group programming assignments
- 2023-05-01: Perks of Peer Review
- 2022-05-11: GWC games
- 2022-04-14: Preparing for Summer 2022
Ideas for things to blog about later…:
- My Object Oriented Programming class faux-Amazon codebase where students pull tickets, fix code, create and review merge requests, using Git. How this helps students work with each other, learn a new "big" codebase, work on solving novel problems that isn't just out of a textbook, and perhaps most importantly becoming comfortable with asking questions. :) Also how this type of group semester project is an assignment that's hard to "cheat" with ChatGPT.
- Current challenges in teaching vs. AI use; poison pills as defense, designing class around student buy-in and why they shouldn't be relying on AI, how they need to be able to at least review the code and know if it's correct or not.
- Efforts to add student-created test cases for manual or unit testing across my C++ classes.
2.6. Resource links
I keep a lot of my course resources and tools on my gitlab.com/rachels-courses group on GitLab. These items are free for anyone to use, change around, etc. Generally, they're licensed as Creative Commons with Attribution.
For courses:
- Course textbook homepage - The notes I provide to students for the semester.
- Example code - A repository of example code, mostly for my CS 200 and CS 235 classes in C++.
- Discrete Structures archive - An archive of the resources I've made for CS 210 and CS 211 at JCCC and CS 191 at UMKC.
- Data Structures visualizations - Old JavaScript-based visualizations I made for CS 210 and CS 211 topics.
- Discrete Structures notes - My old notes on Discrete Structures topics.
- Archived lecture videos - Playlists of archived lectures, example code, etc.
Canvas tools:
- API Scripts - Example code using the Canvas LMS API, examples with Python, PHP, and Curl.
- CLI Manager for Teachers - A command line based program to run operations on Canvas courses via the API.
General resources:
- Class utilities - Bash csripts to clone repositories, sync, copy files, etc.
- Plaintext data files and generators - When an assignment needs data, I grab stuff from this
- C++ Utilities - Common functionality I use in C++ a lot, often use these functions in course assignments.
- CuTEST - The C++-based unit test framework I wrote. (Kinda old)
- Course building files - Graphics, ideas, etc. (Kinda old)
2.7. Experience
See my LinkedIn to view my full work history or connect!
Teaching experience
- "Beginner's Guide to Game Programming" tutorials, 2009 (Link) and teaching others to code online, independently.
- Longview Community College Math Lab tutor, 2004 - 2006?
- Teaching assistant at UMKC, 2013
- Adjunct instructor at JCCC, 2016 - 2019
- Assistant professor at JCCC, 2020 - 2023
- Associate professor at JCCC, 2023 - current
See my LinkedIn for my professional software developer history!
Education
- Self-taught programming in C++ since 2002.
Graduated from Longview Community College with a A.S. in Computer Science in
- Phi Theta Kappa
- Math Lab tutor
- Graduated from University of Missouri, Kansas City with a B.S. in Computer
Science in 2009.
- Upsilon Pi Epsilon
- Cum Laude
- In and out of grad school, 2013, 2017, 2018. :)
Additional volunteering
- KC Mutual Aid - participant and volunteer - 2025.
- Volunteer piano teacher - 2025.
- Girls Explore Tech - Helper - various years.
- KC for Refugees - Volunteer/tutor/mentor - Jan 2018 - Present.
- Boy Scouts of America - Merit Badge Counselor - 2013 - 2014.
- CCCKC 501c3 - Director of Web Design (2012 - 2013), President (2014).
2.8. Contact me!
rsingh13 -at- jccc -dot- edu
3. Links
3.1. My teaching links
- Course videos - I upload video lectures and example coding videos to this YouTube channel
- Course repositories - I host a lot of my course stuff on GitLab
- Example code - An archive of example code for most topics from CS 200 / CS 235
- R.W. Singh's Teaching Portfolio Page - Teaching related blog and information
3.2. My project/resource links
- Canvas API Helper - Example API calls to automate Canvas setup :)
- cuTEST unit test framework - The unit test framework I created and use in my C++ classes
- C++ utilities - A repository of handy functionality I use a lot in C++
- Discrete Math visualizations (from years ago)
- My games and zines