Introduction to Programming

Objectives

In this course, you will prepare yourself for working with a team of developers by "getting your hands dirty" with learning and using the tools of modern software development. The purpose of this course is not to make you a software engineer. It is to show you the development cycle as well as to give you the basic understanding in case you want to discover more after the class.  


General characterization

Code

2477

Credits

7

Responsible teacher

Ricardo João Gil Pereira

Hours

Weekly - Available soon

Total - Available soon

Teaching language

English

Prerequisites

n/a 


Bibliography

Fluent Python - Luciano Ramalho (2015) 


Teaching method

The class will be in a blended format, which requires students to do half of the time in async work. We will use the weekly in-person classes to do discussions, live coding and quizzes to practice in teams and the remote/async to do knowledge transfer. Because evaluation is based on a game where each student can play their own way, each student will have specific questions, for which we will make available office hours to answer in order to build a more personalized learning experience. 


Evaluation method

Final exam: 40% - it will cover all the important technical concepts that we worked on during the semester. Continuous evaluation (gamified): 60% - set of optional assignments, articles, peer-reviewing, in-class quizzes and badges, all through a community-driven perspective. The badges will grant the student an extra grade for outstanding performances, consistent participation in technical discussions (Slack) or brainstorming/feedback on the game (we want your help improving the game). 


Subject matter

Variables

Data Structures

Flow control

Functions

Keyword Args and scope

Files I/O

Classes

Python Libraries

APIs Variáveis