Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
MF2: Programação de aplicações informáticas
Unidade Formativa 1: Programação
1
Formador: Alexandre Correia
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Algoritmo e Programa
2
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
Compreender os conceitos básicos de programação
Definir o que é um algoritmo e um programa.
3 3
Click to edit
Conceito de Programação
Master title style
• Programação é o processo de escrever, testar e manter
o código fonte de programas de computador.
• O código fonte é escrito em uma linguagem de
programação que pode ser interpretada por um
compilador ou interpretador.
• A importância da programação no desenvolvimento de
software está em sua capacidade de transformar ideias
e algoritmos em soluções executáveis que resolvem
problemas reais.
4 4
Click to edit
Algoritimo e Master
Programa
title style
Definição: Exemplo:
• Um algoritmo é uma sequência finita de • Algoritmo para calcular a média de três
passos bem definidos que levam à números.
solução de um problema específico. 1. Ler os três números.
• Um programa é a implementação de um
2. Somar os três números.
algoritmo em uma linguagem de
programação que o computador pode 3. Dividir a soma por 3.
executar. 4. Exibir o resultado.
5 5
Click to editPráticas
Atividades Master title style
• Discussão em grupo de 2:
• Identifique algoritmos utilizados no cotidiano, como
seguir uma receita ou preparar para ir a formação.
6 6
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Desenvolva um algoritmo para uma tarefa cotidiana
simples, como organizar os passos para preparar café
da manhã.
7 7
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Instalar VSCode.
• link: https://code.visualstudio.com/download
• Instalar python.
• Liink: https://www.python.org/downloads/windows/
• Criar primeiro programa “HelloWorld”
8 8
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Variaveis, Dados e Tipos de
Dados
9
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Compreender o conceito de
variáveis em programação
• Compreender o conceito de dados
em programação
• Identificar diferentes tipos de dados
1010
Click to edit
Definição de Master
Dados etitle
Tipos
style
de Dados
Dados
• São informações que são processadas
ou armazenadas por um computador.
1111
Click to edit
Definição de Master
Dados etitle
Tipos
style
de Dados
Tipos de Dados em Python:
• Inteiros (`int`)
• Ponto flutuante (`float`)
• Caracteres (`str`)
• Booleanos (`bool`).
• Dados compostos: Arrays (listas em Python)
• Strings (`str`).
1212
Click to edit Master title style
Variáveis
• Sempre que desejamos guardar um
valor num programa, devemos usar
uma variável.
• Uma Variável não é mais que um nome que nós
damos a uma determinada pocição de memória para
conter um valor de um determinado tipo.
1313
Click to edit
Criando Variáveis
Master title style
• Python não tem comando para
declarar uma variável.
• Uma variável é criada no momento em que
você atribui um valor a ela pela primeira vez.
1414
Click to edit
Criando Variáveis
Master title style
• Maiúsculas e minúsculas
• Os nomes de variáveis diferenciam maiúsculas
de minúsculas (case-sensitive).
1515
Click to edit
Criando Variáveis
Master title style
Nomes de Variáveis
Uma variável pode ter um nome curto (como x e y)
ou um nome mais descritivo (idade, nome,
data_nascimento).
1616
Click to edit
Criando Variáveis
Master title style
• Regras para variáveis Python:
• Um nome de variável deve começar com uma letra
ou o caractere sublinhado
• Um nome de variável não pode começar com um número
• Um nome de variável pode conter apenas caracteres alfanuméricos e
sublinhados (Az, 0-9 e _)
• Os nomes das variáveis diferenciam maiúsculas de minúsculas (idade,
Idade e IDADE são três variáveis diferentes)
• Um nome de variável não pode ser nenhuma das palavras-chave do
Python . 1717
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa002.py
• Adiciona a mensagem “Hello World!”numa
variável e imprimir o conteudo dela na consola:
1818
Click to
Tipos deedit
Dados
Master title style
Exemplos em Python
• Inteiro (int): idade = 30
• Ponto Flutuante (float): altura = 1.75
• Caractere (str): nome = 'Alice'
• Booleano (bool): esta_chovendo = True
• Lista (list): numeros = [1, 2, 3, 4]
Saber +:
https://www.w3schools.com/python/python_datatypes.asp
1919
Click to
Tipos deedit
Dados
Master title style
Conversão de Tipos:
2020
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa003.py
• Declara variaveis para conter:
• Nome
• Apelido
• Morada
• Data Nascimento
• Executa o programa para imprimir os dados.
2121
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa004.py
• Adiciona a mensagem “Hello World!”numa
variável e imprimir o conteudo dela na consola:
2222
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Paradigmas de Programação
23
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Entender os diferentes
paradigmas de programação
• Explorar as características e usos
de cada paradigma
2424
Click to editde
Paradigmas Master
Programação
title style
• Eles são como conjuntos de regras
que guiam os desenvolvedores.
• Cada linguagem de programação é criada com
base nessas regras.
• Cada uma tem seu próprio conjunto de paradigmas
que os desenvolvedores seguem ao escrever o código.
2525
Click to edit
Paradigma Procedural
Master title style
• Baseado na ideia de procedimentos
ou rotinas
Exemplo:
Uma linguagem de programação que utiliza o paradigma
procedural é a linguagem C
2626
Click to edit
Paradigma Funcional
Master title style
• Baseado na ideia de funções e evita
estado e dados mutáveis
Um exemplo popular e moderno de uma linguagem
de programação que utiliza o paradigma funcional é
JavaScript.
Embora o JavaScript seja uma linguagem
multiparadigma, ele suporta e é frequentemente
usado no estilo funcional 2727
Click to edit
Paradigma Lógico
Master title style
• Baseado em fatos e regras, e usa
uma forma de lógica matemática
Um exemplo clássico de uma linguagem de
programação que utiliza o paradigma lógico é Prolog
(Programação em Lógica).
2828
Click to edit
Paradigma Orientado
Master title
a Objetos
style
• Baseado na ideia de objetos que
contêm dados e métodos.
Exemplo:
Criação e manipulação de classes e objetos em
Python.
2929
Criarto
Click uma classe
edit Master title style
Para criar uma classe, use a
palavra-chave class:
3030
Criarto
Click objeto
edit Master title style
Agora podemos usar a classe
chamada Aluno para criar
objetos:
Exemplo
Criar um objeto chamado aln1 e imprima o valor de
nome,curso,morada:
3131
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa004.py
• Criar uma classe pessoa e os atributos:
• nome
• apelido
• morada
• data_nascimento
• Criar um objeto da classe e imprime os seus atributos.
3232
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Linguagens de Programação
33
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Conhecer as principais
linguagens de programação
• Entender como escolher uma
linguagem de programação
3434
Click
História
to edit
e Evolução
Master das
titleLinguagens
style
de Programação
❑Início das Linguagens de Programação:
• Máquinas de cartões perfurados e linguagens de
montagem nos anos 1940-1950.
• Fortran (1957), a primeira linguagem de alto nível,
criada para aplicações científicas.
3535
Click
História
to edit
e Evolução
Master das
titleLinguagens
style
de Programação
❑Décadas de 60 e 70:
• Surgimento de linguagens estruturadas como C
(1972), que trouxe uma nova maneira de
organizar o código para sistemas operacionais e
software de sistema.
3636
Click
História
to edit
e Evolução
Master das
titleLinguagens
style
de Programação
❑Evolução para Linguagens Orientadas
a Objetos:
• Introdução de Smalltalk e C++ nos anos 80,
expandindo os paradigmas de programação para
incluir abstrações de objetos.
3737
Click
História
to edit
e Evolução
Master das
titleLinguagens
style
de Programação
❑Modernização e Versatilidade:
• O surgimento de Java (1995) e Python (1991)
nos anos 90 facilitou o desenvolvimento de
aplicações com interfaces gráficas e aplicativos
web.
• JavaScript revoluciona a interatividade web
desde os anos 90. 3838
Click
História
to edit
e Evolução
Master das
titleLinguagens
style
de Programação
❑Tendências Atuais:
• Linguagens modernas como Kotlin e Swift
respondem às necessidades de desenvolvimento
de aplicações móveis e de sistemas mais seguros e
eficientes.
3939
Principais
Click Linguagens
to edit Master de
title style
Programação
❑C:
• Usado para desenvolvimento de sistemas, drivers
de dispositivos, e aplicativos que exigem alto
desempenho.
• Exemplo: O sistema operacional Linux é
amplamente escrito em C.
4040
Principais
Click Linguagens
to edit Master de
title style
Programação
❑Java:
• Predominante em ambientes corporativos, robusto
para aplicações server-side.
• Exemplo: Aplicações Android e sistemas bancários
frequentemente usam Java.
4141
Principais
Click Linguagens
to edit Master de
title style
Programação
❑Python:
• Fácil de aprender, com sintaxe clara e legível;
amplamente usado em ciência de dados,
aprendizado de máquina e desenvolvimento web.
• Exemplo: A plataforma de vídeo YouTube utiliza
Python em muitas de suas funcionalidades internas.
4242
Critérios
Click para
to edit Escolher
Master uma
title style
Linguagem de Programação
❑Adequação ao Projeto:
• Considerar o domínio e os requisitos específicos do
projeto.
• Por exemplo: C++ para jogos de alto desempenho,
JavaScript para aplicações web.
4343
Critérios
Click para
to edit Escolher
Master uma
title style
Linguagem de Programação
❑Comunidade e Suporte:
• Uma grande comunidade pode oferecer vastos
recursos de aprendizado e suporte, além de
bibliotecas e frameworks que facilitam o
desenvolvimento.
• Exemplo: JavaScript e Python possuem extensas
bibliotecas e uma grande comunidade global.
4444
Critérios
Click para
to edit Escolher
Master uma
title style
Linguagem de Programação
❑Performance:
• Avaliar as necessidades de desempenho.
Linguagens compiladas como C e Rust oferecem
melhor performance em comparação a linguagens
interpretadas.
4545
Principais
Click Linguagens
to edit Master de
title style
Programação
❑Curva de Aprendizado :
• Considerar o nível de experiência da equipe de
desenvolvimento.
• Linguagens como Python são recomendadas para
iniciantes devido à sua sintaxe amigável e curva de
aprendizado suave.
4646
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa006.py
• Pede as seguintes informações ao utilizador:
• nome,apelido,morada,data_nascimento
• Faz apresentação organizado das informações
inseridas pelo utilizador.
4747
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Processo de Desenvolvimento
de um Programa
48
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Compreender as etapas do
desenvolvimento de um
programa
• Conhecer as metodologias de
desenvolvimento de Software
4949
Fases
Click to do
editDesenvolvimento
Master title style de
Software
❑Análise de Requisitos:
• Compreender e documentar o que é necessário
no sistema
Exemplo:
Uma reunião com clientes para determinar as
funcionalidades necessárias em um aplicativo de e-
commerce, resultando em um documento de requisitos.
5050
Fases
Click to do
editDesenvolvimento
Master title style de
Software
❑Projeto de Software:
• Definir a arquitetura e os componentes do
sistema
Exemplo:
Utilização de diagramas UML para modelar a arquitetura
e os componentes principais de um sistema de
gerenciamento de biblioteca. 5151
Fases
Click to do
editDesenvolvimento
Master title style de
Software
❑Implementação:
• Codificação dos componentes do sistema
Exemplo:
Desenvolvimento de funcionalidades em Java para um
sistema de gestão de projetos, implementando classes
e métodos conforme especificado no projeto.
5252
Fases
Click to do
editDesenvolvimento
Master title style de
Software
❑Testes:
• Verificar se o sistema atende aos requisitos
definidos
Exemplo:
Realização de testes unitários e de integração para
garantir que todas as funções do sistema de gestão de
projetos atendam aos requisitos especificados. 5353
Fases
Click to do
editDesenvolvimento
Master title style de
Software
❑Manutenção:
• Corrigir erros e fazer melhorias pós-lançamento
Exemplo:
Atualizar um aplicativo para corrigir bugs reportados
pelos utilizadores e adicionar novas funcionalidades
solicitadas. 5454
Metodologias
Click to edit de
Master title style
Desenvolvimento
❑Cascata:
• Um modelo sequencial onde o desenvolvimento
flui como uma cascata através das fases
5555
Metodologias
Click to edit de
Master title style
Desenvolvimento
❑Ágil:
• Abordagem iterativa e incremental, com entregas
frequentes e colaboração contínua
Scrum, Kanban, Extreme Programming (XP), Lean
Software Development, Feature-Driven Development
(FDD), Dynamic Systems Development Method
(DSDM), Crystal 5656
Metodologias
Click to edit de
Master title style
Desenvolvimento
❑Scrum:
• Focado em gerir tarefas dentro de ciclos iterativos
e incrementais chamados sprints 5757
Metodologias
Click to edit de
Master title style
Desenvolvimento
❑DevOps:
• Enfatiza a colaboração entre desenvolvimento e
operações, com foco na automação e na entrega
contínua
5858
Click to editPráticas
Atividades Master title style
• Exercício Prático:
• Criar programa007.py
• Pede as seguintes informações ao utilizador:
• numero
• Faz apresentação do dobro do numero inserido
(multiplica por 2).
5959
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Ferramentas para o
Desenvolvimento de um
Programa
60
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Conhecer as principais
ferramentas utilizadas no
desenvolvimento de software
6161
Ferramentas
Click to edit Master titlede
style
Desenvolvimento
❑IDEs (Ambientes de Desenvolvimento
Integrado):
• Facilitam a escrita, depuração e execução de
código
Exemplo:
Eclipse, Visual Studio, IntelliJ IDEA
6262
Ferramentas
Click to edit Master titlede
style
Desenvolvimento
❑Compiladores:
• Transformam código fonte em código executável
Exemplo:
GCC para C/C++, javac para Java
6363
Ferramentas
Click to edit Master titlede
style
Desenvolvimento
❑Interpretadores:
• Executam instruções de programas diretamente,
sem compilar o código fonte
Exemplo:
Python interpreter, Ruby MRI
6464
Ferramentas
Click to edit Master titlede
style
Desenvolvimento
❑Sistemas de Controle de Versão:
• Gerenciam mudanças no código fonte ao longo
do tempo
Exemplo:
Git, Subversion
6565
Click to editPráticas
Atividades Master title style
• Baixe e instale o Git
git-scm.com
• Configure seu nome de utilizador e email no Git:
• git config --global user.name “Alex Correia"
• git config --global user.email “
[email protected]"
6666
Click to edit Master title style
D E S E N V O LV I M E N T O D E A P L I C A Ç Õ E S I N F O R M Á T I C A
Depuração de Erros e Testes
67
Formador: Alexandre Correia
Click to edit Master title style
OBJETIVOS:
• Entender a importância da
depuração de erros e testes na
programação
6868
Click toDepuração
edit Masterde Erros
title style
❑Tipos de erros:
• Sintaxe - Erros no uso correto da linguagem de
programação
Exemplo:
6969
Click toDepuração
edit Masterde Erros
title style
❑Tipos de erros:
• Lógica - Erros no fluxo lógico que resultam em
resultados incorretos
Exemplo:
Erros de lógica ocorrem quando o programa compila e
executa, mas o resultado não é o esperado devido a um
problema no raciocínio ou na implementação da lógica.
7070
Click toDepuração
edit Masterde Erros
title style
❑Tipos de erros:
• Tempo de Execução - Erros que ocorrem
durante a execução do programa.
Exemplo:
Divisão por zero ou acessos a índices inválidos de
arrays 7171
Click toDepuração
edit Masterde Erros
title style
❑Técnicas de depuração :
• Uso de breakpoints - Parar a execução do
código em pontos específicos para verificar o
estado.
7272
Click toDepuração
edit Masterde Erros
title style
❑Técnicas de depuração :
• Logging - Registrar o fluxo de execução e os
valores das variáveis para análise.
7373
Click toDepuração
edit Masterde Erros
title style
❑Técnicas de depuração :
• Revisão de código - Análise sistemática do
código por outros desenvolvedores para
encontrar erros.
7474
Click toTestes e Qualidade
edit Master title style
❑Tipos de testes :
• Unitários: Testam partes específicas do código
para garantir que funcionem corretamente.
7575
Click toTestes e Qualidade
edit Master title style
❑Tipos de testes :
• Integração: Testam a combinação de
componentes para verificar se interagem
corretamente.
7676
Click toTestes e Qualidade
edit Master title style
❑Tipos de testes :
• Sistema: Avaliam o sistema completo para
verificar se atende aos requisitos especificados.
7777
Click toTestes e Qualidade
edit Master title style
❑Tipos de testes :
• Aceitação: Verificam se o sistema está pronto
para ser entregue, muitas vezes realizado pelos
usuários finais.
7878
Click toTestes e Qualidade
edit Master title style
❑Ferramentas e frameworks de testes :
• JUnit: Usado para testes unitários em aplicações
Java.
• pytest: Framework de testes para Python,
facilitando a escrita de testes simples e
escaláveis.
• Selenium: Ferramenta para testar aplicações
web em diversos navegadores e plataformas. 7979
Click to editPráticas
Atividades Master title style
• Trocar de lugar com os colegas e testar os
seus programas.
• Criar um documento com lista de bugs
encrontrados por cada programa.
8080
Click to edit Master title style
“
Se não puder se destacar-se pelo
talento, vença pelo esforço.”
- Dave Weinbaum
8181
Click to edit Master title style
OBRIGADO !
82