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 14. 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.
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. Blog
- 2024-08-23: Tips for course-building effiency (PDF)
- 2024-08-23: Web Accessibility tips for Canvas (PDF)
- 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 Summmer 2022
2.5. 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.6. 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 2006.
- 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. :)
Volunteering
- CodeDay organizer - Fall 2024.
- Girls Who Code / Let's Code! club JCCC chapter - Instructor / organizer. Jan 2018 - Dec 2022.
- Girls Explore Tech - 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.7. 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