Skip to the content.

CPSC 490B: Computer Science Pedagogy

This proposal outlines a Student Directed Seminar aimed at educating students on effective and equitable teaching practices for contemporary topics in computer science.

tl;dr

A course on CS education. Run as a Student Directed Seminar. Interested? Register for CPSC 490.2W1 on the SSC or drop a line to mdemar01 [at] student [dot] ubc [dot] ca with [CPSC 490B] in the subject line. The course’s scheduling will depend on its participants!

About

A brief introduction to myself, the seminar, and who this seminar is for!

Who am I?

I’m Michael DeMarco, an upcoming fifth-year student at UBC. I’ve worked as a software engineer, researcher, and teaching assistant during my degree. Through work as an undergraduate TA, I’ve found a real passion for teaching, and thanks to co-op extending my degree to five years, I have a bit of extra bandwidth in my final semester. I want to be able to share and build on that experience with a diverse group of former TAs, CS students, and folks interested in education.

So, I’m applying to host a course on CS education!

What’s this seminar all about, anyway?

The goal is to explore best practices in computer science education. We’ll dive into the latest trends in technology, and explore their impact on education. We’ll explore themes of justice and their relevance in computer science. Moreover, we’ll explore how learners learn, and discover teaching strategies that take that into account. You will get hands-on experience observing teaching in action, giving a mini-lecture, and exploring CS education research.

For a snippet of topics covered, take a look here. It’s important to note this ‘course’ is a seminar, meaning I expect to learn hand-in-hand with the students who enroll in the course. While I’ll look to draw on and share my experience as a TA, I am by no means an expert. This course will be highly collaborative.

Who should take this class?

If you are…

you should take this class!


Logistics

As of 2023/05/31, the course is under review by the Student Directed Seminar program leads. Because of a few special circumstances described below, we’re asking you for now to express your interest by registering for a CPSC 490.2W1 waitlist with no attached time for now. By September 20, we’ll send out an application link to everyone registered on that waitlist or who has expressed interest via email. (If you’d like to do that, please reach out at mdemar01 [at] student [dot] ubc [dot] ca with [CPSC 490B] in the subject line.) We’ll also ask for your time preferences for the course. By October 15, we’ll send schedule and admissions/waitlist information.

As soon as the application form is ready, we’ll also include it here and send the scheduling link to anyone with a complete application.

Special circumstances for student-directed seminars (SDS):

  1. The SDS review process is ongoing and unlikely to be complete before registration time.
  2. SDS courses often expect particular backgrounds from participants. We’d like to use a brief application to ask you about those factors.
  3. SDS courses are limited to 15 registrants total, including the seminar’s student host.
  4. With such a small group, we hope to find a mutually agreeable time for as close to everyone as possible.

Proposal

Note this is the proposal that was submitted to the SDS team at UBC. It is pending approval and is subject to change to my discretion.

Seminar rationale

Include your academic focus, the gap you wish to address in the UBC curriculum, any informing literature or frameworks, and academic rigour.

Education is rapidly evolving at the hands of technology. Advances in human-computer interfaces, artificial intelligence, and machine learning have revolutionized the ways in which we can teach. In addition, computer science has seen a dramatic rise in popularity as a discipline itself. These two trends coalesce to make computer science (CS) education an especially interesting area to examine in a seminar setting.

This material is especially important for and relevant to students. Undergraduates themselves are no stranger to the teaching role. Apart from potential part-time student employment as a tutor, coach, or instructor, numerous students are already teaching today at UBC. The Department of Computer Science hires many undergraduate teaching assistants (UTAs) and provides only brief training on serving as a teaching assistant. Understandably, there is not sufficient time to delve into the bleeding edge of education research, though building better teaching teams could better serve the entire department and university. Beyond the classroom, teaching and mentorship are essential skills for engineers. The field is evolving rapidly and there is almost always upskilling to be done. Great senior engineers are able to effectively coach interns and junior engineers; knowledge of the best pedagogical practice would surely benefit aspiring developers.

Moreover, this is a gap in the Department of Computer Science course offerings. Currently, there is no coverage of computer science pedagogy directly, though of course there are ample offerings of computer science coursework and adult higher education (under ‘ADHE’).

In a seminar on computer science pedagogy, I would look to showcase recent work done in computing education research from professors such as Amy J. Ko at the University of Washington, Seattle (UW). There would be an emphasis on topics like teaching methods and tools, assessment modes, diversity in computer science, project-based learning, ‘flipped classrooms,’ computational thinking, and more. I would derive the course material and structure from existing courses at other universities, such as CSE492T: Equitable and Inclusive Computer Science Pedagogy, also from UW. However, I would supplement the course’s material to better serve my peers based on my experience as a teaching assistant.

Through this seminar, I hope to engage undergraduates in a meaningful, semester-long analysis on how to teach computer science effectively. We’ll explore this through the lens of technology, looking at current trends and exploring ways they could be leveraged in the classroom, alongside state-of-the-art CS education research. We will look at advanced material in the field, and students will be tasked with contextualizing this work within a real-world classroom setting during the term (via in-class observations). This will ensure an appropriate level of academic rigor is provided.

Learning objectives

Show the ultimate behavior change your seminar is hoping to achieve in terms of knowledge, skills, and attitudes.

By the end of this seminar, students are expected to be able to:

Learning environment

Outline strategies or approaches to foster a peer-based learning environment.

I am an ardent advocate for a ‘flipped classroom’ approach to teaching. This involves having students come to class having completed an introduction to the week’s topic, and then leveraging class time to discuss, apply, and analyze that pre-lecture work.

In practice, this would mean having students complete some kind of reading ahead of time and prepare discussion items based on series of questions assigned to the reading. (‘Reading’ here is used in a broad sense; the actual work may involve listening to a podcast or watching a video.) Finally, they would be given class time to challenge the reading itself and their peers’ perspectives on the topic at hand. This would apply for the first four to six weeks of the course.

After this, 1-2 students per week would be tasked with developing a lesson (in some area of computer science), applying the themes of our previous discussions. Again, their learning here will be peer driven. Students will have opportunities to ask questions during the presentation and provide constructive feedback on each other’s teaching styles.

Commitment to reconciliation and equity, diversity, and inclusion

Write a statement indicating how your course will take into consideration Goal 4 of the UBC Indigenous Strategic Plan and work towards decolonization through the inclusion of Indigenous Ways of Knowing, culture, histories, and worldview. Also indicate how you will foster an inclusive, equitable, and diverse learning community.

Equity, diversity, and inclusivity are the pillars of any meaningful classroom discussion, which is wholly central to a seminar-based course. In addition, designing a classroom structure and selecting content to raise awareness around Truth and Reconciliation in Canada is also vital.

I would create an inclusive classroom environment through using inclusive language (e.g., avoiding jargon, learning students’ pronouns) and ensuring everyone is given ample opportunity to participate. In addition, I will ensure to commit to diversity in the recruitment process, seeking individuals from a variety of educational backgrounds.

Moreover, I will look to intersect discussions on education with contemporary issues surrounding inequality, particularly in Canada. Consider, for instance, that students attending private schools would have far more access to high-quality computers. Computer science as a course is often not offered at schools which can’t afford it. Imagine saying the same thing about math! Inequality is something we need to address when it comes to CS pedagogy.

For a more complete treatment on this topic and how it relates to computer science curriculum, I would draw from this talk which I analyzed in CPSC 349.

Role of coordinator

Describe your positionality within the learning environment.

My objective as the seminar lead is to fade to the background as quickly as possible and focus on creating an environment for enriching discussion between students. To this end, I will facilitate an inclusive and welcoming environment, as alluded to earlier, that will allow students to participate without hesitation.

I’ll provide ample resources and guidance for students in forming their individual presentations. However, come presentation time, I will look to take a back seat to the students themselves. I think a topic like education in particular is one met with strong opinions, as everyone has been in the student’s seat before. Therefore, I expect there to be no shortage of discussion items. However, it’s my role to ensure that (a) discussion is guided to address the learning objectives and (b) students are given equal opportunity to participate. Aside from that, I stand to learn as much from the students as they can from me!

Coordinator suitability

Share your previous personal, professional, and/or academic experiences that have prepared you to successfully design and facilitate a seminar.

I bring a diversity of experiences in teaching, computer science, and software engineering. My most relevant experience is that as an Undergraduate Teaching Assistant (UTA). To date, I have taught 8 courses over 9 semesters, ranging from introductory computer science to upper-level computer networking to applied machine learning. This experience of collaborating with a vast diversity of professors on various topics has given me tremendous exposure to effective teaching styles and strategies. It’s also sparked a keen interest in pedagogy as a whole.

Beyond formal teaching, I also regularly support students as a ‘coach’ for academics and navigating the early career as a software engineer. I host public ‘office hours’ using Calendly for scheduling. So far, I’ve hosted 50+ sessions for students of virtually all years and majors. I occasion share common themes on YouTube to support more students. This, along with my experience as a UTA, has tremendously supported my public speaking and facilitation abilities.

Finally, I bring 1.5 years of industry experience that has provided me a solid foundation in CS fundamentals. This technical expertise will be essential in interpreting the latest trends in technology. In particular, I have worked in engineering at Tesla, Amazon, and Samsung; I anticipate that experience will allow me to demonstrate how in-class experience can translate to industry success. An often-unfortunate truth with CS education is a rift between theoretical concepts and modern-day practices. I hope to show the gap can be small if instruction is done applying some techniques from this very seminar.

Seminar grading and evaluation

Highlight the types of assignments and strategies for evaluation.

This is of course highly subject to change. The key objective is having students continually apply the new ideas being explored. The goal is to have them gather evidence through observations, continually reflect on the content (via discussions and in-class participation) and produce a culminating project to synthesize the accumulated learning.

Seminar recruitment and selection

Identify the eligibility criteria for enrolment and strategies for recruitment and selection.

This seminar seeks to identify students who are (a) knowledgeable about education, but have less exposure to computer science, (b) knowledgeable about computer science, but have minimal background in education, or (c) who have a background in an intersection of those two areas. The goal is to attract a diverse crowd with some relation to and a keen interest in CS pedagogy. Many of the courses’ key learning objectives are best achieved through discussion, and fruitful engagement is reliant on diverse backgrounds.

There will be particular emphasis placed on recruiting students with a background as an Undergraduate Teaching Assistant (UTA) at UBC, particularly from the Department of Computer Science itself. My goal is to recruit ~5-10 UTAs and provide with them with an enriching experience for potential future terms. As a current UTA myself, having taught 8 courses over 9 semesters at UBC, I plan on leveraging my personal connections within the department to maximize interest in the seminar.

Seminar schedule and plan or sample syllabus

Provide a schedule of topics or readings for the first 4 weeks, as well as the frequency of your seminar.

I would expect this seminar to be split across two sessions a week, each running for 90 minutes. In the first few weeks, the sessions would be a combination of lectures, activities, and discussions to set a solid foundation in computing education research.

In later weeks, the second lecture of each week would be replaced with student presentations based on selected topics and shortened to accommodate for time spent in observations. I would work closely with the department to ensure observations are done in accordance with policy and do not disrupt in-class learning.

Week Section Topic Readings Purpose Assessment
1 Introduction to computing education research Introduction to the course n/a Become acquainted with their peers; the course structure Motivate the course (provide an introductory overview lecture) Participation
3 Introduction to computing education research How learners learn Wieman, What All Instructors Should Know About Learning How People Learn II, chapters 2-5 Case studies: example of great lectures (and maybe some not so great ones) from YouTube, MOOCs Learn about how learning works; scratch the surface on how exact the learning process happens; get a sense of how an instructor can set students up for success Discussion post Participation
2 Introduction to computing education research All about computational thinking Denning and Tedre, Computational Thinking, chapter 1 Case studies: looking at computational thinking in the BC, Alberta curricula Learn about ‘computational thinking,’ teaching computer science in primary and secondary education, how play and problem-solving factor into CS education Discussion post Participation
4 Introduction to computing education research Justice in computer science education Ko, Critically Conscious Computing, chapter 2 Schanzer, Engineering a Scalable, Rigorous and Equitable K-12 CS Curriculum Learning about how issues of equity, diversity, and inclusivity factor into CS education; learn practices for creating an inclusive education environment; practice developing engaging, inclusive lessons; contextualizing justice within Canada, UBC Discussion post Participation Observations (start)

Subsequent weeks would follow similarly, delving into new topics but also providing a lecture per week entirely dedicated to student-led content. Further areas to explore include trends in technology (such as AI in the classroom), working as a teaching assistant, and developing teaching tools and software.

Reading list

List the readings for the seminar on one page.

Many of these resources are linked in their entirety, but it’s likely only a subset would be assigned as expected reading (e.g., a chapter, or a 15–20-minute clip in the case of a podcast or video).

Acknowledgements

This course is inspired from the University of Washington’s CSE492T. In particular, the idea for in-class observations comes directly from CSE492T’s assessment model, as do a portion of this course’s intended readings.

Also, a sincerest thank you to Steve Wolfman for offering to supervise this course’s delivery, and for providing guidance in drafting this proposal.