SoC2020 – Week 3

Jun, 29 – Jul, 03

Online Meetings:
1. Tuesday Jun, 30 # 12:00 – 16:00 EEST (11:00 – 15:00 CEST) General meeting
2. Wednesday Jul, 1 # 12:00 – 13:00 EEST (11:00 – 12:00 CEST) Git and GitHub tutorial
3. Wednesday Jul, 1 # 13:00 – 14:00 EEST (12:00 – 12300 CEST) Laravel tutorial
4. Thursday Jul, 02 # 16:00 – 20:00 EEST (15:00 – 19:00 CEST) General meeting
5. Friday Jul, 03 # 18:00 EEST (17:00 CEST) Hangman project

  1. Programming Weekly:
    Two problems from LeetCode to be solved:
    a. (Easy) Remove Duplicates from Sorted List
    b. (Medium) Reverse Linked List II
  2. Read a Paper Biweekly:
    Resor E. (2019) Finding the Local n Locations: Working with GPS non-use in Nairobi, ACM XRDS vol.26 No.2
    – Will be discussed on Friday Jul, 10.
  3. Head First Design Patterns:
    Chapter 2: The Observer Pattern: Keeping your Objects in the know
    We examine “Observer Pattern”.
    Goal: Build examples to demonstrate this case.
  4. Robotics and Automation:
    Intro to using motors with Arduino.
  5. Google Hashcode:
    We continue with this problem. This week we should complete this problem.
    Self-driving rides. In this competition problem, we’ll be looking at how a fleet of self-driving vehicles can efficiently get commuters to their destinations in a simulated city.
    Let’s solve this problem by Jul, 3.
  6. Alumni Speech:
    Will start soon.
  7. Tutorials:
    Third tutorial on Git and GitHub – Fork.
    Wednesday Jul, 01 (12:00 EEST – 11:00 CEST)
    Laravel tutorial will follow.
  8. Projects:
    a. Building “Hangman” (Android, React, and plain JavaScript app using some open API for words)
    b. Complete requirements and database design and start implementation of “Trello Clone” (Full Stack Web Application and Mobile version in the future)
    c. Building a simple Windows Forms app with C++.

SoC2020 – Week 2

Jun, 22 – Jun, 26

Online Meetings:
Α. Tuesday Jun, 23 – 12:00 – 16:00 EEST (11:00 – 15:00 CEST)
Β. Thursday Jun, 25 – 16:00 – 20:00 EEST (15:00 – 19:00 CEST)

  1. Programming Weekly:
    Two problems from LeetCode to be solved:
    a. (Easy) Two Sum
    b. (Medium) Permutations
  2. Read a Paper Biweekly:
    We continue with this paper:
    Ruoti S., Kaiser B., Yerukhimovich A., Clark J., and Cunningham R. (2019) Blockchain Technology: What Is It Good for? ACM Queue Vol. 17, No. 5.
    – Will be discussed on Friday Jun, 26.
  3. Head First Design Patterns:
    We continue with Chapter 1: Welcome to Design Patterns.
    We examine “Encapsulating Behaviors” and “Programming to an Interface”.
    Goal: Build examples to demonstrate this case.
  4. Robotics and Automation:
    Intro to Arduino. Make an electronic dice.
  5. Google Hashcode:
    We continue with this problem. This week we should build a prototype and find which algorithm may help.
    Self-driving rides. In this competition problem, we’ll be looking at how a fleet of self-driving vehicles can efficiently get commuters to their destinations in a simulated city.
    Let’s solve this problem by Jul, 3.
  6. Alumni Speech:
    Will start soon.
  7. Tutorials:
    Second tutorial on Git and GitHub – Branching and Merging.
    Wednesday Jun, 17 (12:00 EEST – 11:00 CEST)
    Laravel and React tutorials will follow.
  8. Projects:
    a. Building “Hangman” (Android, React, and plain JavaScript app using some open API for words)
    b. Complete requirements and database design and start implementation of “Trello Clone” (Full Stack Web Application and Mobile version in the future)
    c. Building a simple Windows Forms app with C++.

SoC2020 – Week 1

Jun, 15 – Jun, 19

Online Meetings:
Α. Tuesday Jun, 16 – 12:00 – 16:00 EEST (11:00 – 15:00 CEST)
Β. Thursday Jun, 18 – 16:00 – 20:00 EEST (15:00 – 19:00 CEST)

  1. Programming Weekly:
    Two problems from LeetCode to be solved:
    a. (Easy) Reverse Integer
    b. (Medium) Integer to Roman
  2. Read a Paper Biweekly:
    Ruoti S., Kaiser B., Yerukhimovich A., Clark J., and Cunningham R. (2019) Blockchain Technology: What Is It Good for? ACM Queue Vol. 17, No. 5.
    – Will be discussed on Friday Jun, 26.
  3. Head First Design Patterns:
    Chapter 1: Welcome to Design Patterns.
    We examine “Encapsulating Behaviors” and “Programming to an Interface”.
    Goal: Build examples to demonstrate this case.
  4. Robotics and Automation:
    Intro to Arduino. Blinking led and control blinking using a potentiometer.
  5. Google Hashcode:
    Self-driving rides. In this competition problem, we’ll be looking at how a fleet of self-driving vehicles can efficiently get commuters to their destinations in a simulated city.
    Let’s solve this problem by Jul, 3.
  6. Alumni Speech:
    Will start soon.
  7. Tutorials:
    First tutorial on Git and GitHub.
    Wednesday Jun, 17 (12:00 EEST – 11:00 CEST)
  8. Projects:
    a. Planning “Hangman” (Android and React app using some open API for words)
    b. Planning “Trello Clone” (Full Stack Web Application and Mobile version in the future)
    c. Investigating the potential for C++ project(s).

Summer of Code 2020

A number of summer programming activities for my current and past students.

It runs during the summer, from Jun 15 to Sep 30 and the main goal for the participants is to practice frequently and get into the habit of adopting and working on a pet project.

Activities:

  1. Programming Weekly: Each Monday we set 2 LeetCode problems that should be solved in any language you prefer.
  2. Read a Paper Biweekly: We select an interesting (but not very difficult) research paper to read and discuss every 2 weeks.
  3. Head First Design Patterns: We go through this excellent book in order to understand important Design Patterns and build example cases in several programming languages to demonstrate when they are necessary.
  4. Robotics and Automation: A number of simple experiments using Arduino and/or Raspberry Pi aiming to build some bigger projects during September.
  5. Google Hashcode: The plan is to solve as many previous Hashcode problems as possible in order to prepare for future participation.
  6. Alumni Speech: A number of successful alumni are invited to talk to participants and inspire them to keep going.
  7. Tutorials: Several tutorials will take place on interesting topics like Git and GitHub, Drupal 9, SCRUM, and Kali Linux. More may be added depending on the participants interests.
  8. Projects: A number of large-scale projects are implemented giving the chance to face bigger challenges and near real life activities and complexity. These projects involve many different technologies and tools including Back-End, Front-End, and Mobile development.

All activities are online using Google Hangouts, Discord, and Slack. Regular updates will be posted in order to record progress and achievements.