Teaching is a hard task. There are a very few gifted teachers who can make any course interesting. You could be one of them. Your lectures could inspire others to love the teaching profession and perform better. We have identified several challenges in teaching Data Structures, Algorithms, Databases, and Operating Systems courses. We want to know your creative ways of addressing these challenges!

Who can participate?

Any faculty member who teaches/has taught computing courses in India in a higher education institution. (e.g., B.Tech/BE/M.Tech/ME/B.Sc/BCA/MCA programmes)

How can you participate?

You need to create a 10-15-minutes video that explains how you address a specific teaching challenge. Submission link: https://forms.gle/pmT4xRBAMKZnuE4w7.

What are the benefits?

Thanks to support from ACM India, we are delighted to announce prizes worth Rs. 30000. Participants with outstanding submissions will also be offered free registration to attend COMPUTE 2021 (virtually), to share their work with the wider community of computing faculty in India.

The selected videos shall be hosted on iSIGCSE / ACM websites. This would give you more visibility and give other teachers an opportunity to learn from you.

Important Dates:

Submission deadline: September 10, 2021 October 1, 2021 (No further extensions)
Announcement of winners: October 4, 2021 October 23, 2021
COMPUTE’21 conference presentations: November 18-20, 2021

Challenge Details

Example challenges that can be addressed

Data Structures:

  • Motivational challenges:
    1. Why is it necessary to learn how to structure data (shouldn’t we just focus on algorithms)?
    2. Why do abstract data types matter?
  • Conceptual challenges
    1. How does Union-Find (with/without path compression) and the amortized analysis actually work?
    2. How do we choose a specific data structure for a given problem? Example 1: If we need a priority queue, is it necessary to implement it as a heap, or can we use an ordered array/ordered linked list? Example 2: Should we care about the cache performance of data structures?

Algorithms

  • Motivational challenges:
    1. Why should we care about asymptotic worst-case running times?
    2. Why should we learn sorting algorithms when sorting is built into programming languages?
    3. Why should we learn about polynomial-time reductions?
  • Conceptual challenges
    1. How does the nature and size of data influence the choice of algorithms?
    2. How do we choose an appropriate algorithmic paradigm (e.g., greedy vs. dynamic programming) for a given problem?
    3. How do we know an algorithm is correct? For instance, how do we show that a greedy strategy is optimal? (Example: Prof Madhavan Mukund’s NPTEL lecture.)

Databases

  • Motivational challenges:
    1. Why should we study databases? Isn’t it sufficient to store data in spreadsheets?
    2. Why should we study normal forms (e.g., BCNF)?
    3. Why do users of databases need to know backend details like storage strategies, query evaluation, query optimization?
    4. Why do we need non-relational (NoSQL) databases
  • Conceptual challenges
    1. How does query optimization work?
    2. What is serializability of transactions and how does it work?
    3. What is concurrency control and how does it work?

Operating Systems

  • Motivational challenges:
    1. Why do we have to study OS? (We are not designing new operating systems since that work is already done.)
    2. Why do we need Virtual Memory?
    3. Why do we need a file-system as an abstraction?
    4. Why do we need virtualization?
  • Conceptual challenges
    1. What is the connection between swap space allocation and performance?
    2. What are the responsibilities of the OS? OS is not only the UI that we can see, most of the important tasks occur in the background.
    3. What happens when you boot a computer with an Operating System?
    4. How do we choose between the different synchronization primitives such as mutexes, conditional variables and semaphores?
    5. What are Threads and how do you achieve synchronization among cooperating threads?
    6. What are the security vulnerabilities that should be handled by an OS?

What needs to be submitted?

  • You are not limited to the challenges that are listed above! If you are NOT addressing one of these challenges, please explain the precise Teaching Challenge you are addressing. Note: Your challenge must be relevant to one of the above courses.
  • A short video (maximum length: 15 minutes) that clearly demonstrates how you address this Teaching Challenge. The lecture must be in English.
    • You are free to use any format (whiteboard, slides, etc.). We recommend that you use screen-recording software (e.g.,OBS Studio) to prepare your video. If you are comfortable with recording yourself, we suggest switching on your video camera. However, this is not necessary.
    • If you are introducing some code, you can use any programming language (or even pseudocode).
  • Your video will be evaluated on the criteria listed below:
    • Focuses on the identified Teaching Challenge.
    • Presents ideas in a logical flow.
    • Uses meaningful examples when needed to explain ideas.
    • Uses language that is easy for most students to understand. Errors in grammar, pronunciation, etc. that do not hinder clarity are OK.
    • Does not have major technical errors.




What happens after submission?

We will review all submissions and identify a shortlist. If your submission is shortlisted, we will schedule an interaction with you to discuss these questions:

Why do you believe that your approach helps address this challenge? (For example, you can describe any formal (or informal) studies you have conducted to assess your belief.)

How can others replicate your success? (We welcome submissions from all types of institutions! For example, your approach may be best-suited for a specific type of institution such as an engineering institution outside top-tier institutions such as IITs.)

Winners will be announced on October 23, 2021.

What happens at COMPUTE’21 (Nov 18 to 20, 2021)?

At COMPUTE’21, we will recognize the winners and invite them to speak about:

How others can implement these ideas.

Ways to jointly collaborate on evaluating this approach in other institutions.