Skip to content

CYFI Curriculum

Aisha Bello edited this page Jun 24, 2016 · 5 revisions


WEEKEND 1: Intro to the Computer, OS, Software, CMD and Internet...


DAY 1:

  • Know the basic parts of the computer and their functions
  • Intro to the Windows OS and some application software (Paint, Text Editor, Calculator...)
  • Introduction to directories (e.g create, save, edit) a file and folders
  • Learn how to install and run a software (SublimeText or pycharm and Python will also be installed, also install a fun typing tutor for the typing assignment)

DAY 2:

SESSION 1
  • Explain: "Why SublimeText over Notepad?"(Some tasks can be achieved with different tools from different vendors)
  • Learn file editing operations: Save/Save As, Open, New, Print, Close
SESSION 2
  • Introduction to Microsoft word
SESSION 3
  • Introduction to the internet (Google, Wikipedia, ...)
HOME TASK
  • A typing assignment to get students comfortable with typing on the keyboard
  • An internet search assignment to get students comfortable with searching the world wide web for information
  • Browse www.python.org and read up to your fill



WEEKEND 2: Intro to the Computer, OS, Software, CMD and Internet...Part 2


DAY 1:

REVISION
  • Recap of previous weekend's work
  • Help students with challenges from home tasks
  • Complete setting up Python (if need be)

DAY 2:

SESSION 1
  • Meet the command line (Basics: cd, mkdir, ren, copy, del, help)
SESSION 2
  • Intro to computer programming
  • Learn the basic flow of a program (Instructions are executed step-by-step)
  • Explain: 'Why Python?' (Name some common programming languages)
  • Write your first program: "print ('Hello World')"
SESSION 3
  • Introduction to Scratch (or Turtle) and implementing a basic flow diagram and playing a game using the drag and drop features on Scratch
HOME TASK
  • A typing assignment to get students comfortable with typing on the keyboard
  • Take home assignment on Scratch (or Turtle)



WEEKEND 3: Learn Python - Part 1


DAY 1:

REVISION
  • Recap of previous weekend's work
  • Help students with challenges from home tasks
  • Print to stdout (print)

DAY 2:

SESSION 1
  • Introduction data types: strings, numbers, floats, booleans
  • Introduction to variables and assignment
  • Introduction to operators and operations
  • Control: loops and conditionals
SESSION 2
  • Read from stdin (raw_input, input)
HOME TASK
  • Play around with the command line: mkdir C:\projects



WEEKEND 4: Learn Python - Part 3


DAY 1:

REVISION
  • Recap of previous weekend's work
  • Help students with challenges from home tasks
  • 1-2 lightning talk(s) explaining how programming is used

DAY 2:

SESSION 1
  • Data-structures (Part 1): Lists, tuples, dictionaries
  • Data-structures (Part 2): Dictionaries, JSON
  • Functions
SESSION 2
  • Modules, imports...
  • Exceptions
  • OOP, classes and methods
SESSION 3
  • Highlight different application domains for the Python programming language
HOME TASK
  • Check for the difference between JSON and dictionaries
  • Students will have a week to pick an area of interest in the application of Python



WEEKEND 5: Go Specialized (Tinkering with Raspberry Pi's)


DAY 1:

REVISION
  • Recap of previous weekend's work
  • Help students with challenges from home tasks
  • Students watch inspiring videos of the different things that can be done with Python
  • Students are grouped and introduced into their chosen areas of interest
    Groups:
    • Web development
    • Data Science
    • Internet of Things (IoT)
    • Game development

DAY 2: (Game Activities differ in each group)

Students watch inspiring videos of the different things that can be done with Python

Web Development:

  • SESSION 1
    • Explain: 'How websites work?'
    • Explain: 'Servers vs Clients (Browsers)'
    • Explain: 'Database, what it's used for, and how it works'
    • Client-side Tools: Intro to HTML, CSS, JS
HOME TASK
  • Build a web page that will generate a page displaying:
    Hello,
    My name is XYZ
    
    (XYZ being the student's name)

Data Science:

  • SESSION 2
    • This tutorial lets the students tell a story with code. It demonstrates the simple use of if/else statements to evaluate user input and generate a cute fairy story. This is a fun way to get started with Python programming that lets you really use your imagination and storytelling abilities! -Ref (https://www.raspberrypi.org/learning/storytime/) At this point some subtle concepts in data science would be highlighted

Game Development:



WEEKEND 6: More Web, Fun and Gaming with the Raspberry Pis


DAY 1:

REVISION
  • Recap of previous weekend's work
  • Help students with challenges from home tasks

DAY 2: Project Day (According to groups)

Web Development:

    • SESSION 1
  • Intro to the Flask web development framework
  • Requests and Response
  • View functions
  • Template Rendering
  • Configuration
  • HOME TASK
    • Build a flask app that will generate a page displaying:
      Hello,
      My name is XYZ
      
      (XYZ being the student's name)
    • Browse for sqlite database and learn more about it
    • Learn about database table, row, relationships


Data Science:

  • Learn by building:
    • SESSION 2

-Using sensors and output devices is a great way to make computer programs more interactive. The Raspberry Pi Sense HAT contains a whole set of sensors that can be used to detect movement, which will be used in this activity to take a digital pet for a walk. -Ref (https://www.raspberrypi.org/learning/pixel-pet/worksheet/)

Game Development:

  • Learn by building:
    • SESSION 2
    -In this resource students will take more steps with the programming language Python to draw shapes, patterns, and spirals. They will use a module named Turtle. Along the way they will learn how to think in sequences, and use loops to repeat a sequence. This is a great stepping stone from a visual programming language like Scratch to the text-based environment of Python. -Ref (https://www.raspberrypi.org/learning/turtley-amazing/)
Clone this wiki locally