CMPE 111, Introduction to Computer Science and Engineering

Istanbul University, Faculty of Computer and Information Technologies

Course Name: Introduction to Computer Science and Engineering Fall 2023

Course Code: CMPE 111

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrcs@sadievrenseker.com

Schedule: Tue, 10.40 – 12.00

Reference Material:

1. Schaum’s Outline of Introduction to Computer Science, Pauline Cushman, Ramon Mata-Toledo
2. Computer Science: An Overview, J. Glenn Brookshear, Addison-Wesley, 2009
3. Invitation to Computer Science, by G. Schneider and J. Gersting, West

Course Description:  This course is an introduction level course to computer science and engineering with basic concepts, terminology and orientation to the discipline.

  • The course starts with a top down approach to computer science concepts. The first step is covering the definitions of what is computer?, what is science? what is engineering? how the computer science and engineering is different from each other and from other disciplines such as, statistics, mathematics, physics and other engineerings.
  • Introduction to the binary logic, and representing the real life in the world of symbols. What is data, what is symbolism and how can a single number represent the whole life?
  • Course explains simple terminology of a research area under computer science each week. Starting from bits and bolts to hardwares, interaction between hardware and applications and role of operating system, networking and software development roles.

Course Objective and Learning Outcomes: 

  1. Understanding of real life problems and possible solutions in computer science
  2. Understanding of real life programming and software development related problems.
  3. Understanding the concepts of information technologies
  4. Understanding the study areas under the computer science and information technologies.
  5. Understanding the Software development processes and its relations to hardware and project management techniques.
  6. Understanding the business game and marketing or business development process of software and IT products
  7. Understanding the Knowledge economy and knowledge workers.

Tools: During the class, a pen and a paper is enough for most of the cases. Students are highly encouraged to write new wikipedia articles or create their own web pages.

Grading One individual term project (30%) one final exam (30%), Homework submitted each week : 40% in total.

Homework Policy:

  • Probably 10 for the whole semester (perhaps 1 or 2 bonus homework) and each homework with 4%.
  • Duration of homework submission is 2 weeks until the midnight of due date.
  • You MAY NOT use generative AI software (such as ChatGPT or Google Bard).
  • All submissions will be done through turn-it in software.

Project Requirements : Projects will be announced on week 5. Students can ask for a project topic before the 5th week and start early.

Example project topic: One web page covering some details about yourself and your work.

Project proposal : until 5th week of the semester. Write a proposal report about the web content you plan to create. Also add the programming points or the plug-ins you plan to use.

Project Deliverables: You are asked to submit the below items via mail until the last day of the classes:

  1. Presentation and Demo video: please shoot a video for your presentation and demo of your project.
  2. Project Presentation: slides you are using during the presentation
  3. Project Report : a detailed explanation of your approaches, the difficulties you have faced during the project implementation, also add the contributions of project to you and your future works.
  4. Running Code or Project: you are free to implement your solution in any platform / language. The only requirement about your implementation is, you have to code the two alternative solution on the same platform / programming language (otherwise it will not be fair to compare them). Please also provide an installation manual for your platform and running your code.
  5. Interview: A personal interview will be held after the submissions. Each of you will be asked to provide a time slot of at least 30 minutes for your projects. During this time, you will be asked to connect via an online platform and show your running demo and answer the questions. Please also attach your available time slots to your submissions.

 

Course Content:

Week 1 : Introduction to Computer Science and Engineering. 

Questions of the week :

  • What is Science?
  • What is Engineering?
  • What is Mathematics? How the mathematics, algebra and calculus are different from each other?
  • What is the difference between computer science and engineering?

Informal Homeworks :

  • Watch the movie “imitation game” (IMDB link)
  • Write any article on wikipedia
Week 2 : Introduction to Web Programming, HTML, CSS and JavaScripts

This is just a one-week quick course about the web programming, concepts like DNS, Hosting, Server and Clients, protocols (like https), and HTML.

Course Content:  SignalsFiber optics  History of InternetLANIP Communications Protocols:  TCPDNS WWW Intro; HTTPURL, HTMLintroduction, HTML: tablesrelative URL, etc.

Slides: [PPT][PPT1] , [PPT2] , [PPT] , [PPT] , [PPT] , [PPT]

For Turkish Content, you can watch the movie list on YouTube.

Questions of the week:

  • How does internet work?
  • What are the servers needed for a web page?
  • How can I publish my web page?
  • What is the cost or technical requirements for hosting a web page?

Homework 1: Prepare a web page about yourself. Also add information about yourself and some other entities to Wikidata  Submit the link and archived version from the way back machine to course e-mail address.

Week 3 (Continue from week 2): Introduction to HTML with simple codes and pages. Codes written in class:

second_try

 

Useful Resources :

https://www.w3school.com 

 


 

Week 4 : Introduction to Information Technologies :

Some Useful Resources:

 

Questions of the Week:

  • What is the Information Technology?
  • What are the study areas under IT and their relation to Computer Science and Engineering
  • What are the jobs under IT Industry?
  • What are the scales of Projects and Companies in the IT industry?

Homework 2: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 5 Binary Representation and Symbols of Computers

Questions of the Week:

  • How can you represent the whole life in just two symbols (1s and os)
  • What are the operations defined on binary representations
  • What is Boolean logic and its use on our daily life?
  • What is a computer program?
  • What is source code and how to develop a program?
  • What is machine language? What is programming language? What is a natural language?

Homework 3 : Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 6 Concept of Hardwares

Questions of the Week:

  • What are the basic components of a computer and how can you draw a von-neumann machine?
  • Name some of the I/O devices of computers
  • What is a quantum computer?
  • Can you build a computer if you have a time travel back to 10.000 BC?
  • What are mainframes, super computers or mini computers?

Some Useful Links from the course:

  • https://en.wikipedia.org/wiki/George_Boole
  • https://en.wikipedia.org/wiki/Boolean_algebra
  • https://en.wikipedia.org/wiki/Von_Neumann_architecture
  • nanometer scale transistors
  • https://en.wikipedia.org/wiki/Gordon_Moore
  • https://en.wikipedia.org/wiki/Moore%27s_law#
  • https://en.wikipedia.org/wiki/Ada_Lovelace
  • https://www.w3schools.com/
  • https://www.hackerrank.com/
  • https://www.w3schools.com/git
  • https://en.wikipedia.org/wiki/GitHub
  • https://gitlab.com/

Homework 4 : Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Deadline for project proposal submission.

Week 7 Concept of Operating Systems

Questions of the Week:

  • Who is computer operator? How we lost thousands of computer operators? What happened to computer operators?
  • What are the basic operating systems?
  • What are the design difference between Linux and Windows?
  • Which operating system is the best? How to compare operating systems?
  • What is open-source and why it is important?
  • What happens when a user switch on a computer, a step-by-step story of boosting a computer.

Homework 5: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 8 Computer Applications

Questions of the Week:

  • What is a program, software and application?
  • What are mobile applications?
  • What is a framework? What is the difference between a framework and operating system?
  • What are the minimum requirements of a computer application?
  • What is back-end, what is front-end in development?

Homework 6: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 9 Networking and Protocols

Questions of the week:

  • What is server/client communication type?
  • What is peer-to-peer network?
  • What is a network protocol? The basic differences between TCP/IP and other networks

Homework 7: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 10 Concept of Databases

Questions of the week:

  • What is data? What is information? and how do they differ?
  • How to store a data in a computer?
  • What are the types of Database Management Systems.
  • What is relational database?
  • What are the caches?
  • What is the big data? 5Vs of big data and concepts of partition tolerance, consistency and availability.
  • What is map-reduce?

Homework 8: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 11 Concept of Programming and Software Development

Questions of the week:

  • What is a program?
  • What is source-code, compiler, executable program?
  • How a computer executes a program?
  • What are the key issues when developing a software?
  • What is algorithm? How can I think in algorithmic way?
  • What is the best algorithm for any software problem?

Homework 9: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 12 Concepts of Software Engineering:

Questions of the week:

  • How to start a software project?
  • What are the best steps for a project development?
  • What are the project management approaches in software development?
  • How do you understand the quality of a software product?
  • How do you calculate the cost or time required to develop a software?

Homework 10: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 13 Concepts of Software Marketing and Business Development :

Questions of the Week:

  • What is knowledge economy and how is it different from the land, production or service economies?
  • Who are the knowledge workers? How do the live?
  • What are the types of software marketing
  • Define the COTS or Open-Source marketing patterns.
  • What is SaaS marketing?

Homework 11: Prepare a wikipedia entry for any topics covered in this week first time in wikipedia.

Week 14 Concepts of Start-ups and Changes on Business

Questions of the Week:

  • What is a start-up
  • When and how to found a start-up?
  • How can I be rich very fast by start-ups?
  • What is the best start-up idea ever?
  • How can I get investment into my start-up idea?
Week 15: Extra weeks will be added if needed. (Possible Extra class about : Artificial Intelligence)
Week 16: Extra weeks will be added if needed. (Possible Extra class about : Human Computer Interaction)

CS 447 Introduction to Data Science

Antalya University

Course Name: Introduction to Data Science Fall 2022

Course Code: CS 447

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrds@sadievrenseker.com

Schedule: Firday 11.00 – 13.00

Course Description:  This course is an introduction level course to data science, specialized on machine learning, artificial intelligence and big data.

  • The course starts with a top down approach to data science projects. The first step is covering data science project management techniques and we follow CRISP-DM methodology with 6 steps below:
  • Business Understanding : We cover the types of problems and business processes in real life
  • Data Understanding: We cover the data types and data problems. We also try to visualize data to discover.
  • Data Preprocessing: We cover the classical problems on data and also handling the problems like noisy or dirty data and missing values. Row or column filtering, data integration with concatenation and joins. We cover the data transformation such as discretization, normalization, or pivoting.
  • Machine Learning: we cover the classification algorithms such as Naive Bayes, Decision Trees, Logistic Regression or K-NN. We also cover prediction / regression algorithms like linear regression, polynomial regression or decision tree regression. We also cover unsupervised learning problems like clustering and association rule learning with k-means or hierarchical clustering, and a priori algorithms. Finally we cover ensemble techniques in Knime and Python on Big Data Platforms.
  • Evaluation: In the final step of data science, we study the metrics of success via Confusion Matrix, Precision, Recall, Sensitivity, Specificity for classification; purity , randindex for Clustering and  rmse, rmae, mse, mae for Regression / Prediction problems with Knime and Python on Big Data Platforms.

Course Objective and Learning Outcomes: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Tools: List of course software: ·       Excel, ·       KNIME, ·       Python Programming with Numpy, Pandas, SKLearn, StatsModel or DASK This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading One individual term project and one individual homework track covering all the topics covered in the course : 50%, Homeworks submitted each week : 50% (duration of homework submission is 1 week until the starting time of the class (11.00 a.m), after Friday 11.00 a.m. the submission will be considered as late submission and will not be taken into grading, any attempt against code of honor will result disciplinary actions and fail from the class)

Project Requirements : You are free to select a project topic. The only requirement about the project is, you have to cover at least two topics from the following list and solve the same problem with two separate approaches from the list, you are also asked to compare your findings from these two alternative solutions : KNN, SVM, XGBoost, LightGBM, CatBoost, Decision Trees, Random Forest, Linear Regression, Polynomial Regression, SVR, ARL (ARM), K-Means, DBSCAN, HC

Example project topic: you can search Kaggle for some idea about the projects, you can also find some good data sets from these web sites.

Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content, together with your data set and outcomes you plan to achieve. Send it in an e-mail with project proposal subject. Your project is very important for the course and possible problems might be related to the data set, algorithms, approaches or your purposes on the project. No late submissions or submissions with misinformation will be replied, so take the risk by your own.

Project Deliverables: You are asked to submit the below items via mail until Dec 22, 2022.

  1. Presentation and Demo video: please shoot a video for your presentation and demo of your project.
  2. Project Presentation: slides you are using during the presentation
  3. Project Report : a detailed explanation of your approaches, the difficulties you have faced during the project implementation, comparison of your two alternative approaches to the same problem (from the perspectives of implementation difficulties, their success rates, running performances etc.), some critical parts of your algorithms. Also provide details about increasing the success of your approach. Please answer all of those questions in your project report: what did you do to solve the unbalanced data if you have in your problem? what did you do to solve missing values, dirty or noisy data problems? did you use dimension transformation like PCA or LDA, why? did you check the underfitting or overfitting possibility and how did you get rid of it? did you use any regularization? did you implement segmentation / clustering before the classification or prediction steps, why or why not? Which data science project management method did you use (e.g. SEMMA, CRISP-DM or KDD?) why did you pick this method? Which step was the most difficulty step and why? How did you optimize the parameters of your algorithms? What was the best parameters and why? how did you found these parameters and do you think you can use same parameters for the other data sets in the future for the same problem?
  4. Running Code or Project: you are free to implement your solution in any platform / language. The only requirement about your implementation is, you have to code the two alternative solution on the same platform / programming language (otherwise it will not be fair to compare them). Please also provide an installation manual for your platform and running your code.
  5. Interview: A personal interview will be held after the submissions. Each of you will be asked to provide a time slot of at least 30 minutes for your projects. During this time, you will be asked to connect via an online platform and show your running demo and answer the questions. Please also attach your available time slots to your submissions.

Project Policies: There will be no late submission policy. If you can solve a problem with only 1 approach, which also means you can not compare two approaches, will be graded with 35 points over 100 max. So, please push yourselves to submit two separate approaches for your problem. You are free to use any library during your projects, you are not allowed to use a library or any code on the internet or written by anybody else on the AI part of your project only. So, in other words, you have to write the two different AI module for your project with two different approaches from the course content and using somebodyelse’s code in the AI module will get 0 as the final grade.

Course Content:

Week 1 (Sep 30): Introduction to Data, Problems and Real World Examples:Some useful information:DIKW Pyramid: DIKW pyramid – WikipediaCRISP-DM: Cross-industry standard process for data mining – Wikipedia Slides from first week:week1

Install Anaconda until next class from anaconda.org :

Week 2 (Oct 7): Introduction to Data Manipulation and Data Prepration : Introduction to python, numpy, pandas libraries, some basic operations for :

    1. Row Filter and Concept of Missing Values
    2. Column Filter
    3. Advanced Filters
    4. Concatenate
    5. Join
    6. Group by , Aggregation
    7. Formulas, String Replace
    8. String Manipulation
    9. Discrete, Quantized Data, Binning
    10. Normalization

Codes in python :

Click here to download codes and data file. 

Some useful links we referred during the class:

  • https://docs.python.org/3/tutorial/index.html
  • https://pandas.pydata.org/docs/reference/index.html
  • https://scikit-learn.org/stable/
  • https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.tree.plot_tree.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html

Also useful resources from last years:

Introduction to Python Programming for Data Science and an end-to-end Python application for data science Brief review of python programming Introduction to data manipulation libraries: NumPY and Pandas Introduction to the Sci-Kit Learn library and a sample classification You can install anaconda and Spyder from the link below: Also we have covered below topics during the class:

  • Data loading from external source using Pandas library (with read_excel or read_csv methods)
  • DataFrame slicing and dicing (using the iloc property and the lists provided to the iloc method)
  • Column Filtering (with copying into a new data frame)
  • Row Filtering (with copying into a new data frame)
  • Advanced row filtering (like filtering the people with even number of heights)
  • Column or row wise formula (we have calculated the BMI for everybody)
  • Quantization (discretization or binning): where we have applied the condition based binning
  • Min – Max Normalization (we have implemented MinMaxScaler from the SKLearn library)
  • Group By operation (we have implemented the groupby method from pandas library)

Click here to download the codes from the class For further information I strongly suggest you to read the below documentations:

Homework 2 : create a new excel (or CSV) file for an imaginary classroom and put your own unique data where the columns will be studentID, name, midterm and final grades of students. The data file should contain at least 20 rows without missing data. Create another excel (or CSV) file and put studentID and project columns and fill the imaginary project grades for the students. Complete the below steps for your first homework:

  1. Create 2 dataframes for each of the files.
  2. Join both files into a single data frame.
  3. Get the name of the students with maximum grades for each midterm, final and projects.
  4. Find the average, maximum and minimum grades for midterm, final and projects.
  5. Normalize all grades with min-max normalization.
  6. Sort the dataframe by the name of students lexiconically.

Submit your homeworks to the email of course in a zip file including your data files (excel or csv) and your python code together.

Week 3 (Oct 14): Introduction to Data Manipulation Concept of Data and types of data : Categorical (Nominal, Ordinal) and Numerical (Interval, Ratio). Supervised / Unsupervised learning, Concept of Classification. Algorithm dominance (between rule based learning and decision tree as a sample), KNN Algorithm.

KNN Code

Some useful links covering the course content:

Homework 3: solve your problem with KNN algorithm and compare the outcomes of decision tree and KNN, comment about the success rates.

Week 4 (Oct. 21):  

Deadline for project proposals: Please prepare a couple of paragraphs to introduce your term project idea. Add the problem you want to solve, data set you want to use.

Machine Learning Algorithms: SVM, KNN (repeat), Decision Tree (Repeat),Naive Bayes

Week 4 Coding for Classification algorithms (Mushroom Data Set From Kaggle) and evaluation

Week 4 coding for Iris Data Set

Concept Covered:

  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html
  • https://scikit-learn.org/stable/modules/naive_bayes.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

Homework 4 : Implement SVM, NB, Confusion Matrix and Accuracy Score calculations to your previous codes.

Week 5 (Oct 28): Classification Algorithms and Regression (Prediction Algorithms) concepts of classification algorithms, implementing the algorithms

Logistic Regression, Linear Regression, Multiple Linear Regression

Concepts Covered:

  • https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
  • https://scikit-learn.org/stable/modules/linear_model.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_absolute_error.html

Week 5 Codes 

Homework 5 : Implement Linear Regression and Logistic Regression algorithms to your previous codes.

 

Week 6 (Nov 4): Regression Algorithms concepts of prediction algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: Linear Regression Polynomial Regression Support Vector Regressor Regression Trees and Decision Tree Regressor Python code for the Regression

Concepts Covered:

  • https://scikit-learn.org/stable/modules/tree.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html

Week 6 Codes

Homework 6: Implement DTR, RFR and SVR on your homework dataset, also play with the parameters of the algorithms and try to find the best MAE and RMSE values without overfit.

Week 7 (Nov 11): Clustering Algorithms concepts of clustering algorithms, 2 types of clustering approaches : Hard Clustering and Soft Clustering, 4 Types of clustering algorithms : Centroid, Density Based, Statistical Distribution, Hierarchical. Evaluation of clustering algorithms, WCSS, Silhouette, Elbow Technique.

K-Means Clustering algorithm and concept of clustering.

  • https://scikit-learn.org/stable/modules/clustering.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html

Python Codes from this year

 

Python Code from last year :

 

Homework 7: Implement clustering algorithm on your homework scenario. You can implement clustering in the preprocessing phase for the data quality or you can benefit from clusters in the machine learning part.

Week 8 (Nov 18) : Clustering Algorithms (Cont.) DBSCAN, Hierarchical Clustering, Agglomerative Clustering and their implementations.

Homework 8: Implement DBSCAN, Hierarchical Clustering and Agglomerative Clustering algorithms, besides the K-Means algorithm from last week. Compare their success and execution performance.

Codes from 8th week

 

Week 9 (Nov 25) Association Rule Mining concepts of association rule mining (ARM) and association rule learning (ARL) algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: A-Priori Algorithm Click Here To Download Apyroiri Library for the Python Codesclick for python code click for knime workflow Homework : Link for Kaggle, instacart

Homework 9: Implement Association Rule Mining code with a-priori, fp-growth or éclat and compare their success and execution times. (Deadline postponed to 9 December 2022 , update: create your own unique data set).

 

Week 10 (Dec 2): Concept of Error and Evaluation Techniques

n-Fold Cross Validation , LOO, Split Validation RMSE, MAE, R2 values for regression RandIndex, Silhouet, WCSS for clustering algorithms Accuracy, Recall, Precision, F-Score, F1-Score etc. for classification algorithms

We also got an introduction to dimension reduction with PCA (principal component analysis)

Python codes for the Cross Validation

Homework 10: Re-implement all the classification and prediction codes in all your homeworks and try to increase the success rates by using preprocessing techniques. Also discuss the evaluation techniques while comparing the preprocessing techniques.

 

Week 11 (Dec 9): End-to-End practice with Data Preprocessing : We have randomly picked a data set from Kaggle and solved the problem with new concepts such as PCA, Normalization and Encoding techniques. The concepts covered are listed as below:

  • https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
  • https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTE.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
  • https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

Codes from the class 

Homework 11: re-implement the previous submissions with preprocessing steps with checking suitable encoding, balancing, scaling and dimension reduction techniques.

Week 12 (Dec 16): Collective Learning and Consensus Learning and Clustering Algorithms: Ensemble Learning, Bagging, Boosting Techniques, Random Forest, GBM, XGBoost, LightGBM Some links useful for the class:

Readings and resources:

Python Codes from the class : Gradient Boosting:

XGBoost (for running the code install XGBoost by the command prompt: conda install -c conda-forge xgboost Install XGBoost extension for Knime

 

Homework 12: Re-implement every classification and regression code with ensemble learning techniques. Compare the success rates and execution speeds in a table (put all the algorithms you have implemented until now to the rows and evaluation metrics to the columns and compare the outcomes in a table).

Week 12 (Dec 16): Deep Learning: 

 

Homework 12: Re-implement every classification and regression code with deep learning techniques. Compare the success rates and execution speeds in a table (put all the algorithms you have implemented until now to the rows and evaluation metrics to the columns and compare the outcomes in a table). Also compare the positive or negative effects of preprocessing steps and parameters into the table and discuss the outcomes.

Week 13 (Dec 23):

Project Presentations Presentations will be picked randomly during the class and anybody absent will be considered as not presented. Project Deliveries (until Dec 22): Project Presentation, Project Report (explaining your project, your approach and methodologies, difficulties you have faced, solutions you have found, results you have achieved in your projects, links to your data sources). python codes (in .py format). Please make all these files a single .zip or .rar archive and do not put more than 4 files in your archive.

There is no late submission policy!

Week 14( May 12): TBA
Week 15( May 19): TBA

CS 441 Artificial Intelligence

CS 441 Artificial Intelligence

Classes: Friday 9.00 – 11.00 am

Location: A3-02 (Some meetings might be planned online)

Instructor: Dr. Şadi Evren ŞEKER (+9 0531 605 6726, Ezgi for concatcs)

E-Mail: ai@sadievrenseker.com

Course Content:

  • History and Philosophy of the Artificial Intelligence (AI)
  • Classical AI approaches like search problems, machine learning, constraint satisfaction, graphical models, logic etc.
  • Learning how to model a complex real-world problem by the classical AI approach

Objectives:

  • Introduction to Artificial Intelligence Problems
  • Programming with a mathematical notation language
  • AI Programming skills including and based on Data Structures, Automata, Theory of Algorithm courses.
  • Writing a real world application with an AI module (like a game)
  • Introducing sub-AI topics like neural computing, uncertainity and bayesian networks, concept of learning (supervised / unsupervised) etc.

Texts:

  • S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall
  • —A must check : http://aima.cs.berkeley.edu
  • Some parts of the course is related to Machine Learning, Data Science, Data Mining, Pattern Recognition, Natural Language Processing, Statistics, Logic, Artificial Neural Networks and Fuzzy Logic, so you can read any [text] books about the topics.

Grading:

Grading One individual term project and one individual homework track covering all the topics covered in the course : 50%, Homeworks submitted each week : 50% (duration of homework submission is 1 week until the starting time of the class (11.00 a.m), after Friday 11.00 a.m. the submission will be considered as late submission and will not be taken into grading, any attempt against code of honor will result disciplinary actions and fail from the class)

Project Details:

There will be a final project submission only. Final Project will be individual work, and expectations are :

  • Project Report : all the details explained during the project, including your approach to problem, design issues or problem solving details.
  • Project Presentation : presentation holding the key points of your project implementation and problem solving, you will also use this file for the presentation
  • Running Code in Python: please provide full list of required libraries and execution guide, necessary data files (if you have required for the execution) and all other required files and please put enough comments to your code for readability.

Projects should include at least 2 separate implementation from following list (so, you will re-implement 2 different solutions for the same problem):  Search/ Heuristic, CSP, Game Trees, Logic, Fuzzy, Machine Learning / ANN

You will compare your 2 different solutions from the below perspectives, at least:

  • performance of computation / memory,
  • success rate and implementation
  • difficulties perspectives.

Late Submission Policy: Submissions are due to Ma 19, mid-night, any late submission will get 10% penalty for each day. Also Presentations will be digital submission from any environment you prefer, the presentations will be open to all class members so please share the connection information for every body and at least hold them online for 2 weeks during the final exams period, so everybody can get an opportunity to watch the presentation.

After your submissions (including project report, presentation and running code), I can request a Q&A session from you and I will contact you for the schedule.

Course Outline:

  • —Introduction and Agents (chapters 1,2)
  • —Search (chapters 3,4,5,6)
  • —Logic (chapters 7,8,9)
  • —Planning (chapters 11,12)
  • —Uncertainty (chapters 13,14)
  • —Learning (chapters 18,20)
  • —Natural Language Processing (chapter 22,23)

Schedule and Contents (Tentative):

  • Class 1, :[PPT] Introduction : Course Demonstration Slides, Introduction Slides. Homework 1 : Write an essay about what is AI, what do you think about the limits and current achievements in AI. You can also mention about the movies you have watched about AI.
  • Class 2,: [PPT] Agents, Homework 2: Design an agent in any environment (from real life, or a digital world, game or metaverse etc.) Answer the P.E.A.S. for your agent and also give the environement types (parallel to the concepts in class). Write two python codes about your agent. One reflex agent with if-else statements one model agent with state machines. Your code should also include a test case and demo code to show your agent can act for certain cases in the environment. Submit your codes and report of your agent design (P.E.A.S. and a brief info about your agent and your imaginations) in a zip file to the course e-mail before the next class starts.
  • Class 3,:  [PPT] Search, Homework 3: Design states of your agent in the environment. Draw and/or explain the state diagram and code a state transition graph for your agent (with states, transitions, costs and goal states). Implement DFS and BFS for the goal state of your agent.
  • Class 4,: Deadline of Project Proposals,  [PPT] Heuristic Search, Homework 4: Implement A* search for your problem, apply the a* search on your search space and also indicate your heuristic function merely.  Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content, together with your data set and outcomes you plan to achieve. Send it in an e-mail with project proposal subject. Your project is very important for the course and possible problems might be related to the data set, algorithms, approaches or your purposes on the project. No late submissions or submissions with misinformation will be replied, so take the risk by your own.
  • Class 5,: [PPT]Constraint Satisfaction Problems, Homework 5: Implement CSP for your problem, apply the backtracking algorithm with any improvement (you can pick any improvement we have covered in the class).
  • Class 6,: [PPT] Game Playing, Homework 6: For the first part of the homework, implement Game playing tree and minimax or maximax tree depending on the story of your game. In the second part of the homework use the heuristic function from homework 4 and try to shorten the game tree. In the third part of the homework, compare the results from first and second parts of the homework.
  • Class 7, : [PPT] Logic, Homework 7: Implement a logic agent with rule based system, discuss the rules in your rule base system and compare the benefits of logical operators in your rule based system with the previous implementations.
  • Class 8,: [PPT]First Order Logic, Inference in First Order Logic, Homework 8: Enhance your previous homework with first order logic and compare the success of new operators in your implementation.
  • Class 9,: [PPT] Uncertainity and Fuzzy Logic , Homework 9: Re-implement the logical rules with fuzzy rules and operators, also compare the outcomes from all implementations in a table (your search, heuristic, game-tree, cap, logic, FOL and Fuzzy implementations), discuss the results.
  • Class 10,: Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn and k-means
  • Class 11,: Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn and k-means
  • Class 12,: [PPT] Artificial Neural Networks
  • Class 13,: RL, Deep Learning
  • Class 14,: [PPT] Genetic Algorithms

Coding Practices (from aima.cs.berkeley.edu )

CHAPTER MODULE FILES LINES DESCRIPTION
1-2 AGENTS .py 532 Implement Agents and Environments (Chapters 1-2).
3-4 SEARCH .py .txt 735 Search (Chapters 3-4)
5 CSP .py .txt 449 CSP (Constraint Satisfaction Problems) problems and solvers. (Chapter 5).
6 GAMES .py 285 Games, or Adversarial Search. (Chapters 6)
7-10 LOGIC .py .txt 887 Representations and Inference for Logic (Chapters 7-10)
11-12 PLANNING .py 6 Planning (Chapters 11-12)
13-15 PROBABILITY .py .txt 170 Probability models. (Chapter 13-15)
17 MDP .py .txt 141 Markov Decision Processes (Chapter 17)
18-20 LEARNING .py 585 Learn to estimate functions from examples. (Chapters 18-20)
21 RL .py 14 Reinforcement Learning (Chapter 21)
22 NLP .py .txt 169 A chart parser and some grammars. (Chapter 22)
23 TEXT .py .txt 364 Statistical Language Processing tools. (Chapter 23)
DOCTESTS .py .txt 42 Run all doctests from modules on the command line. For each
PY2HTML .py 109 Pretty-print Python code to colorized, hyperlinked html.
UTILS .py .txt 713 Provide some widely useful utilities. Safe for “from utils import *”.
5201

 

Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.

Announcements

Please fill the knowledge card attached here, and send it back via email.

CS447 Introduction to Data Science

Antalya University

Course Name: Introduction to Data Science

Course Code: CS 447

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrds@sadievrenseker.com

Schedule: Tue 13.00 – 16.00

Location: Course will be online, via Discord (for server link please contact Ezgi Erdogan <ezgi.erdogan@optiwisdom.com> )

Courses will be available on YouTube channel (after a delay) : https://www.youtube.com/channel/UCeH53p3W2EJs7IlYyAyQCeg

 

Course Description:  This course is an introduction level course to data science, specialized on machine learning, artificial intelligence and big data.

  • The course starts with a top down approach to data science projects. The first step is covering data science project management techniques and we follow CRISP-DM methodology with 6 steps below:
  • Business Understanding : We cover the types of problems and business processes in real life
  • Data Understanding: We cover the data types and data problems. We also try to visualize data to discover.
  • Data Preprocessing: We cover the classical problems on data and also handling the problems like noisy or dirty data and missing values. Row or column filtering, data integration with concatenation and joins. We cover the data transformation such as discretization, normalization, or pivoting.
  • Machine Learning: we cover the classification algorithms such as Naive Bayes, Decision Trees, Logistic Regression or K-NN. We also cover prediction / regression algorithms like linear regression, polynomial regression or decision tree regression. We also cover unsupervised learning problems like clustering and association rule learning with k-means or hierarchical clustering, and a priori algorithms. Finally we cover ensemble techniques in Knime and Python on Big Data Platforms.
  • Evaluation: In the final step of data science, we study the metrics of success via Confusion Matrix, Precision, Recall, Sensitivity, Specificity for classification; purity , randindex for Clustering and  rmse, rmae, mse, mae for Regression / Prediction problems with Knime and Python on Big Data Platforms.

Course Objective and Learning Outcomes: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Tools:

List of course software:

·       Excel,

·       KNIME,

·       Python Programming with Numpy, Pandas, SKLearn, StatsModel or DASK

This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading

One individual term project covering all the topics covered in the course : %100

Project Requirements :

You are free to select a project topic. The only requirement about the project is, you have to cover at least two topics from the following list and solve the same problem with two separate approaches from the list, you are also asked to compare your findings from these two alternative solutions : KNN, SVM, XGBoost, LightGBM, CatBoost, Decision Trees, Random Forest, Linear Regression, Polynomial Regression, SVR, ARL (ARM), K-Means, DBSCAN, HC

Sample Project Flow

Sample Project Flow

Example project topic: you can search Kaggle for some idea about the projects, you can also find some good data sets from these web sites.

Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content.

Project Deliverables: You are asked to submit the below items via mail until May 19, 2020.

  1. Presentation and Demo video: please shoot a video for your presentation and demo of your project.
  2. Project Presentation: slides you are using during the presentation
  3. Project Report : a detailed explanation of your approaches, the difficulties you have faced during the project implementation, comparison of your two alternative approaches to the same problem (from the perspectives of implementation difficulties, their success rates, running performances etc.), some critical parts of your algorithms. Also provide details about increasing the success of your approach. Please answer all of those questions in your project report: what did you do to solve the unbalanced data if you have in your problem? what did you do to solve missing values, dirty or noisy data problems? did you use dimension transformation like PCA or LDA, why? did you check the underfitting or overfitting possibility and how did you get rid of it? did you use any regularization? did you implement segmentation / clustering before the classification or prediction steps, why or why not? Which data science project management method did you use (e.g. SEMMA, CRISP-DM or KDD?) why did you pick this method? Which step was the most difficulty step and why? How did you optimize the parameters of your algorithms? What was the best parameters and why? how did you found these parameters and do you think you can use same parameters for the other data sets in the future for the same problem?
  4. Running Code or Project: you are free to implement your solution in any platform / language. The only requirement about your implementation is, you have to code the two alternative solution on the same platform / programming language (otherwise it will not be fair to compare them). Please also provide an installation manual for your platform and running your code.
  5. Interview: A personal interview will be held after the submissions. Each of you will be asked to provide a time slot of at least 30 minutes for your projects. During this time, you will be asked to connect via an online platform and show your running demo and answer the questions. Please also attach your available time slots to your submissions.

Project Policies: There will be no late submission policy. If you can solve a problem with only 1 approach, which also means you can not compare two approaches, will be graded with 35 points over 100 max. So, please push yourselves to submit two separate approaches for your problem. You are free to use any library during your projects, you are not allowed to use a library or any code on the internet or written by anybody else on the AI part of your project only. So, in other words, you have to write the two different AI module for your project with two different approaches from the course content and using somebodyelse’s code in the AI module will get 0 as the final grade.

Course Content:

Week 1 : Introduction to Data, Problems and Real World Examples:Some useful information:DIKW Pyramid: DIKW pyramid – WikipediaCRISP-DM: Cross-industry standard process for data mining – WikipediaSlides from first week:week1
Week 2 : Introduction to Descriptive Analytics Repeating the first week for majority of the class and starting the concept of end to end data science projects.Installation of Knime from (www.knime.com and a brief introduction document : https://www.knime.com/blog/seven-things-to-do-after-installing-knime )

Weight and Heigh Sample project and Data Set for Knime work flow.

download first workflow

Week 3 : Introduction to Data Manipulation Concept of Data and types of data : Categorical (Nominal, Ordinal) and Numerical (Interval, Ratio). Basic Data Manipulation techniques with Knime: 1.Row Filter and Concept of Missing Values 2.Column Filter 3.Advanced Filters 4.Concatenate 5.Join 6. Group by , Aggregation 7. Formulas, String Replace 8. String Manipulation 9. Discrete, Quantized Data, Binning 10. Normalization 11.Splitting and Merging 12.Type Conversion (Numeric , String)
Week 4 : Introduction to Python Programming for Data Science and an end-to-end Python application for data science Brief review of python programming Introduction to data manipulation libraries: NumPY and Pandas Introduction to the Sci-Kit Learn library and a sample classification You can install anaconda and Spyder from the link below: Also we have covered below topics during the class:

  • Data loading from external source using Pandas library (with read_excel or read_csv methods)
  • DataFrame slicing and dicing (using the iloc property and the lists provided to the iloc method)
  • Column Filtering (with copying into a new data frame)
  • Row Filtering (with copying into a new data frame)
  • Advanced row filtering (like filtering the people with even number of heights)
  • Column or row wise formula (we have calculated the BMI for everybody)
  • Quantization (discretization or binning): where we have applied the condition based binning
  • Min – Max Normalization (we have implemented MinMaxScaler from the SKLearn library)
  • Group By operation (we have implemented the groupby method from pandas library)

Click here to download the codes from the class For further information I strongly suggest you to read the below documentations:

Week 5 : Classification Algorithms concepts of classification algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-NN Naive Bayes Decision Tree Logistic Regression Support Vector Machines 2nd Python Code of the course for the classifications Knime Workflow for the classification algorithms
Week 6: Regression Algorithms concepts of prediction algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: Linear Regression Polynomial Regression Support Vector Regressor Regression Trees and Decision Tree Regressor Python code for the RegressionKnime Workflow and the BIST 100 data set for the Regression Algorithms The Data Set obtained from : finance.yahoo.com
Week 7 : Clustering Algorithms concepts of clustering algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-Means DBScan Hierarchical Clustering Knime WorkflowPython Code
Week 8 : Association Rule Mining concepts of association rule mining (ARM) and association rule learning (ARL) algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: A-Priori Algorithm Click Here To Download Apyroiri Library for the Python Codesclick for python code click for knime workflow Homework : Link for Kaggle, instacart
Week 9 : Concept of Error and Evaluation Techniques n-Fold Cross Validation , LOO, Split Validation RMSE, MAE, R2 values for regression RandIndex, Silhouet, WCSS for clustering algorithms Accuracy, Recall, Precision, F-Score, F1-Score etc. for classification algorithms We also got an introduction to dimension reduction with PCA (principal component analysis) and Neural networks with MLP (multi layer perceptron) Please don’t forget to install Keras for next week.
Week 10 : Collective Learning
Week 11 : Collective Learning and Consensus Learning and Clustering Algorithms: Ensemble Learning, Bagging, Boosting Techniques, Random Forest, GBM, XGBoost, LightGBM Some links useful for the class:

Readings and resources:

Python Codes from the class : Gradient Boosting: XGBoost (for running the code install XGBoost by the command prompt: conda install -c conda-forge xgboost Install XGBoost extension for Knime

Week 12 : Project Presentations First Group. Presentations will be picked randomly during the class and anybody absent will be considered as not presented. Project Deliveries (until May 6): Project Presentation, Project Report (explaining your project, your approach and methodologies, difficulties you have faced, solutions you have found, results you have achieved in your projects, links to your data sources). Knime Workflows (in .knwf format) and python codes (in .py format). Please make all these files a single .zip or .rar archive and do not put more than 4 files in your archive.
Week 13 : Project Presentations Second Group If you haven missed the project presentations in the first week, please contact me for further details.
Week 14( May 12): TBA
Week 15( May 19): TBA

CS 441 Artificial Intelligence , Spring 2021, Antalya University

CS441 Introduction to Artificial Intelligence

Classes: TUE 13.00 – 16.00

Location: Courses will be online on Discord (for server link please contact Ezgi Erdogan <ezgi.erdogan@optiwisdom.com> )

Courses will be available on YouTube channel (after a delay) : https://www.youtube.com/channel/UCeH53p3W2EJs7IlYyAyQCeg

Instructor: Dr. Şadi Evren ŞEKER (+9 0531 605 6726)

E-Mail: ai@sadievrenseker.com

Web Site: TBA

Course Content:

  • History and Philosophy of the Artificial Intelligence (AI)
  • Classical AI approaches like search problems, machine learning, constraint satisfaction, graphical models, logic etc.
  • Learning how to model a complex real-world problem by the classical AI approach

Objectives:

  • Introduction to Artificial Intelligence Problems
  • Programming with Python for solving Real Life problems with AI Algorithms
  • Writing a real world application with an AI module (like a game)
  • Introducing sub-AI topics like neural computing, uncertainity and bayesian networks, concept of learning (supervised / unsupervised) etc.

Texts:

  • S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall
  • —A must check : http://aima.cs.berkeley.edu
  • Another useful link: https://www.cse.wustl.edu/~garnett/cse511a/
  • Some parts of the course is related to Machine Learning, Data Science, Data Mining, Pattern Recognition, Natural Language Processing, Statistics, Logic, Artificial Neural Networks and Fuzzy Logic, so you can read any [text] books about the topics.

—Grading:

Final Exam (100%).

Requirements and grading details: You are asked to solve the same problem with 2 different AI approaches in same programming language (you can pick any programming language) and compare them. The grading details are listed below:

  • Cheating = 0%, if somebody else solves your problem, writes your code, or you submit an already solved project without any effort on the project and without understanding the approach, strategy or coding, than you will be considered as you have submitted somebody else’s code and you will get 0 and fail the course, without exception.
  • Grading from Approach 1 = Code for Approach 1 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 1 (5%) + Presentation about Approach 1 ( 5%) = 35%
  • Grading from Approach 2 = Code for Approach 2 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 2 (5%) + Presentation about Approach 2 ( 5%) = 35%
  • Grading from comparing your approaches = If you have coded two approaches and if both of them are working, then you are asked to compare their advantages and disadvantages, processing complexity, memory complexity, your comments about these approaches. (presentation 10% + report 10% + demonstration 10%).

Grading summary : Approach 1 (35%) + Approach 2 ( 35%) + Comparison (30%) = 100%

  • These percents only represents the maximum score you can get from any part of the project, the grading may be lower, related to the quality of your submission.
  • Also grading will be individual, so depending on the answers during the demonstration you can get a different grade than your team mates.

Important Dates about Projects:

  • 5th of Jan, until midnight, for the submissions of project code (submit all related libraries or data files to execute your code), report (word or pdf format) and presentation files (power point or pdf format).
  • 6th of Jan, until 14.00, project presentation video (submit a video link to the discord channel, so everybody in the class can watch your presentation, the video link can be a youtube video or any drive link)
  • Final Exam week , TBA, Demonstrations, you will be invited to a time slot of 30 minutes. Please check the discord channel for updates.

Final Exam date will be announced at the end of the semester, demonstrations will be by invitation, during the final exams week.

Projects:

Final Project will be group work (max 3 people in a group), and expectations are : Project Report, Project Presentation, Running Code in Python (updated: the programming language is up to you, but you have to use the same programming environment/language for the whole project).

Projects should include at least 2 implementation from following list:  1) Search/ Heuristic, 2) CSP, 3) Game Trees, 4) Logic, 5) Fuzzy, 6) Machine Learning / ANN

Late Submission Policy: Any late submission will get 10% penalty for each 24 hours. Demonstration has no postpone and if you don’t appear on demo time you lose your grade percent from your code.

Course Outline:

  • —Introduction and Agents (chapters 1,2)
  • —Search (chapters 3,4,5,6)
  • —Logic (chapters 7,8,9)
  • —Planning (chapters 11,12)
  • —Uncertainty (chapters 13,14)
  • —Learning (chapters 18,20)
  • —Natural Language Processing (chapter 22,23)

Schedule and Contents (Very Very Very Tentative):

  • Class 1, :[PPT] Introduction : Course Demonstration Slides, Introduction Slides
  • Class 2, : [PPT] Agents
  • Class 3, :  [PPT] Search
  • Class 4, : No Class
  • Class 5, : [PPT] Heuristic Search
  • Class 6, : [PPT]Constraint Satisfaction Problems
  • Class 7, : [PPT] Game Playing
  • Class 8, : Constraint Satisfaction Problems (CSP)
  • Class 9, : [PPT] Logic, [PPT]First Order Logic, Inference in First Order Logic, [PPT] Uncertainity and Fuzzy Logic.
  • Class 10, : Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn, Decision Tree, Random Forest, Logistic Regression
  • Class 11, : Regression : Logistic Regression, Decision Tree Regression, Linear Regression, Polynomial Regression
  • Class 12, :  [PPT] Artificial Neural Networks
  • Class 13, : Project Presentations
  • Class 15, : Project Presentations
  • Class 16, : No Class. [PPT] Genetic Algorithms
  • Final Exam : Date TBA

Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.

Announcements

Please fill the knowledge card attached here, and send it back via email.

DS 501 Introduction to Data Science

Antalya University

Course Name: Introduction to Data Science

Course Code: DS 501

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrds@sadievrenseker.com

Schedule: Tue 13.00 – 16.00

Location: Course will be online, via Discord (for server link please contact Meltem Koc <meltem.koc@optiwisdom.com> )

Courses will be available on YouTube channel (after a delay) : https://www.youtube.com/channel/UCeH53p3W2EJs7IlYyAyQCeg

 

Course Description:  This course is an introduction level course to data science, specialized on machine learning, artificial intelligence and big data.

  • The course starts with a top down approach to data science projects. The first step is covering data science project management techniques and we follow CRISP-DM methodology with 6 steps below:
  • Business Understanding : We cover the types of problems and business processes in real life
  • Data Understanding: We cover the data types and data problems. We also try to visualize data to discover.
  • Data Preprocessing: We cover the classical problems on data and also handling the problems like noisy or dirty data and missing values. Row or column filtering, data integration with concatenation and joins. We cover the data transformation such as discretization, normalization, or pivoting.
  • Machine Learning: we cover the classification algorithms such as Naive Bayes, Decision Trees, Logistic Regression or K-NN. We also cover prediction / regression algorithms like linear regression, polynomial regression or decision tree regression. We also cover unsupervised learning problems like clustering and association rule learning with k-means or hierarchical clustering, and a priori algorithms. Finally we cover ensemble techniques in Knime and Python on Big Data Platforms.
  • Evaluation: In the final step of data science, we study the metrics of success via Confusion Matrix, Precision, Recall, Sensitivity, Specificity for classification; purity , randindex for Clustering and  rmse, rmae, mse, mae for Regression / Prediction problems with Knime and Python on Big Data Platforms.

Course Objective and Learning Outcomes: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Tools:

List of course software:

·       Excel,

·       KNIME,

·       Python Programming with Numpy, Pandas, SKLearn, StatsModel or DASK

This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading

One individual term project covering all the topics covered in the course : %100

Project Requirements :

You are free to select a project topic. The only requirement about the project is, you have to cover at least two topics from the following list and solve the same problem with two separate approaches from the list, you are also asked to compare your findings from these two alternative solutions : KNN, SVM, XGBoost, LightGBM, CatBoost, Decision Trees, Random Forest, Linear Regression, Polynomial Regression, SVR, ARL (ARM), K-Means, DBSCAN, HC

Sample Project Flow

Sample Project Flow

Example project topic: you can search Kaggle for some idea about the projects, you can also find some good data sets from these web sites.

Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content.

Project Deliverables: You are asked to submit the below items via mail until May 19, 2020.

  1. Presentation and Demo video: please shoot a video for your presentation and demo of your project.
  2. Project Presentation: slides you are using during the presentation
  3. Project Report : a detailed explanation of your approaches, the difficulties you have faced during the project implementation, comparison of your two alternative approaches to the same problem (from the perspectives of implementation difficulties, their success rates, running performances etc.), some critical parts of your algorithms. Also provide details about increasing the success of your approach. Please answer all of those questions in your project report: what did you do to solve the unbalanced data if you have in your problem? what did you do to solve missing values, dirty or noisy data problems? did you use dimension transformation like PCA or LDA, why? did you check the underfitting or overfitting possibility and how did you get rid of it? did you use any regularization? did you implement segmentation / clustering before the classification or prediction steps, why or why not? Which data science project management method did you use (e.g. SEMMA, CRISP-DM or KDD?) why did you pick this method? Which step was the most difficulty step and why? How did you optimize the parameters of your algorithms? What was the best parameters and why? how did you found these parameters and do you think you can use same parameters for the other data sets in the future for the same problem?
  4. Running Code or Project: you are free to implement your solution in any platform / language. The only requirement about your implementation is, you have to code the two alternative solution on the same platform / programming language (otherwise it will not be fair to compare them). Please also provide an installation manual for your platform and running your code.
  5. Interview: A personal interview will be held after the submissions. Each of you will be asked to provide a time slot of at least 30 minutes for your projects. During this time, you will be asked to connect via an online platform and show your running demo and answer the questions. Please also attach your available time slots to your submissions.

Project Policies: There will be no late submission policy. If you can solve a problem with only 1 approach, which also means you can not compare two approaches, will be graded with 35 points over 100 max. So, please push yourselves to submit two separate approaches for your problem. You are free to use any library during your projects, you are not allowed to use a library or any code on the internet or written by anybody else on the AI part of your project only. So, in other words, you have to write the two different AI module for your project with two different approaches from the course content and using somebodyelse’s code in the AI module will get 0 as the final grade.

Course Content:

Week 1 : Introduction to Data, Problems and Real World Examples:Some useful information:DIKW Pyramid: DIKW pyramid – WikipediaCRISP-DM: Cross-industry standard process for data mining – WikipediaSlides from first week:week1
Week 2 : Introduction to Descriptive Analytics Repeating the first week for majority of the class and starting the concept of end to end data science projects.

Installation of Knime from (www.knime.com and a brief introduction document : https://www.knime.com/blog/seven-things-to-do-after-installing-knime )

Weight and Heigh Sample project and Data Set for Knime work flow.

download first workflow

Week 3 : Introduction to Data Manipulation Concept of Data and types of data : Categorical (Nominal, Ordinal) and Numerical (Interval, Ratio). Basic Data Manipulation techniques with Knime: 1.Row Filter and Concept of Missing Values 2.Column Filter 3.Advanced Filters 4.Concatenate 5.Join 6. Group by , Aggregation 7. Formulas, String Replace 8. String Manipulation 9. Discrete, Quantized Data, Binning 10. Normalization 11.Splitting and Merging 12.Type Conversion (Numeric , String)
Week 4 : Introduction to Python Programming for Data Science and an end-to-end Python application for data science Brief review of python programming Introduction to data manipulation libraries: NumPY and Pandas Introduction to the Sci-Kit Learn library and a sample classification You can install anaconda and Spyder from the link below: Also we have covered below topics during the class:

  • Data loading from external source using Pandas library (with read_excel or read_csv methods)
  • DataFrame slicing and dicing (using the iloc property and the lists provided to the iloc method)
  • Column Filtering (with copying into a new data frame)
  • Row Filtering (with copying into a new data frame)
  • Advanced row filtering (like filtering the people with even number of heights)
  • Column or row wise formula (we have calculated the BMI for everybody)
  • Quantization (discretization or binning): where we have applied the condition based binning
  • Min – Max Normalization (we have implemented MinMaxScaler from the SKLearn library)
  • Group By operation (we have implemented the groupby method from pandas library)

Click here to download the codes from the class For further information I strongly suggest you to read the below documentations:

Week 5 : Classification Algorithms concepts of classification algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-NN Naive Bayes Decision Tree Logistic Regression Support Vector Machines 2nd Python Code of the course for the classifications Knime Workflow for the classification algorithms
Week 6: Regression Algorithms concepts of prediction algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: Linear Regression Polynomial Regression Support Vector Regressor Regression Trees and Decision Tree Regressor Python code for the RegressionKnime Workflow and the BIST 100 data set for the Regression Algorithms The Data Set obtained from : finance.yahoo.com
Week 7 : Clustering Algorithms concepts of clustering algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-Means DBScan Hierarchical Clustering Knime WorkflowPython Code
Week 8 : Association Rule Mining concepts of association rule mining (ARM) and association rule learning (ARL) algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: A-Priori Algorithm Click Here To Download Apyroiri Library for the Python Codesclick for python code click for knime workflow Homework : Link for Kaggle, instacart
Week 9 : Concept of Error and Evaluation Techniques n-Fold Cross Validation , LOO, Split Validation RMSE, MAE, R2 values for regression RandIndex, Silhouet, WCSS for clustering algorithms Accuracy, Recall, Precision, F-Score, F1-Score etc. for classification algorithms We also got an introduction to dimension reduction with PCA (principal component analysis) and Neural networks with MLP (multi layer perceptron) Please don’t forget to install Keras for next week.
Week 10 : Collective Learning :

 

Week 11 : Collective Learning and Consensus Learning and Clustering Algorithms: Ensemble Learning, Bagging, Boosting Techniques, Random Forest, GBM, XGBoost, LightGBM Some links useful for the class:

Readings and resources:

Python Codes from the class : Gradient Boosting: XGBoost (for running the code install XGBoost by the command prompt: conda install -c conda-forge xgboost Install XGBoost extension for Knime

Week 12 : Project Presentations First Group. Presentations will be picked randomly during the class and anybody absent will be considered as not presented. Project Deliveries (until May 6): Project Presentation, Project Report (explaining your project, your approach and methodologies, difficulties you have faced, solutions you have found, results you have achieved in your projects, links to your data sources). Knime Workflows (in .knwf format) and python codes (in .py format). Please make all these files a single .zip or .rar archive and do not put more than 4 files in your archive.
Week 13 : Project Presentations Second Group If you haven missed the project presentations in the first week, please contact me for further details.
Week 14( May 12): TBA
Week 15( May 19): TBA

ECE 550 Advanced AI

ECE 550 Advanced AI

Classes: Mon 13.00 – 16.00

Location: Courses will be online on Discord (for server link please contact Meltem Koc <meltem.koc@optiwisdom.com> )

Courses will be available on YouTube channel (after a delay) : https://www.youtube.com/channel/UCeH53p3W2EJs7IlYyAyQCeg

Instructor: Dr. Şadi Evren ŞEKER (+9 0531 605 6726)

E-Mail: ai@sadievrenseker.com

Web Site: TBA

Course Content:

  • History and Philosophy of the Artificial Intelligence (AI)
  • Classical AI approaches like search problems, machine learning, constraint satisfaction, graphical models, logic etc.
  • Learning how to model a complex real-world problem by the classical AI approach

Objectives:

  • Introduction to Artificial Intelligence Problems
  • Programming with Python for solving Real Life problems with AI Algorithms
  • Writing a real world application with an AI module (like a game)
  • Introducing sub-AI topics like neural computing, uncertainity and bayesian networks, concept of learning (supervised / unsupervised) etc.

Texts:

  • S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall
  • —A must check : http://aima.cs.berkeley.edu
  • Another useful link: https://www.cse.wustl.edu/~garnett/cse511a/
  • Some parts of the course is related to Machine Learning, Data Science, Data Mining, Pattern Recognition, Natural Language Processing, Statistics, Logic, Artificial Neural Networks and Fuzzy Logic, so you can read any [text] books about the topics.

—Grading:

Final Exam (100%).

Requirements and grading details: You are asked to solve the same problem with 2 different AI approaches in same programming language (you can pick any programming language) and compare them. The grading details are listed below:

  • Cheating = 0%, if somebody else solves your problem, writes your code, or you submit an already solved project without any effort on the project and without understanding the approach, strategy or coding, than you will be considered as you have submitted somebody else’s code and you will get 0 and fail the course, without exception.
  • Grading from Approach 1 = Code for Approach 1 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 1 (5%) + Presentation about Approach 1 ( 5%) = 35%
  • Grading from Approach 2 = Code for Approach 2 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 2 (5%) + Presentation about Approach 2 ( 5%) = 35%
  • Grading from comparing your approaches = If you have coded two approaches and if both of them are working, then you are asked to compare their advantages and disadvantages, processing complexity, memory complexity, your comments about these approaches. (presentation 10% + report 10% + demonstration 10%).

Grading summary : Approach 1 (35%) + Approach 2 ( 35%) + Comparison (30%) = 100%

  • These percents only represents the maximum score you can get from any part of the project, the grading may be lower, related to the quality of your submission.
  • Also grading will be individual, so depending on the answers during the demonstration you can get a different grade than your team mates.

Important Dates about Projects:

  • 5th of Jan, until midnight, for the submissions of project code (submit all related libraries or data files to execute your code), report (word or pdf format) and presentation files (power point or pdf format).
  • 6th of Jan, until 14.00, project presentation video (submit a video link to the discord channel, so everybody in the class can watch your presentation, the video link can be a youtube video or any drive link)
  • Final Exam week , TBA, Demonstrations, you will be invited to a time slot of 30 minutes. Please check the discord channel for updates.

Final Exam date will be announced at the end of the semester, demonstrations will be by invitation, during the final exams week.

Projects:

Final Project will be group work (max 3 people in a group), and expectations are : Project Report, Project Presentation, Running Code in Python (updated: the programming language is up to you, but you have to use the same programming environment/language for the whole project).

Projects should include at least 2 implementation from following list:  1) Search/ Heuristic, 2) CSP, 3) Game Trees, 4) Logic, 5) Fuzzy, 6) Machine Learning / ANN

Late Submission Policy: Any late submission will get 10% penalty for each 24 hours. Demonstration has no postpone and if you don’t appear on demo time you lose your grade percent from your code.

Course Outline:

  • —Introduction and Agents (chapters 1,2)
  • —Search (chapters 3,4,5,6)
  • —Logic (chapters 7,8,9)
  • —Planning (chapters 11,12)
  • —Uncertainty (chapters 13,14)
  • —Learning (chapters 18,20)
  • —Natural Language Processing (chapter 22,23)

Schedule and Contents (Very Very Very Tentative):

  • Class 1, :[PPT] Introduction : Course Demonstration Slides, Introduction Slides
  • Class 2, : [PPT] Agents
  • Class 3, :  [PPT] Search
  • Class 4, : No Class
  • Class 5, : [PPT] Heuristic Search
  • Class 6, : [PPT]Constraint Satisfaction Problems
  • Class 7, : [PPT] Game Playing
  • Class 8, : Constraint Satisfaction Problems (CSP)
  • Class 9, : [PPT] Logic, [PPT]First Order Logic, Inference in First Order Logic, [PPT] Uncertainity and Fuzzy Logic.
  • Class 10, : Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn, Decision Tree, Random Forest, Logistic Regression
  • Class 11, : Regression : Logistic Regression, Decision Tree Regression, Linear Regression, Polynomial Regression
  • Class 12, :  [PPT] Artificial Neural Networks
  • Class 13, : Project Presentations
  • Class 15, : Project Presentations
  • Class 16, : No Class. [PPT] Genetic Algorithms
  • Final Exam : Date TBA

Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.

Announcements

Please fill the knowledge card attached here, and send it back via email.

ECE 549 Advanced Data Science

Antalya University

Course Name: Advanced Data Science Fall 2020

Course Code: ECE 549

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrds@sadievrenseker.com

Schedule: Wed 10.00 – 13.00

Location: Course will be online, via Discord (for server link please contact Elif Su YİĞİT <elifsu.yigit@optiwisdom.com> )

Course Description:  This course is an introduction level course to data science, specialized on machine learning, artificial intelligence and big data.

  • The course starts with a top down approach to data science projects. The first step is covering data science project management techniques and we follow CRISP-DM methodology with 6 steps below:
  • Business Understanding : We cover the types of problems and business processes in real life
  • Data Understanding: We cover the data types and data problems. We also try to visualize data to discover.
  • Data Preprocessing: We cover the classical problems on data and also handling the problems like noisy or dirty data and missing values. Row or column filtering, data integration with concatenation and joins. We cover the data transformation such as discretization, normalization, or pivoting.
  • Machine Learning: we cover the classification algorithms such as Naive Bayes, Decision Trees, Logistic Regression or K-NN. We also cover prediction / regression algorithms like linear regression, polynomial regression or decision tree regression. We also cover unsupervised learning problems like clustering and association rule learning with k-means or hierarchical clustering, and a priori algorithms. Finally we cover ensemble techniques in Knime and Python on Big Data Platforms.
  • Evaluation: In the final step of data science, we study the metrics of success via Confusion Matrix, Precision, Recall, Sensitivity, Specificity for classification; purity , randindex for Clustering and  rmse, rmae, mse, mae for Regression / Prediction problems with Knime and Python on Big Data Platforms.

Course Objective and Learning Outcomes: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Tools:

List of course software:

·       Excel,

·       KNIME,

·       Python Programming with Numpy, Pandas, SKLearn, StatsModel or DASK

This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading

One individual term project covering all the topics covered in the course : %100

Project Requirements :

You are free to select a project topic. The only requirement about the project is, you have to cover at least two topics from the following list and solve the same problem with two separate approaches from the list, you are also asked to compare your findings from these two alternative solutions : KNN, SVM, XGBoost, LightGBM, CatBoost, Decision Trees, Random Forest, Linear Regression, Polynomial Regression, SVR, ARL (ARM), K-Means, DBSCAN, HC

Sample Project Flow

Sample Project Flow

Example project topic: you can search Kaggle for some idea about the projects, you can also find some good data sets from these web sites.

Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content.

Project Deliverables: You are asked to submit the below items via mail until May 19, 2020.

  1. Presentation and Demo video: please shoot a video for your presentation and demo of your project.
  2. Project Presentation: slides you are using during the presentation
  3. Project Report : a detailed explanation of your approaches, the difficulties you have faced during the project implementation, comparison of your two alternative approaches to the same problem (from the perspectives of implementation difficulties, their success rates, running performances etc.), some critical parts of your algorithms. Also provide details about increasing the success of your approach. Please answer all of those questions in your project report: what did you do to solve the unbalanced data if you have in your problem? what did you do to solve missing values, dirty or noisy data problems? did you use dimension transformation like PCA or LDA, why? did you check the underfitting or overfitting possibility and how did you get rid of it? did you use any regularization? did you implement segmentation / clustering before the classification or prediction steps, why or why not? Which data science project management method did you use (e.g. SEMMA, CRISP-DM or KDD?) why did you pick this method? Which step was the most difficulty step and why? How did you optimize the parameters of your algorithms? What was the best parameters and why? how did you found these parameters and do you think you can use same parameters for the other data sets in the future for the same problem?
  4. Running Code or Project: you are free to implement your solution in any platform / language. The only requirement about your implementation is, you have to code the two alternative solution on the same platform / programming language (otherwise it will not be fair to compare them). Please also provide an installation manual for your platform and running your code.
  5. Interview: A personal interview will be held after the submissions. Each of you will be asked to provide a time slot of at least 30 minutes for your projects. During this time, you will be asked to connect via an online platform and show your running demo and answer the questions. Please also attach your available time slots to your submissions.

Project Policies: There will be no late submission policy. If you can solve a problem with only 1 approach, which also means you can not compare two approaches, will be graded with 35 points over 100 max. So, please push yourselves to submit two separate approaches for your problem. You are free to use any library during your projects, you are not allowed to use a library or any code on the internet or written by anybody else on the AI part of your project only. So, in other words, you have to write the two different AI module for your project with two different approaches from the course content and using somebodyelse’s code in the AI module will get 0 as the final grade.

Course Content:

Week 1 : Introduction to Data, Problems and Real World Examples:Some useful information:DIKW Pyramid: DIKW pyramid – WikipediaCRISP-DM: Cross-industry standard process for data mining – WikipediaSlides from first week:week1
Week 2 : Introduction to Descriptive Analytics Repeating the first week for majority of the class and starting the concept of end to end data science projects.

Installation of Knime from (www.knime.com and a brief introduction document : https://www.knime.com/blog/seven-things-to-do-after-installing-knime )

Weight and Heigh Sample project and Data Set for Knime work flow.

download first workflow

Week 3 : Introduction to Data Manipulation Concept of Data and types of data : Categorical (Nominal, Ordinal) and Numerical (Interval, Ratio). Basic Data Manipulation techniques with Knime: 1.Row Filter and Concept of Missing Values 2.Column Filter 3.Advanced Filters 4.Concatenate 5.Join 6. Group by , Aggregation 7. Formulas, String Replace 8. String Manipulation 9. Discrete, Quantized Data, Binning 10. Normalization 11.Splitting and Merging 12.Type Conversion (Numeric , String)
Week 4 : Introduction to Python Programming for Data Science and an end-to-end Python application for data science Brief review of python programming Introduction to data manipulation libraries: NumPY and Pandas Introduction to the Sci-Kit Learn library and a sample classification You can install anaconda and Spyder from the link below: Also we have covered below topics during the class:

  • Data loading from external source using Pandas library (with read_excel or read_csv methods)
  • DataFrame slicing and dicing (using the iloc property and the lists provided to the iloc method)
  • Column Filtering (with copying into a new data frame)
  • Row Filtering (with copying into a new data frame)
  • Advanced row filtering (like filtering the people with even number of heights)
  • Column or row wise formula (we have calculated the BMI for everybody)
  • Quantization (discretization or binning): where we have applied the condition based binning
  • Min – Max Normalization (we have implemented MinMaxScaler from the SKLearn library)
  • Group By operation (we have implemented the groupby method from pandas library)

Click here to download the codes from the class For further information I strongly suggest you to read the below documentations:

Week 5 : Classification Algorithms concepts of classification algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-NN Naive Bayes Decision Tree Logistic Regression Support Vector Machines 2nd Python Code of the course for the classifications Knime Workflow for the classification algorithms
Week 6: Regression Algorithms concepts of prediction algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: Linear Regression Polynomial Regression Support Vector Regressor Regression Trees and Decision Tree Regressor Python code for the RegressionKnime Workflow and the BIST 100 data set for the Regression Algorithms The Data Set obtained from : finance.yahoo.com
Week 7 : Clustering Algorithms concepts of clustering algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: K-Means DBScan Hierarchical Clustering Knime WorkflowPython Code
Week 8 : Association Rule Mining concepts of association rule mining (ARM) and association rule learning (ARL) algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are: A-Priori Algorithm Click Here To Download Apyroiri Library for the Python Codesclick for python code click for knime workflow Homework : Link for Kaggle, instacart
Week 9 : Concept of Error and Evaluation Techniques n-Fold Cross Validation , LOO, Split Validation RMSE, MAE, R2 values for regression RandIndex, Silhouet, WCSS for clustering algorithms Accuracy, Recall, Precision, F-Score, F1-Score etc. for classification algorithms We also got an introduction to dimension reduction with PCA (principal component analysis) and Neural networks with MLP (multi layer perceptron) Please don’t forget to install Keras for next week.
Week 10 : Collective Learning :

 

Week 11 : Collective Learning and Consensus Learning and Clustering Algorithms: Ensemble Learning, Bagging, Boosting Techniques, Random Forest, GBM, XGBoost, LightGBM Some links useful for the class:

Readings and resources:

Python Codes from the class : Gradient Boosting: XGBoost (for running the code install XGBoost by the command prompt: conda install -c conda-forge xgboost Install XGBoost extension for Knime

Week 12 : Project Presentations First Group. Presentations will be picked randomly during the class and anybody absent will be considered as not presented. Project Deliveries (until May 6): Project Presentation, Project Report (explaining your project, your approach and methodologies, difficulties you have faced, solutions you have found, results you have achieved in your projects, links to your data sources). Knime Workflows (in .knwf format) and python codes (in .py format). Please make all these files a single .zip or .rar archive and do not put more than 4 files in your archive.
Week 13 : Project Presentations Second Group If you haven missed the project presentations in the first week, please contact me for further details.
Week 14( May 12): TBA
Week 15( May 19): TBA

CS441 Introduction to Artificial Intelligence

CS441: Introduction to Artificial Intelligence

Classes: Wednesday 14.00 – 17.00 pm

Location: Courses will be online on Discord (for server link please contact Elif Su YİĞİT <elifsu.yigit@optiwisdom.com> )

Instructor: Dr. Şadi Evren ŞEKER (+9 0531 605 6726)

E-Mail: ai@sadievrenseker.com

Web Site: TBA

 

Course Content:

  • History and Philosophy of the Artificial Intelligence (AI)
  • Classical AI approaches like search problems, machine learning, constraint satisfaction, graphical models, logic etc.
  • Learning how to model a complex real-world problem by the classical AI approach

Objectives:

  • Introduction to Artificial Intelligence Problems
  • Programming with Python for solving Real Life problems with AI Algorithms
  • Writing a real world application with an AI module (like a game)
  • Introducing sub-AI topics like neural computing, uncertainity and bayesian networks, concept of learning (supervised / unsupervised) etc.

Texts:

  • S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall
  • —A must check : http://aima.cs.berkeley.edu
  • Another useful link: https://www.cse.wustl.edu/~garnett/cse511a/
  • Some parts of the course is related to Machine Learning, Data Science, Data Mining, Pattern Recognition, Natural Language Processing, Statistics, Logic, Artificial Neural Networks and Fuzzy Logic, so you can read any [text] books about the topics.

—Grading:

Final Exam (100%).

Requirements and grading details: You are asked to solve the same problem with 2 different AI approaches in same programming language (you can pick any programming language) and compare them. The grading details are listed below:

  • Cheating = 0%, if somebody else solves your problem, writes your code, or you submit an already solved project without any effort on the project and without understanding the approach, strategy or coding, than you will be considered as you have submitted somebody else’s code and you will get 0 and fail the course, without exception.
  • Grading from Approach 1 = Code for Approach 1 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 1 (5%) + Presentation about Approach 1 ( 5%) = 35%
  • Grading from Approach 2 = Code for Approach 2 (Code will be questioned during demonstration) (25%) + Detailed Report about Approach 2 (5%) + Presentation about Approach 2 ( 5%) = 35%
  • Grading from comparing your approaches = If you have coded two approaches and if both of them are working, then you are asked to compare their advantages and disadvantages, processing complexity, memory complexity, your comments about these approaches. (presentation 10% + report 10% + demonstration 10%).

Grading summary : Approach 1 (35%) + Approach 2 ( 35%) + Comparison (30%) = 100%

  • These percents only represents the maximum score you can get from any part of the project, the grading may be lower, related to the quality of your submission.
  • Also grading will be individual, so depending on the answers during the demonstration you can get a different grade than your team mates.

Important Dates about Projects:

  • 5th of Jan, until midnight, for the submissions of project code (submit all related libraries or data files to execute your code), report (word or pdf format) and presentation files (power point or pdf format).
  • 6th of Jan, until 14.00, project presentation video (submit a video link to the discord channel, so everybody in the class can watch your presentation, the video link can be a youtube video or any drive link)
  • Final Exam week , TBA, Demonstrations, you will be invited to a time slot of 30 minutes. Please check the discord channel for updates.

Final Exam date will be announced at the end of the semester, demonstrations will be by invitation, during the final exams week.

Projects:

Final Project will be group work (max 3 people in a group), and expectations are : Project Report, Project Presentation, Running Code in Python (updated: the programming language is up to you, but you have to use the same programming environment/language for the whole project).

Projects should include at least 2 implementation from following list:  1) Search/ Heuristic, 2) CSP, 3) Game Trees, 4) Logic, 5) Fuzzy, 6) Machine Learning / ANN

Late Submission Policy: Any late submission will get 10% penalty for each 24 hours. Demonstration has no postpone and if you don’t appear on demo time you lose your grade percent from your code.

Course Outline:

  • —Introduction and Agents (chapters 1,2)
  • —Search (chapters 3,4,5,6)
  • —Logic (chapters 7,8,9)
  • —Planning (chapters 11,12)
  • —Uncertainty (chapters 13,14)
  • —Learning (chapters 18,20)
  • —Natural Language Processing (chapter 22,23)

Schedule and Contents (Very Very Very Tentative):

  • Class 1, :[PPT] Introduction : Course Demonstration Slides, Introduction Slides
  • Class 2, : [PPT] Agents
  • Class 3, :  [PPT] Search
  • Class 4, : No Class
  • Class 5, : [PPT] Heuristic Search
  • Class 6, : [PPT]Constraint Satisfaction Problems
  • Class 7, : [PPT] Game Playing
  • Class 8, : Constraint Satisfaction Problems (CSP)
  • Class 9, : [PPT] Logic, [PPT]First Order Logic, Inference in First Order Logic, [PPT] Uncertainity and Fuzzy Logic.
  • Class 10, : Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn, Decision Tree, Random Forest, Logistic Regression
  • Class 11, : Regression : Logistic Regression, Decision Tree Regression, Linear Regression, Polynomial Regression
  • Class 12, :  [PPT] Artificial Neural Networks
  • Class 13, : Project Presentations
  • Class 15, : Project Presentations
  • Class 16, : No Class. [PPT] Genetic Algorithms
  • Final Exam : Date TBA

Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.

Announcements

Please fill the knowledge card attached here, and send it back via email.

CS447 Introduction to Data Science

Antalya Science University

Course Name: Introduction to Data Science

Course Code: CS 447

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: intrds@sadievrenseker.com

Schedule: Tuesday 15.00 – 18.00

Course Description:  This course is an introduction level course to data science, specialized on machine learning, artificial intelligence and big data.

  • The course starts with a top down approach to data science projects. The first step is covering data science project management techniques and we follow CRISP-DM methodology with 6 steps below:
  • Business Understanding : We cover the types of problems and business processes in real life
  • Data Understanding: We cover the data types and data problems. We also try to visualize data to discover. 
  • Data Preprocessing: We cover the classical problems on data and also handling the problems like noisy or dirty data and missing values. Row or column filtering, data integration with concatenation and joins. We cover the data transformation such as discretization, normalization, or pivoting
  • Machine Learning: we cover the classification algorithms such as Naive Bayes, Decision Trees, Logistic Regression or K-NN. We also cover prediction / regression algorithms like linear regression, polynomial regression or decision tree regression. We also cover unsupervised learning problems like clustering and association rule learning with k-means or hierarchical clustering, and a priori algorithms. Finally we cover ensemble techniques in Knime and Python on Big Data Platforms.
  • Evaluation: In the final step of data science, we study the metrics of success via Confusion Matrix, Precision, Recall, Sensitivity, Specificity for classification; purity , randindex for Clustering and  rmse, rmae, mse, mae for Regression / Prediction problems with Knime and Python on Big Data Platforms.

Course Objective and Learning Outcomes: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Tools:

List of course software:

·       Excel,

·       KNIME,

·       Python Programming with Numpy, Pandas, SKLearn, StatsModel or DASK

This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading

Reading, Attendence and Discussions: 30%

Homeworks: 30%

Project: 40%

Course Content:

Week 1 (Feb 19): Introduction to Data, Problems and Real World Examples:Some useful information:DIKW Pyramid: DIKW pyramid – WikipediaCRISP-DM: Cross-industry standard process for data mining – WikipediaSlides from first week:week1
Week 2 (Feb 26): Introduction to Descriptive Analytics
Repeating the first week for majority of the class and starting the concept of end to end data science projects. Weight and Heigh Sample project and Data Set for Knime work flow. Brief introduction to algorithms: K-NN, Naive Bayes, Decision Trees, Linear Regression

Week 3 (Mar 5): Introduction to Data Manipulation
Concept of Data and types of data : Categorical (Nominal, Ordinal) and Numerical (Interval, Ratio).
Basic Data Manipulation techniques with Knime:
1.Row Filter and Concept of Missing Values
2.Column Filter
3.Advanced Filters
4.Concatenate
5.Join
6. Group by , Aggregation
7. Formulas, String Replace
8. String Manipulation
9. Discrete, Quantized Data, Binning
10. Normalization
11.Splitting and Merging
12.Type Conversion (Numeric , String)

Week 4 (Mar. 12): Introduction to Python Programming for Data Science and an end-to-end Python application for data science
Brief review of python programming
Introduction to data manipulation libraries: NumPY and Pandas
Introduction to the Sci-Kit Learn library and a sample classification

You can install anaconda and Spyder from the link below:

Also we have covered below topics during the class:

  • Data loading from external source using Pandas library (with read_excel or read_csv methods)
  • DataFrame slicing and dicing (using the iloc property and the lists provided to the iloc method)
  • Column Filtering (with copying into a new data frame)
  • Row Filtering (with copying into a new data frame)
  • Advanced row filtering (like filtering the people with even number of heights)
  • Column or row wise formula (we have calculated the BMI for everybody)
  • Quantization (discretization or binning): where we have applied the condition based binning 
  • Min – Max Normalization (we have implemented MinMaxScaler from the SKLearn library)
  • Group By operation (we have implemented the groupby method from pandas library)


Click here to download the codes from the class

For further information I strongly suggest you to read the below documentations:

Week 5 (Mar 19): Classification Algorithms
concepts of classification algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are:
K-NN
Naive Bayes
Decision Tree
Logistic Regression
Support Vector Machines

2nd Python Code of the course for the classifications

Knime Workflow for the classification algorithms

Week 6 (Mar 26): Regression Algorithms
concepts of prediction algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are:
Linear Regression
Polynomial Regression
Support Vector Regressor
Regression Trees and Decision Tree Regressor

Python code for the Regression

Knime Workflow and the BIST 100 data set for the Regression Algorithms 

The Data Set obtained from : finance.yahoo.com

Week 7 (Apr 2): Clustering Algorithms
concepts of clustering algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are:
K-Means
DBScan
Hierarchical Clustering

Knime Workflow

Python Code

Week 8 (Apr 9): Association Rule Mining
concepts of association rule mining (ARM) and association rule learning (ARL) algorithms, implementing the algorithms in Knime and coding in python. Algorithms covered are:
A-Priori Algorithm

Click Here To Download Apyroiri Library for the Python Codes

click for python code 

click for knime workflow

Homework : Link for Kaggle, instacart

Week 9 (Apr 16): Concept of Error and Evaluation Techniques
n-Fold Cross Validation , LOO, Split Validation
RMSE, MAE, R2 values for regression
RandIndex, Silhouet, WCSS for clustering algorithms
Accuracy, Recall, Precision, F-Score, F1-Score etc. for classification algorithms

We also got an introduction to dimension reduction with PCA (principal component analysis) and Neural networks with MLP (multi layer perceptron)

Please don’t forget to install Keras for next week.

Week 10 (Apr 23): Collective Learning

This content has moved to previous week because of the holiday

Week 11 (Apr 30): Collective Learning and Consensus Learning and Clustering Algorithms: Ensemble Learning, Bagging, Boosting Techniques, Random Forest, GBM, XGBoost, LightGBM

Some links useful for the class:

Readings and resources: 

Python Codes from the class :

Gradient Boosting:

XGBoost (for running the code install XGBoost by the command prompt: 

conda install -c conda-forge xgboost

Install XGBoost extension for Knime

 

Week 12 (May 7): Project Presentations First Group.
Presentations will be picked randomly during the class and anybody absent will be considered as not presented.
Project Deliveries (until May 6): Project Presentation, Project Report (explaining your project, your approach and methodologies, difficulties you have faced, solutions you have found, results you have achieved in your projects, links to your data sources). Knime Workflows (in .knwf format) and python codes (in .py format). Please make all these files a single .zip or .rar archive and do not put more than 4 files in your archive.

Week 13 (May 14): Project Presentations Second Group

If you haven missed the project presentations in the first week, please contact me for further details.