ICS4

Module 2 (March 18 - 29)

In this Module we'll explore machine learning, neural networks, and artificial intelligence, and current affairs and debates related to these topics. We'll also introduce Object-Oriented Programming (OOP) in Python. We will practice communicating information about our code by writing properly formatted docstrings and UMLs, and employ various methods for testing our code.

*** Module 2 Quiz Friday ***

  • Review classes notes/readings and videos under "Intro to OOP"
  • Have opinions about AI that you could discuss and support
  • Know your way around a docstring. See sample exercise below.
  • Write a docstring for each function
     
        def function_a(s1, num1):
            return s1[num1] == s1[-1]
    
        def function_b(s1, s2):
            return s2[len(s1)] == ‘m’ 
          

Puzzle Day!


WE'RE INVITED! Mark your calendars and register for CS Puzzle day 2019 (registration link in video comments).


The Imitation Game




Machine Learning and Neural Networks

To read: Introduction to Deep Learning

Machine Learning demo: keiwan.itch.io/evolution

Neural Networks: training our AI overlords

Are you Afraid of Artificial Intelligence?

Should we fear AI? Is near-term AGI even possible?


What does Elon think?


Software Development Project Stage 1

Intro to OOP

Here's a brief note on Classes in Python

  1. Read over this intro to Python OOP
  2. You may use the following questions to guide your reading:
    • Explain the benefits of object-oriented programming
    • What is the difference between a class and an object
    • What is the difference between properties and methods of a class
    • What is code reuse? How does it relate to inheritance?
    • What is polymorphism? How does it relate to methods?
  3. Try the Codecademy tutorial for a step-by-step walk-through of classes in Python
  4. For further explanation, watch T.Payne's Python OOP video below. Beware, he uses Python 2 in his demos

OOP UMLs

Watch T.Payne's UML video below and try the exercises at the end.


Assignment 2: March 29 2019

For this assignmnet, you can choose one of two options:

  • Option A: Use Python classes to create a simple battle game. See the rubric (basically the same as before, but note the addition of Docstrings under "documentation").
  • Option B: Write a research/reflection paper on AI (~750-1000 words). See the rubric and further instructions here

Quiz 2: March 29 2019

Note that any material presented in this module is fair game for the quiz (except UMLs video)

This work and other materials under github.com/ICS4U-ICS4C,
are licensed under Creative Commons Attribution 4.0 Int'l License.