BSTE:IntroductionToPracticalArtificialIntelligence.previous version

From IU
Jump to navigation Jump to search

Introduction to Practical Artificial Intelligence

  • Course name: Practical Artificial Intelligence
  • Course number: N/A

Course Characteristics

What subject area does your course (discipline) belong to?

Artificial intelligence

Key concepts of the class

  • Practical tools to implement artificial intelligence
  • Methods and approaches to solving intellectual tasks

What is the 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.

Course objectives based on Bloom’s taxonomy

- 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

  • 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

- What should a student be able to understand at the end of the course?

By the end of the course, the students should be able to describe and explain

  • 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

- What should a student be able to apply at the end of the course?

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

Course evaluation

Course grade breakdown
Proposed points
Labs/seminar classes 20 0
Interim performance assessment 30 0
Assessments 0 60
Exams 50 40

If necessary, please indicate freely your course’s features in terms of students’ performance assessment:

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
Proposed range
A. Excellent 90-100 80-100
B. Good 75-89 60-79
C. Satisfactory 60-74 40-59
D. Poor 0-59 0-39

Resources and reference material

Main textbook:

  • “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]

Other reference material:

  • 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]

Course Sections

The main sections of the course and approximate hour distribution between them is as follows:

Course Sections
Section Section Title Teaching Hours
1 Introduction and reasoning 12
2 Text and speech processing 16
3 Images and video processing 12
4 ML for practice. Recommendations 20

Section 1

Section title:

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?

Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 0
Reports 0
Essays 1
Oral polls 0
Discussions 0

Typical questions for ongoing performance evaluation within this section

  1. Implement https://en.wikipedia.org/wiki/Nim game bot
  2. Solve simple problems for CLIPS-based expect system completion
  3. Run inference for Bayesian network with given observations
  4. Discuss article in media about artificial intelligence breakthrough

Typical questions for seminar classes (labs) within this section

  1. Implement tic-tac-toe bot
  2. Solve non-linear equation with symbolic computation package
  3. Implement Wolfram Alpha bot
  4. Implement decision tree framework

Test questions for final assessment in this section

  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

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?

Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 0
Reports 0
Essays 0
Oral polls 0
Discussions 0

Typical questions for ongoing performance evaluation within this section

  1. Build a syntax tree of a sentence
  2. Determine token types for all words in a sentence
  3. Recognize text in a file with speech
  4. Visualize histogram of a wave file

Typical questions for seminar classes (labs) within this section

  1. Extract subject and object from a sentence
  2. Visualize text similarity in a dataset with doc2vec and t-SNE
  3. State a problem for symbolic algebra freamework in natural language
  4. Implement a command with a voice message
  5. Implement simple programming language
  6. Detect a chord by a wave file

Test questions for final assessment in this section

  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

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?

Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 0
Reports 0
Essays 0
Oral polls 0
Discussions 0

Typical questions for ongoing performance evaluation within this section

  1. Count simple object in a picture
  2. Label objects on a picture
  3. Filter out noisy image
  4. Find contours of cookies on the image

Typical questions for seminar classes (labs) within this section

  1. Build an eye detector
  2. Use SIFT descriptors to detect images using bag of words representation
  3. Subtract and measure fishes on a contract background
  4. Track labelled objects in a video

Test questions for final assessment in this section

  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

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?

Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 0
Reports 0
Essays 0
Oral polls 0
Discussions 0

Typical questions for ongoing performance evaluation within this section

  1. Run PCA using SVD for a given matrix
  2. Remove unnecessary features
  3. Split a dataset for a k-fold cross-validation
  4. Perform a grid search of hyper-parameters

Typical questions for seminar classes (labs) within this section

  1. Find explainable predictors for a real data
  2. Separate cats from dogs in a dataset
  3. Train and estimate a model using k-fold cross-validation
  4. Detect how similar are the interests of 2 users

Test questions for final assessment in this section

  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