# Introduction to Programming

**Year**

1

**Academic year**

2023-2024

**Code**

01020651

**Subject Area**

Informatics

**Language of Instruction**

Portuguese

**Mode of Delivery**

Face-to-face

**Duration**

SEMESTRIAL

**ECTS Credits**

6.0

**Type**

Compulsory

**Level**

1st Cycle Studies

## Recommended Prerequisites

Mathematical background at a basic level. Logic thinking and abstraction skills.

## Teaching Methods

This course is organized in a T lecture (1h) and two classes of two hours each during fourteen weeks. In the theoretical lecture, the main concepts of programming will be introduced, that will be explored in the next practical lectures. The concepts will be exemplified with code snippets while the practice will be driven by problems that foster student’s motivation. Within this model it will be possible to evaluate the students based on two components: mini tests (25%) and a (closed books) written exam (75%).

## Learning Outcomes

The main goal is to teach/learn the basic principles of procedural programming in the context of problem solving. A programming language is just the vehicle that enables us to express algorithmic solutions to problems, and from that point of view they are all equivalent, yet we opt by Python for it minimizes the burden of complex syntax and because it induces good programming practices.

We expect students to acquire and develop the skills of analysis and synthesis, of problem solving, critical reasoning, practical application of the knowledge, and the informatics competences related with the concepts under study. We also want to foster the autonomous learning and group work skills, the interpersonal relationships and the oral and written communication.

## Work Placement(s)

No## Syllabus

1. Computers, programs and computation

2. Basic concepts: simple objects and operators

3. Destructive Instructions

4. Control instructions

5. Structured objects: lists, tuples and dictionaries

6. Files

7. Recursion

8. Complements: scope of variables, modules, iterators, generators, higher-order functions

9. Program development.

## Head Lecturer(s)

João Rodrigues de Campos

## Assessment Methods

Assessment

*
Mini Tests: 25.0%*

*Exam: 75.0%*

## Bibliography

- Programação em Python: fundamentos e resolução de problemas, Ernesto Costa, FCA 2015.

- Python: programming in context, B. Miller and D. Ranum, Jones and Bartlett, 2009.

- Learning Python (4th edition), M. Lutz, O’Reilly, 2009.

- Introduction to Computation and Programming using Python, John V. Guttag, 2012

- Python Playground, Mahesh Venkitachalam, No Starch Press, 2016,

- Introduction to Python for Science and Engineering, David J. Pine, CRC Press, 2019.

- An Introduction to Python and Computer Prtogramming, Yue Zhasng, Springer, 2015.

- Python Crash Course, Eric Matthes, No Starc Press, 2016.