SIGCSE 2018 workshop

Welcome to this workshop introducing Codecast, a web-based tool that allows you to create interactive coding  tutorials !

Rough Agenda

  1. Icebreaker
  2. Short presentation: Why we created Codecast and where we use it ?
  3. Hands-on 1: Play with the following two Codecasts and discover basic features by yourself (individual work)
    1. C language simple Codecast
      If the Codecast is not working, please use this link
    2. Arduino « Blink » Codecast
      If the Codecast is not working, please use this link
  4. Group brainstorming – Screencast vs Codecast: Weaknesses&Strengths brainstorm
    As a student,  how is Codecast different from a traditional video tutorial? Please use this collaborative memo
  5. Hands-on 2:
        1. Record your first Codecast using the C programming language based on the code below:
          #include <stdio.h>
          
          int main(void) {
             printf("Hello, SIGCSE 2018!");
             return 0;
          }
          

          Please click here to record your Codecast and then choose Guest

        2. Share your created Codecast with your neighbour!

     

  6. Chill and relax, it’s a 15 minute break 🙂
  7. Hands-on 3: Playing with Codecast – Advanced features, memory and data visualization for C, please have a look here or below:
  8. Hands-on 4: Record a small interactive tutorial for C or Arduino while experimenting with the step by step feature. Choose one :
    1. C language: Sorting values in a array.
      #include <stdio.h>
      
      int main(void)
      {
      	//! showArray(list, cursors=[i])
      	int list[] = {6, -2, 5, 12, 7, 3, 8, 18, -10, 1};
      	int n = 10;
      	int i,found;
      	int item = 7;
      
      	i = 0;
      	found = 0;
      	while (!found && i < n) {
      		if (item == list[i]) found++;
      		else i++;
      	}
      
      	if (!found) 
      	    printf("%d is not a member of the list.\n", item);
      	else
      	    printf("I found %d at index %d in the list.\n", item, i);
      
      	return 0;
      }
      

      Please click here to record your Codecast and then choose Guest

    2. C language: Using pointers with functions.
      #include <stdio.h>
      
      void interchange(int * a, int * b){
          int tmp = * a;
          * a = * b;
          * b = tmp;
      }
      int main(void){
          //! showMemory(start=65520)
         int a = 1;
         int b = 9;
         interchange(&a,&b);
         return 0;
      }

      Please click here to record your Codecast and then choose Guest

    3. C language: Matrix multiplication.
      #include <stdio.h>
      
      int main() {
          //! A = showArray2D(A, rowCursors=[i], colCursors=[k], width=.33)
          //! B = showArray2D(B, rowCursors=[k], colCursors=[j], width=.33)
          //! C = showArray2D(C, rowCursors=[i], colCursors=[j], width=.33)
          double A[2][2] = {{0.866, -0.500}, {0.500, 0.866}};
          double B[2][2] = {{0.500, -0.866}, {0.866, 0.500}};
          double C[2][2];
          for (int i = 0; i < 2; i++) {
              for (int j = 0; j < 2; j++) {
                  C[i][j] = 0;
                  for (int k = 0; k < 2; k++) {
                      C[i][j] += A[i][k] * B[k][j];
                  }
              }
          }
          for (int i = 0; i < 2; i++) {
              for (int j = 0; j < 2; j++) {
                  printf("%.3f ", C[i][j]);
              }
              printf("\n");
          }
          return 0;
      }

      Please click here to record your Codecast and then choose Guest

    4. Arduino language: Knight rider – LED chaser.
      // Knight rider Codecast example
      // SIGCSE 2018 workshop
      
      void setup() {
          for(int pin=0; pin<14; pin++) {
              pinMode(pin, OUTPUT);
              digitalWrite(pin, LOW);
          }
      }
      
      void loop() {
          for(int pin=0; pin<13; pin++) {
              digitalWrite(pin+1, HIGH);
              digitalWrite(pin, LOW);
              delay(50);
          }
          for(int pin=12; pin>=0; pin--) {
              digitalWrite(pin, HIGH);
              digitalWrite(pin+1, LOW);
              delay(50);
          }
      }

      Please click here to record your Codecast (sorry, the Codecast interface is still in french)

  9. Share your Codecast with others by placing a sticky on the collaborative memo
  10. Roadmap for the continued development of Codecast
  11. Conclusion and final thoughts on how to improve or participate in the project

By the way, everything you’ve seen in this workshop is open-source so please have a look at our github to know more 😀