Base Knowledge
Previous completion of the following course unit is recommended:
- Programming Fundamentals.
Teaching Methodologies
The following teaching methodologies are used in this course unit:
1. Expository method: explanatory method where theoretical foundations and concepts are presented by the teacher and discussed with the class. Concepts and information will be presented to students through, for example, slide presentations or oral discussions. It will be used in classes to structure and outline the information.
2. Demonstrative method: based on the example given by the teacher of a technical or practical operation that one wishes to be learned. It focuses on how a given operation is carried out, highlighting the most appropriate techniques, tools and equipment. It will be used, for example, in practical and laboratory classes.
3. Interrogative method: process based on verbal interactions, under the direction of the teacher, adopting the format of questions and answers. It allows for greater dynamics in the classroom and consolidates learning. It will be used, for example, to remember elements of previous classes and in revisions of the lectured content.
4. Active methods: pedagogical techniques will be used in which the student is the center of the learning process, being an active participant and involved in his own training. The teacher assumes the role of facilitator, stimulating critical thinking, collaboration, creativity and student autonomy. They will be applied in classes to achieve a dynamic and more lasting learning environment.
Learning Results
At the end of the course unit the student will be able to:
1. Define Artificial Intelligence. Recognize the main historical milestones of its evolution. Classify the different existing paradigms in the context of Artificial Intelligence.
2. Compare the various types of agents. Analyze adaptive agents. Explain the organization and functioning of a genetic algorithm. Recognize apprentice agents. Explain the constitution and functioning of neural networks.
3. Discuss data analysis and processing. Demonstrate the attainment of the descriptive statistics measures. Exemplify the usage of tests within the scope of inferential statistics. Explain the data preprocessing techniques.
4. Explain the meaning of Machine Learning. Classify the different types of algorithms in this scope. Justify the choice of a model.
5. Discuss the characteristics of supervised learning. Demonstrate the usage of different types of models for this type of learning.
6. Analyze the features of unsupervised learning. Exemplify the usage of different types of models for this type of learning.
7. Define Deep Learning. Discuss the characteristics of different Deep Learning models and platforms. Assess its practical application in problem solving.
8. Design, create and modify software applications. Analyse the usage of Machine Learning and Deep Learning libraries and algorithms.
Program
1. Artificial Intelligence. Historical review. Computational/symbolic, connectionist and biological paradigms. Smart agents and the future of AI.
2. Agents. Types of agents: reactive agents, search agents, knowledge-based agents, adaptive agents, and learning agents. Adaptive Agents. Genetic Algorithm. Architecture and operation of a genetic algorithm. Learning Agents. Neural networks. The perceptron. One-layer and Multilayered networks.
3. Data Analysis and Preprocessing. Descriptive Statistics. Measures of central tendency and variance. Inferential Statistics. Independence tests: X2, Fisher. Association measures. Correlation measures: Pearson, Spearman. Parametric tests: t, ANOVA. Non-parametric tests: Wilcoxon, Mann-Whitney, Kruskal-Wallis. Data formatting and normalization.
4. Machine Learning. Types of systems: Supervised versus Unsupervised, Batch versus Online, Instance-Based versus Model-Based. Model choice. Overfitting and Underfitting. Testing and validation. Data visualization.
5. Supervised Learning. Regression: Linear and non-linear. Classification: K-Nearest Neighbors (KNN), Decision Trees, Logistic Regression, Naive Bayes, Support Vector Machines (SVM).
6. Unsupervised Learning. Clustering: K-means, Hierarchical Clustering, Density-Based Spatial Clustering of Applications with Noise (DBSCAN). Dimensionality Reduction: PCA, LDA.
7. Deep Learning. Restricted Boltzmann Machines, Deep Belief Networks (DBN), Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN).
8. Development of applications. Python language. Machine Learning and Deep Learning algorithms and platforms.
Curricular Unit Teachers
Luís Alberto Morais VelosoGrading Methods
- - The evaluation is based on lecture reports (1 point per lecture), a written test (8-9 points) and one or more practical assignments that are worth the rest. - 100.0%
Internship(s)
NAO
Bibliography
Burkov, A. (2019). The hundred-page machine learning book. Andriy Burkov.
Cisco. (2022). Python Essentials. Retrieved September 4, 2024, from https://www.netacad.com/
Costa, E. (2015). Programação em python: Fundamentos e resolução de problemas. FCA.
Costa, E., & Simões, A. (2008). Inteligência artificial: Fundamentos e aplicações. FCA.
Ekman, M. (2022). Learning Deep Learning. Addison-Wesley.
Geron, A. (2019). Hands-on machine learning with scikit-learn, keras, and tensorflow. O’Reilly.
Mckinney, W. (2017). Python for data analysis: Data wrangling with pandas, numpy, and ipython. O’Reilly.
Raschka, S., & Mirjalili, V. (2019). Python machine learning: Machine learning and deep learning with python, scikit-learn, and tensorflow. Packt Publishing.
Russel, S., & Norvig, P. (2018). Artificial intelligence: A modern approach. Pearson Education Limited.