Difference between revisions of "BSTE:IntroductionToPracticalArtificialIntelligence"

From IU
Jump to navigation Jump to search
(Created page with "= Introduction to Practical Artificial Intelligence = * <span>'''Course name:'''</span> Practical Artificial Intelligence * <span>'''Course number:'''</span> N/A == Course C...")
 
 
Line 1: Line 1:
  +
 
= Introduction to Practical Artificial Intelligence =
 
= Introduction to Practical Artificial Intelligence =
  +
* '''Course name''': Introduction to Practical Artificial Intelligence
  +
* '''Code discipline''': N/A
  +
* '''Subject area''': Artificial intelligence
   
  +
== Short Description ==
* <span>'''Course name:'''</span> Practical Artificial Intelligence
 
  +
This course covers the following concepts: Practical tools to implement artificial intelligence; Methods and approaches to solving intellectual tasks.
* <span>'''Course number:'''</span> N/A
 
   
== Course Characteristics ==
+
== Prerequisites ==
   
  +
=== Prerequisite subjects ===
== What subject area does your course (discipline) belong to? ==
 
   
Artificial intelligence
 
   
=== Key concepts of the class ===
+
=== Prerequisite topics ===
   
* Practical tools to implement artificial intelligence
 
* Methods and approaches to solving intellectual tasks
 
   
  +
== Course Topics ==
=== What is the purpose of this course? ===
 
  +
{| class="wikitable"
  +
|+ Course Sections and Topics
  +
|-
  +
! Section !! Topics within the section
  +
|-
  +
| Introduction and reasoning ||
  +
# Introduction to artificial intelligence
  +
# History of artificial intelligence
  +
# Considering AI as function
  +
# Reasoning approaches
  +
|-
  +
| Text and speech processing ||
  +
# Natural language processing (NLP) for syntax analysis
  +
# NLP for semantic analysis
  +
# Speech processing
  +
|-
  +
| Images and video processing ||
  +
# Image processing with OpenCV
  +
# Models for image processing
  +
# Machine learning for image understanding
  +
|-
  +
| Machine learning for practice. Recommendations ||
  +
# Machine learning as a framework
  +
# Recommendation
  +
# Classification practicum
  +
# Clustering practicum
  +
|}
  +
== Intended Learning Outcomes (ILOs) ==
   
  +
=== What is the main purpose of this course? ===
The course gives a general overview of the history, theoretical basis and technological stack for what we now call &quot;artificial intelligence&quot; (AI). Today AI is not only a research area, but also a complex set of exact algorithms, technologies, frameworks, software and services, which can be easily integrated in modern software. In this course students will learn the history, major theoretical points, structure of knowledge related to AI. The major goal of the course is to practice contemporary AI technologies and frameworks, including reasoning, natural language processing, computer vision, and machine learning. Working individually and in teams, students will solve a variety of AI problems, both from scratch and using existing solutions.
 
  +
The course gives a general overview of the history, theoretical basis and technological stack for what we now call "artificial intelligence" (AI). Today AI is not only a research area, but also a complex set of exact algorithms, technologies, frameworks, software and services, which can be easily integrated in modern software. In this course students will learn the history, major theoretical points, structure of knowledge related to AI. The major goal of the course is to practice contemporary AI technologies and frameworks, including reasoning, natural language processing, computer vision, and machine learning. Working individually and in teams, students will solve a variety of AI problems, both from scratch and using existing solutions.
   
=== Course objectives based on Bloom’s taxonomy ===
+
=== ILOs defined at three levels ===
 
=== - What should a student remember at the end of the course? ===
 
 
By the end of the course, the students should be able to remember and recognize
 
   
  +
==== Level 1: What concepts should a student know/remember/explain? ====
  +
By the end of the course, the students should be able to ...
 
* Ways to present and describe artificial intelligence in software solutions
 
* Ways to present and describe artificial intelligence in software solutions
 
* The best developed intelligent technologies that perform with near-human quality
 
* The best developed intelligent technologies that perform with near-human quality
Line 31: Line 59:
 
* Factors to decide whether to go for AI or stay in conventional software development approach
 
* Factors to decide whether to go for AI or stay in conventional software development approach
   
=== - What should a student be able to understand at the end of the course? ===
+
==== Level 2: What basic practical skills should a student be able to perform? ====
  +
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to describe and explain
 
 
 
* Major approaches to construct AI solutions
 
* Major approaches to construct AI solutions
 
* Popular libraries and APIs to solve AI tasks
 
* Popular libraries and APIs to solve AI tasks
Line 41: Line 67:
 
* Major approaches to natural language and speech understanding
 
* Major approaches to natural language and speech understanding
   
=== - What should a student be able to apply at the end of the course? ===
+
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
  +
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to
 
 
 
* Create game playing bots using heuristic approaches
 
* Create game playing bots using heuristic approaches
 
* Implement knowledge databases
 
* Implement knowledge databases
 
* Implement systems with speech processing and generation
 
* Implement systems with speech processing and generation
 
* Implement image processing and computer vision solutions
 
* Implement image processing and computer vision solutions
* Perform basic data analysis using machine learning
+
* Perform basic data analysis using machine learning
  +
== Grading ==
   
=== Course evaluation ===
+
=== Course grading range ===
  +
{| class="wikitable"
 
{|
+
|+
|+ Course grade breakdown
 
!align="center"|
 
!align="center"|
 
!align="center"| '''Proposed points'''
 
 
|-
 
|-
  +
! Grade !! Range !! Description of performance
|align="center"| Labs/seminar classes
 
|align="center"| 20
 
|align="center"| 0
 
 
|-
 
|-
  +
| A. Excellent || 80-100 || -
|align="center"| Interim performance assessment
 
|align="center"| 30
 
|align="center"| 0
 
 
|-
 
|-
  +
| B. Good || 60-79 || -
|align="center"| Assessments
 
|align="center"| 0
 
|align="center"| 60
 
 
|-
 
|-
  +
| C. Satisfactory || 40-59 || -
|align="center"| Exams
 
  +
|-
|align="center"| 50
 
  +
| D. Poor || 0-39 || -
|align="center"| 40
 
 
|}
 
|}
   
  +
=== Course activities and grading breakdown ===
If necessary, please indicate freely your course’s features in terms of students’ performance assessment:
 
  +
{| class="wikitable"
 
  +
|+
Lectures and labs are followed by the home works (14). Home works are covering 60% of the grade. 40% of the grade fall to exam session, which will be in the form of solving practical task, taking 1 hour for best student, 2 hours for average students and 3 hours cut-off deadline.
 
 
=== Grades range ===
 
 
{|
 
|+ Course grading range
 
!align="center"|
 
!align="center"|
 
!align="center"| '''Proposed range'''
 
 
|-
 
|-
  +
! Activity Type !! Percentage of the overall course grade
|align="center"| A. Excellent
 
|align="center"| 90-100
 
|align="center"| 80-100
 
 
|-
 
|-
  +
| Labs/seminar classes || 0
|align="center"| B. Good
 
|align="center"| 75-89
 
|align="center"| 60-79
 
 
|-
 
|-
  +
| Interim performance assessment || 0
|align="center"| C. Satisfactory
 
|align="center"| 60-74
 
|align="center"| 40-59
 
 
|-
 
|-
  +
| Assessments || 60
|align="center"| D. Poor
 
  +
|-
|align="center"| 0-59
 
  +
| Exams || 40
|align="center"| 0-39
 
 
|}
 
|}
   
  +
=== Recommendations for students on how to succeed in the course ===
=== Resources and reference material ===
 
   
Main textbook:
 
   
  +
== Resources, literature and reference materials ==
* “Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit,” Steven Bird, Ewan Klein, and Edward Loper. [https://www.nltk.org/book/ [link]]
 
* Practical Python and OpenCV. [https://www.pyimagesearch.com/practical-python-opencv/ [link]]
 
   
  +
=== Open access resources ===
Other reference material:
 
  +
* “Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit,” Steven Bird, Ewan Klein, and Edward Loper. [link]
  +
* Practical Python and OpenCV. [link]
  +
* Ray Kurzweil. The Singularity Is Near: When Humans Transcend Biology. [link]
  +
* Amazon Polly: Text-To-Speech service. [link]
  +
* Get Started with TensorFlow. [link]
  +
* Natural Language Processing with Python. [link]
  +
* Hands-On Machine Learning with Scikit-Learn and TensorFlow. [link]
   
  +
=== Closed access resources ===
* Ray Kurzweil. The Singularity Is Near: When Humans Transcend Biology. [https://www.amazon.com/Singularity-Near-Humans-Transcend-Biology/dp/0143037889 [link]]
 
* Amazon Polly: Text-To-Speech service. [http://docs.aws.amazon.com/polly/latest/dg/what-is.html [link]]
 
* Get Started with TensorFlow. [https://www.tensorflow.org/get_started/ [link]]
 
* Natural Language Processing with Python. [http://www.nltk.org/book/ [link]]
 
* Hands-On Machine Learning with Scikit-Learn and TensorFlow. [https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1491962291/ [link]]
 
   
== Course Sections ==
 
   
  +
=== Software and tools used within the course ===
The main sections of the course and approximate hour distribution between them is as follows:
 
  +
  +
= Teaching Methodology: Methods, techniques, & activities =
   
  +
== Activities and Teaching Methods ==
{|
 
  +
{| class="wikitable"
|+ Course Sections
 
  +
|+ Activities within each section
!align="center"| '''Section'''
 
! '''Section Title'''
 
!align="center"| '''Teaching Hours'''
 
 
|-
 
|-
  +
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4
|align="center"| 1
 
| Introduction and reasoning
 
|align="center"| 12
 
 
|-
 
|-
  +
| Development of individual parts of software product code || 1 || 1 || 1 || 1
|align="center"| 2
 
| Text and speech processing
 
|align="center"| 16
 
 
|-
 
|-
  +
| Homework and group projects || 1 || 1 || 1 || 1
|align="center"| 3
 
| Images and video processing
 
|align="center"| 12
 
 
|-
 
|-
  +
| Essays || 1 || 0 || 0 || 0
|align="center"| 4
 
  +
|}
| ML for practice. Recommendations
 
  +
== Formative Assessment and Course Activities ==
|align="center"| 20
 
|}
 
   
=== Section 1 ===
+
=== Ongoing performance assessment ===
   
==== Section title: ====
+
==== Section 1 ====
  +
{| class="wikitable"
 
  +
|+
Introduction and reasoning
 
 
=== Topics covered in this section: ===
 
 
* Introduction to artificial intelligence
 
* History of artificial intelligence
 
* Considering AI as function
 
* Reasoning approaches
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
{|
 
!align="center"|
 
!align="center"| '''Yes/No'''
 
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
|align="center"| Development of individual parts of software product code
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Implement https://en.wikipedia.org/wiki/Nim game bot || 1
|align="center"| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Solve simple problems for CLIPS-based expect system completion || 1
|align="center"| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Run inference for Bayesian network with given observations || 1
|align="center"| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Discuss article in media about artificial intelligence breakthrough || 1
|align="center"| Reports
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Implement tic-tac-toe bot || 0
|align="center"| Essays
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Solve non-linear equation with symbolic computation package || 0
|align="center"| Oral polls
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Implement Wolfram Alpha bot || 0
|align="center"| Discussions
 
|align="center"| 0
 
|}
 
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# Implement https://en.wikipedia.org/wiki/Nim game bot
 
# Solve simple problems for CLIPS-based expect system completion
 
# Run inference for Bayesian network with given observations
 
# Discuss article in media about artificial intelligence breakthrough
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Implement tic-tac-toe bot
 
# Solve non-linear equation with symbolic computation package
 
# Implement Wolfram Alpha bot
 
# Implement decision tree framework
 
 
=== Test questions for final assessment in this section ===
 
 
# Implement a bot to answer general question on math
 
# Find local minima and maxima of the function
 
# Implement an expert system to detect graph cycles
 
# Implement a bot playing simple board game with minimax algorithm
 
 
=== Section 2 ===
 
 
==== Section title: ====
 
 
Text and speech processing
 
 
=== Topics covered in this section: ===
 
 
* Natural language processing (NLP) for syntax analysis
 
* NLP for semantic analysis
 
* Speech processing
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
{|
 
!align="center"|
 
!align="center"| '''Yes/No'''
 
 
|-
 
|-
  +
| Question || Implement decision tree framework || 0
|align="center"| Development of individual parts of software product code
 
  +
|}
|align="center"| 1
 
  +
==== Section 2 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
|align="center"| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Build a syntax tree of a sentence || 1
|align="center"| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Determine token types for all words in a sentence || 1
|align="center"| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Recognize text in a file with speech || 1
|align="center"| Reports
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Visualize histogram of a wave file || 1
|align="center"| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Extract subject and object from a sentence || 0
|align="center"| Oral polls
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Visualize text similarity in a dataset with doc2vec and t-SNE || 0
|align="center"| Discussions
 
|align="center"| 0
 
|}
 
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# Build a syntax tree of a sentence
 
# Determine token types for all words in a sentence
 
# Recognize text in a file with speech
 
# Visualize histogram of a wave file
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Extract subject and object from a sentence
 
# Visualize text similarity in a dataset with doc2vec and t-SNE
 
# State a problem for symbolic algebra freamework in natural language
 
# Implement a command with a voice message
 
# Implement simple programming language
 
# Detect a chord by a wave file
 
 
=== Test questions for final assessment in this section ===
 
 
# Implement programming language for a given description
 
# Implement a bot, that pronounces a fact on a given topic
 
# Implement comparison of two texts with respect to syntactic complexity
 
 
=== Section 3 ===
 
 
==== Section title: ====
 
 
Images and video processing
 
 
==== Topics covered in this section: ====
 
 
* Image processing with OpenCV
 
* Models for image processing
 
* Machine learning for image understanding
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
{|
 
!align="center"|
 
!align="center"| '''Yes/No'''
 
 
|-
 
|-
  +
| Question || State a problem for symbolic algebra freamework in natural language || 0
|align="center"| Development of individual parts of software product code
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Implement a command with a voice message || 0
|align="center"| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Implement simple programming language || 0
|align="center"| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Detect a chord by a wave file || 0
|align="center"| Testing (written or computer based)
 
  +
|}
|align="center"| 0
 
  +
==== Section 3 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
|align="center"| Reports
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Count simple object in a picture || 1
|align="center"| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Label objects on a picture || 1
|align="center"| Oral polls
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Filter out noisy image || 1
|align="center"| Discussions
 
|align="center"| 0
 
|}
 
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# Count simple object in a picture
 
# Label objects on a picture
 
# Filter out noisy image
 
# Find contours of cookies on the image
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# Build an eye detector
 
# Use SIFT descriptors to detect images using bag of words representation
 
# Subtract and measure fishes on a contract background
 
# Track labelled objects in a video
 
 
==== Test questions for final assessment in this section ====
 
 
# Recognize handwritten text
 
# Convert chessboard image into notation
 
# Measure a distance the cat cover in the video
 
# How many balls are there on the image?
 
 
=== Section 4 ===
 
 
==== Section title: ====
 
 
Machine learning for practice. Recommendations
 
 
==== Topics covered in this section: ====
 
 
* Machine learning as a framework
 
* Recommendation
 
* Classification practicum
 
* Clustering practicum
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
{|
 
!align="center"|
 
!align="center"| '''Yes/No'''
 
 
|-
 
|-
  +
| Question || Find contours of cookies on the image || 1
|align="center"| Development of individual parts of software product code
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Build an eye detector || 0
|align="center"| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Use SIFT descriptors to detect images using bag of words representation || 0
|align="center"| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Subtract and measure fishes on a contract background || 0
|align="center"| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Track labelled objects in a video || 0
|align="center"| Reports
 
  +
|}
|align="center"| 0
 
  +
==== Section 4 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
|align="center"| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Run PCA using SVD for a given matrix || 1
|align="center"| Oral polls
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Remove unnecessary features || 1
|align="center"| Discussions
 
  +
|-
|align="center"| 0
 
  +
| Question || Split a dataset for a k-fold cross-validation || 1
|}
 
  +
|-
 
  +
| Question || Perform a grid search of hyper-parameters || 1
=== Typical questions for ongoing performance evaluation within this section ===
 
  +
|-
 
  +
| Question || Find explainable predictors for a real data || 0
# Run PCA using SVD for a given matrix
 
  +
|-
# Remove unnecessary features
 
  +
| Question || Separate cats from dogs in a dataset || 0
# Split a dataset for a k-fold cross-validation
 
  +
|-
# Perform a grid search of hyper-parameters
 
  +
| Question || Train and estimate a model using k-fold cross-validation || 0
 
  +
|-
==== Typical questions for seminar classes (labs) within this section ====
 
  +
| Question || Detect how similar are the interests of 2 users || 0
 
  +
|}
# Find explainable predictors for a real data
 
  +
=== Final assessment ===
# Separate cats from dogs in a dataset
 
  +
'''Section 1'''
# Train and estimate a model using k-fold cross-validation
 
  +
# Implement a bot to answer general question on math
# Detect how similar are the interests of 2 users
 
  +
# Find local minima and maxima of the function
 
  +
# Implement an expert system to detect graph cycles
==== Test questions for final assessment in this section ====
 
  +
# Implement a bot playing simple board game with minimax algorithm
 
  +
'''Section 2'''
  +
# Implement programming language for a given description
  +
# Implement a bot, that pronounces a fact on a given topic
  +
# Implement comparison of two texts with respect to syntactic complexity
  +
'''Section 3'''
  +
# Recognize handwritten text
  +
# Convert chessboard image into notation
  +
# Measure a distance the cat cover in the video
  +
# How many balls are there on the image?
  +
'''Section 4'''
 
# Implement person classifier by voice
 
# Implement person classifier by voice
 
# Implement human classifier by face
 
# Implement human classifier by face
 
# Implement recommender system for cold start
 
# Implement recommender system for cold start
 
# Implement recommender system for a provided dataset
 
# Implement recommender system for a provided dataset
  +
  +
=== The retake exam ===
  +
'''Section 1'''
  +
  +
'''Section 2'''
  +
  +
'''Section 3'''
  +
  +
'''Section 4'''

Latest revision as of 13:47, 29 August 2022

Introduction to Practical Artificial Intelligence

  • Course name: Introduction to Practical Artificial Intelligence
  • Code discipline: N/A
  • Subject area: Artificial intelligence

Short Description

This course covers the following concepts: Practical tools to implement artificial intelligence; Methods and approaches to solving intellectual tasks.

Prerequisites

Prerequisite subjects

Prerequisite topics

Course Topics

Course Sections and Topics
Section Topics within the section
Introduction and reasoning
  1. Introduction to artificial intelligence
  2. History of artificial intelligence
  3. Considering AI as function
  4. Reasoning approaches
Text and speech processing
  1. Natural language processing (NLP) for syntax analysis
  2. NLP for semantic analysis
  3. Speech processing
Images and video processing
  1. Image processing with OpenCV
  2. Models for image processing
  3. Machine learning for image understanding
Machine learning for practice. Recommendations
  1. Machine learning as a framework
  2. Recommendation
  3. Classification practicum
  4. Clustering practicum

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

The course gives a general overview of the history, theoretical basis and technological stack for what we now call "artificial intelligence" (AI). Today AI is not only a research area, but also a complex set of exact algorithms, technologies, frameworks, software and services, which can be easily integrated in modern software. In this course students will learn the history, major theoretical points, structure of knowledge related to AI. The major goal of the course is to practice contemporary AI technologies and frameworks, including reasoning, natural language processing, computer vision, and machine learning. Working individually and in teams, students will solve a variety of AI problems, both from scratch and using existing solutions.

ILOs defined at three levels

Level 1: What concepts should a student know/remember/explain?

By the end of the course, the students should be able to ...

  • Ways to present and describe artificial intelligence in software solutions
  • The best developed intelligent technologies that perform with near-human quality
  • Ideas behind building intelligent systems in reasoning, natural language processing, recommendations, computer vision, speech processing
  • Necessary parts to build an intelligent system with computer vision and machine learning technologies
  • Factors to decide whether to go for AI or stay in conventional software development approach

Level 2: What basic practical skills should a student be able to perform?

By the end of the course, the students should be able to ...

  • Major approaches to construct AI solutions
  • Popular libraries and APIs to solve AI tasks
  • Algorithms to construct intelligent agents from scratch
  • Basic methods of image processing and machine learning
  • Major approaches to natural language and speech understanding

Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?

By the end of the course, the students should be able to ...

  • Create game playing bots using heuristic approaches
  • Implement knowledge databases
  • Implement systems with speech processing and generation
  • Implement image processing and computer vision solutions
  • Perform basic data analysis using machine learning

Grading

Course grading range

Grade Range Description of performance
A. Excellent 80-100 -
B. Good 60-79 -
C. Satisfactory 40-59 -
D. Poor 0-39 -

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Labs/seminar classes 0
Interim performance assessment 0
Assessments 60
Exams 40

Recommendations for students on how to succeed in the course

Resources, literature and reference materials

Open access resources

  • “Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit,” Steven Bird, Ewan Klein, and Edward Loper. [link]
  • Practical Python and OpenCV. [link]
  • Ray Kurzweil. The Singularity Is Near: When Humans Transcend Biology. [link]
  • Amazon Polly: Text-To-Speech service. [link]
  • Get Started with TensorFlow. [link]
  • Natural Language Processing with Python. [link]
  • Hands-On Machine Learning with Scikit-Learn and TensorFlow. [link]

Closed access resources

Software and tools used within the course

Teaching Methodology: Methods, techniques, & activities

Activities and Teaching Methods

Activities within each section
Learning Activities Section 1 Section 2 Section 3 Section 4
Development of individual parts of software product code 1 1 1 1
Homework and group projects 1 1 1 1
Essays 1 0 0 0

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Activity Type Content Is Graded?
Question Implement https://en.wikipedia.org/wiki/Nim game bot 1
Question Solve simple problems for CLIPS-based expect system completion 1
Question Run inference for Bayesian network with given observations 1
Question Discuss article in media about artificial intelligence breakthrough 1
Question Implement tic-tac-toe bot 0
Question Solve non-linear equation with symbolic computation package 0
Question Implement Wolfram Alpha bot 0
Question Implement decision tree framework 0

Section 2

Activity Type Content Is Graded?
Question Build a syntax tree of a sentence 1
Question Determine token types for all words in a sentence 1
Question Recognize text in a file with speech 1
Question Visualize histogram of a wave file 1
Question Extract subject and object from a sentence 0
Question Visualize text similarity in a dataset with doc2vec and t-SNE 0
Question State a problem for symbolic algebra freamework in natural language 0
Question Implement a command with a voice message 0
Question Implement simple programming language 0
Question Detect a chord by a wave file 0

Section 3

Activity Type Content Is Graded?
Question Count simple object in a picture 1
Question Label objects on a picture 1
Question Filter out noisy image 1
Question Find contours of cookies on the image 1
Question Build an eye detector 0
Question Use SIFT descriptors to detect images using bag of words representation 0
Question Subtract and measure fishes on a contract background 0
Question Track labelled objects in a video 0

Section 4

Activity Type Content Is Graded?
Question Run PCA using SVD for a given matrix 1
Question Remove unnecessary features 1
Question Split a dataset for a k-fold cross-validation 1
Question Perform a grid search of hyper-parameters 1
Question Find explainable predictors for a real data 0
Question Separate cats from dogs in a dataset 0
Question Train and estimate a model using k-fold cross-validation 0
Question Detect how similar are the interests of 2 users 0

Final assessment

Section 1

  1. Implement a bot to answer general question on math
  2. Find local minima and maxima of the function
  3. Implement an expert system to detect graph cycles
  4. Implement a bot playing simple board game with minimax algorithm

Section 2

  1. Implement programming language for a given description
  2. Implement a bot, that pronounces a fact on a given topic
  3. Implement comparison of two texts with respect to syntactic complexity

Section 3

  1. Recognize handwritten text
  2. Convert chessboard image into notation
  3. Measure a distance the cat cover in the video
  4. How many balls are there on the image?

Section 4

  1. Implement person classifier by voice
  2. Implement human classifier by face
  3. Implement recommender system for cold start
  4. Implement recommender system for a provided dataset

The retake exam

Section 1

Section 2

Section 3

Section 4