Programming for Data Science

Objetivos

The Programming for Data Science curricular unit is aimed at students without prior programming experience. In this unit, students will learn the fundamentals of programming in Python necessary for a successful career in data science. Starting from the basics of programming, we will rapidly evolve towards advanced computing techniques and concepts of interest for developing a data science project.

During the Programming for Data Science curricular unit, students will acquire experience working with the backbone stack of libraries (pandas, numpy, matplotlib, seaborn, scikit-learn, statsmodel, networkx) that make Python the language of choice among data scientists.

At the end of the curricular unit, students are expected to have the capacity to use programming to develop a data science project independently and to feel comfortable with the programming activities in other curricular units. The curricular unit has a strong, active learning component, and, as such, students are expected to participate during classes and read the recommended weekly materials.

Caracterização geral

Código

400090

Créditos

7.5

Professor responsável

Flávio Luís Portas Pinheiro

Horas

Semanais - A disponibilizar brevemente

Totais - A disponibilizar brevemente

Idioma de ensino

Português. No caso de existirem alunos de Erasmus, as aulas serão leccionadas em Inglês

Pré-requisitos

The curricular unit does not have technical enrollment requirements.

Bibliografia

Método de ensino

The curricular unit is based on a mix of theoretical and practical lessons with a strong, active learning component. During each session, students are exposed to new concepts and methodologies, case studies, and the resolution of examples. Active learning activities (debates, quizzes, mud cards, compare and contrast) will place students at the center of the classroom, promoting peer teaching and encouraging a positive discussion. Computer activities will take place weekly during the practical lessons.

Evaluation Elements:
EE1 – Project (60%)
EE2 – Individual Assessment (40%)

Método de avaliação

To successfully finish this curricular unit, students must score a minimum of 9.5 points. The grading is divided into two seasons. Attendance in the second is optional for students that passed the curricular unit in the first season and can be used to improve their grades.

First Season

The first grading season is dedicated to continuous evaluation, and there is no exam during the first grading call. Grading elements include:

1) Final Project (60%) - The final project invites groups of students to prepare a report that details the process of a dataset's acquisition, cleaning, transformation, and descriptive analysis. The following is a list of basic guidelines:

a. This is a group activity
b. Groups must have at least four members and at most five. Groups will be initially random and created during the first week.
c. The project topic is free, and students are invited to explore problems they relate to. However, we will share two project proposals with all groups, including datasets. Projects based on foreign datasets obtained through platforms such as Kaggle are invalid unless it is given the express authorization by the teaching staff.
d. Deliveries include a written report detailing the project's outcomes, the slides of the oral presentation, and all the materials prepared during the elaboration of the project.
e. The oral presentation will have a duration of 10 minutes. You should assign a person to present the project. Following the presentation, there will be a 10- minute discussion in which all members should participate. This discussion is open to all classmates, and questions from colleagues are a plus.
f. The project will be evaluated by the overall quality of the project, ability to achieve the intended goals, clarity of communication, and presentation.
g. Students can incur penalization if their participation during the oral presentation and discussion is deemed insufficient
h. The Report should have a maximum of 5 pages (including images and references). The authors’ names and student ids of the report and their contributions should be clearly stated.
i. Both reports and presentations should follow the templates provided on Moodle. Failing to follow the template guidelines will lead to penalties.
j. Materials should be submitted through Moodle
k. The deadline for delivery is May 29th at 23:59h, the delivery includes sharing the slides and abstract with colleagues in the forum
l. Presentations will take place during the last two weeks of classes
m. Furtherguidelineswillbesharedduringthesemester

2) Individual Assessment (40%) – We will release one problem set focused on the materials lectured during the first five weeks. Students will have two weeks to solve the proposed problems and submit their solutions through Moodle. The homework activity is an individual activity. The assignment will be released on March 18th, and the delivery deadline is on April 2nd at 23:59. Late deliveries will have a penalty. One point per day late. Some guidelines are as follows:

a. Evidence of cheating will lead to penalties
b. All the code should be commented on, lack of clarity can lead to a penalty
c. Evaluation will be based on the ability to solve the problem, and not on finding the most efficient way of doing it (it is not a class about algorithms)

Second Season

The second grading season will take place in July. It will consist of a multiple-choice exam. The Exam consists of 40 questions. Correct answers count 0.5 points, and incorrect answers discount 0.2 points.

Conteúdo

The curricular unit is organized into three Learning Units (LU):
LU0. Introduction to programming fundamentals using Python
LU1. Exploration of the most relevant libraries in the Python data science stack. LU2. Use the entire stack and its different parts to develop a data science project.

Cursos

Cursos onde a unidade curricular é leccionada: