Chapter 0 Computers and Programs Fundamentos de Programação MAR 1 2024
Porquê Computação e Programação em Engenharia Mecânica? 21/22 Fundamentos de Programação 2
Apresentação da disciplina A Computação e a Programação Aplicações à Engenharia 21/22 Fundamentos de Programação 3
Corpo Docente 21/22 Fundamentos de Programação 4
Desenvolver nos alunos competências que lhes permitam conceber, desenvolver e manter e/ ou analisar/testar programas de computador. Ensinando: Uma abordagem sistemática para a criação de programas Como estruturar programas e dados de formas que são comuns a várias linguagens de programação As linguagens específicas e ferramentas de programação do Python e do MATLAB . 21/22 Fundamentos de Programação 5
Syllabus Python Programming: An Introduction to Computer Science Computers and Programs; Writing Simple Programs Computing with Numbers; Objects and Graphics Sequences: Strings, Lists and Files Defining Functions ; Decision Structures Loop Structures and Booleans; Simulation and Design Defining Classes; Data Collections Object-Oriented Design; Algorithm Design and Recursion Introdução ao MATLAB Estruturas básicas de Matlab . Programação em Matlab . Funções definidas pelo utilizador Instruções de entrada/saída. Tipos de dados estruturados 21/22 Fundamentos de Programação 6
Bibliografia seguida: Python Programming: An Introduction to Computer Science, 3rd Ed., John M. Zelle , Franklin, Beedle & Associates , 2017. Bibliografia Complementar: Programação em Phyton . Introdução à Programação Utilizando Múltiplos Paradigmas”, João Pavão Martins, n.º 55 da Coleção Ensino da Ciência e da Tecnologia, IST Press Programação em Phyton . Introdução à Programação e Resolução de Problemas. Ernesto Costa 21/22 Fundamentos de Programação 7
Think Python: How to think like a computer scientist, A. Downey, Green Tea Press, 2012. MATLAB: A Practical Introduction to Programming and Problem Solving, 4th Edition, Stormy Attaway, Elsevier, 2016. 21/22 Fundamentos de Programação 8
Projecto Projeto ( Proj ) (grupos de 2 alunos) Prova Escrita (Exame) - ExOnline Componente de Avaliação Contínua (AC) (grupos de 2) Atividades em todas as Aulas de Problemas O alunos devem ter um PC 2 problemas de programação que devem correr como esperado. Cada problema vale 10 valores. 21/22 Fundamentos de Programação 9
Nota Final Confirmar na página WWW Nota Final: 40% Proj + 40% Exame + 20% AC Notas mínimas Proj ≥ 9.5 val Exame ≥ 7 val Nota Final ≥ 9.5 val (?) Prova oral para notas acima de 18 valores. 21/22 Fundamentos de Programação 10
Python Ver Aula de Problemas 1. Default 6.0 (current in Anaconda) Matlab DSI / CIIST ver: https://si.tecnico.ulisboa.pt/software/matlab/ IMPORTANT NOTICE (18 January 2023): Matlab is since today available on a Campus wide license, providing unlimited access to all students and faculty to all Matlab products and toolboxes. At that moment, all users with existing accounts at mathworks.com were automatically added to the Campus License. Utilização dos PCs do LEMAC – LTI (confirmar horarios) 21/22 Fundamentos de Programação 11
A Computação e a Programação Apresentação da disciplina Aplicações à Engenharia 21/22 Fundamentos de Programação 12
Computação (nome feminino) ato ou efeito de computar; cálculo, contagem cálculo orçamental INFORMÁTICA tratamento de dados, de informação, através de um computador Infopédia (Porto Editora) substantivo feminino, de (latim computatio, -onis) Acto ou efeito de computar. = CÁLCULO, CÔMPUTO [Informática] Conjunto de conhecimentos e técnicas referentes ao uso de computadores. [Informática] Processamento automático de dados através de computadores. Dicionário Priberam da Língua Portuguesa 21/22 Fundamentos de Programação 13
Computação Sequência de ações deliberadas que visam a procura de soluções para um dado problema com base nos seus dados de entrada e utilizando um algoritmo. 21/22 Fundamentos de Programação 14
Computação Até meados do século XX o processo de computação baseava-se na utilização de suportes físicos, tipo caneta e papel, recorrendo por vezes a tabelas e ferramentas manuais ou mecânicas. Entretanto com o advento dos computadores digitais, o termo omputação tem sido associado sobretudo à criação e utilização de programas de computador. 21/22 Fundamentos de Programação 15
IBM 360 (CCUL) 21/22 Fundamentos de Programação 16 Ajudar a ordenar os cartões Se cairem ao chão, p/ ex
VAX/VMS 21/22 Fundamentos de Programação 17 https://www.quora.com/What-was-it-like-to-use-VAX-VMS
IBM PC 21/22 Fundamentos de Programação 18 https://pt.wikipedia.org/wiki/IBM_Personal_Computer_XT
Zx Spectrum 21/22 Fundamentos de Programação 19 https://zeventura.blogspot.com/2010/10/ainda-o-zx-spectrum-48k.html https://tecnico.ulisboa.pt/pt/eventos/110-historias-110-objetos-o-spectrum-no-tecnico/
tower 21/22 Fundamentos de Programação 20 https://baudattitude.com/2011/05/02/adventures-in-pc-cooling/ https://commons.wikimedia.org/wiki/File:Tower_PC.jpg
Portable computer 21/22 Fundamentos de Programação 21 https://pt.wikipedia.org/wiki/IBM_Portable_Personal_Computer
laptop 21/22 Fundamentos de Programação 22 https://www.gearxnews.com/2021/02/03/test-asus-zenbook-duo-ux482e-two-armchairs-for-one/
Raspberri PI 2024 Fundamentos de Programação 23 https://commons.wikimedia.org/wiki/File:Raspberry_Pi_3_(24914484549).png
Arduino 21/22 Fundamentos de Programação 24 https://www.piqsels.com/pt/public-domain-photo-zagip
Arduino Nano Fundamentos de Programação 25 21/22
Nvidia Jetson Nano 2 21/22 Fundamentos de Programação 26 https://commons.wikimedia.org/wiki/File:Nvidia_Jetson_Nano_2_Development_Kit_15_14_39_352000.jpeg
Até meados do século XX o processo de computação baseava-se na utilização de suportes físicos, tipo caneta e papel, recorrendo por vezes a tabelas e ferramentas manuais ou mecânicas. Entretanto com o advento dos computadores digitais, o termo computação tem sido associado sobretudo à criação e utilização de programas de computador 21/22 Fundamentos de Programação 27
Programa substantivo feminino (…) 9. Conjunto de instruções, de dados ou de expressões registadas num suporte e necessárias para a execução de uma série de determinadas operações, pedidas a um computador. Dicionário Priberam da Língua Portuguesa 21/22 Fundamentos de Programação 28
Programa de Computador • Um PROGRAMA DE COMPUTADOR é uma sequência de instruções que o computador deve executar para resolver um dado problema. • O termo programa é usado normalmente para referir o código fonte ou o arquivo que contém a sua forma executável. • O código fonte é um texto codificado que descreve numa dada linguagem de programação o algoritmo da tarefa de computação que o programa pretende realizar. 21/22 Fundamentos de Programação 29
Programação nome feminino (…) INFORMÁTICA elaboração de um programa para computador Infopédia (Porto Editora) • Programação é um processo que inclui as fases de: • Projeto • Escrita • Teste • Depuração de erros • Manutenção do código fonte. 21/22 Fundamentos de Programação 30
O que se aprende em Fundamentos de Programação Estruturar o raciocínio: como ir do problema ao algoritmo que o resolve Linguagens de programação para codificar o algoritmo Técnicas para codificar eficazmente de forma a minimizar o trabalho de depuração de erros, a realização de testes, e facilitar a manutenção do programa Criar código reutilizável noutros problemas Entender o computador como uma ferramenta de cálculo, processamento de dados e de controlo e dispositivos 21/22 Fundamentos de Programação 31
Aplicações à Engenharia Apresentação da disciplina A Computação e a Programação 21/22 Fundamentos de Programação 32
Simulação O algoritmo utiliza modelos matemáticos para simular e prever o comportamento de sistemas reais Projeto estrutural Cálculo de interações físicas Estudo dos fluxos de entidades em linhas de produção ou de serviços etc. 21/22 Fundamentos de Programação 33
Aplicações à Engenharia Controlo / Comando O algoritmo determina (eventualmente com base em modelos matemáticos) as ações a exercer sobre, ou por, sistemas reais tendo em vista um dado objectivo Controlo de máquinas Controlo de processos de produção Controlo de robôs etc. 21/22 Fundamentos de Programação 34
Aplicações à Engenharia 21/22 Fundamentos de Programação 35
Aplicações à Engenharia Monitorização / Registo / Análise de dados O algoritmo faz a gestão da aquisição de dados, e apresenta, analisa e/ou salvaguarda esses dados etc, etc, etc… 21/22 Fundamentos de Programação 36
21/22 Fundamentos de Programação 37
Fundamentos de Programação 38 21/22
Fundamentos de Programação 39 21/22
Fundamentos de Programação 40 21/22
21/22 Fundamentos de Programação 41
21/22 Fundamentos de Programação 42
Laboratórios 4.0 Área: Indústria 4.0 Objetivo: melhorar a eficiência otimizando o uso de recursos humanos e equipamento laboratorial. Planeamento e escalonamento de análises; Automação de tarefas laboratoriais; Otimização baseada em machine learning Ambiente de programação: Python (entre outras) 21/22 Fundamentos de Programação 43
Sistemas de cuidados de saúde Área: sistemas de cuidados de saúde Objetivo: conceber sistemas para melhorar as taxas de sobrevivência em doentes internados nas UCIs sujeitos aos riscos de morte por sepsis, AKI, etc. Ambiente de programação: MATLAB, Python Aplicação prática: sistemas de apoio à decisão e suporte à vida em Unidades de Cuidados Intensivos 21/22 Fundamentos de Programação 44
Fundamentos de Programação 45 21/22
Honda Fundamentos de Programação 46 21/22
Robôs móveis “ Rasteirinho ” 21/22 Fundamentos de Programação 47 33 • Área: Robótica móvel • Objectivo: Controlo de trajectória • Ambiente de programação: MATLAB, Simulink, C++
Cirurgia robótica Área: Robótica cirúrgica Objetivo: Melhorar a precisão em tarefas de cirurgia Ambiente de programação: MATLAB , Simulink 21/22 Fundamentos de Programação 48
21/22 Fundamentos de Programação 49
21/22 Fundamentos de Programação 50
Interacção Homem -Robot 21/22 Fundamentos de Programação 51
NOTA FINAL 21/22 Fundamentos de Programação 52
Como andar de bicicleta 21/22 Fundamentos de Programação 53 https://incrivel.club/inspiracao-dicas/z-simples-passos-para-aprender-a-andar-de-bicicleta-276810/
21/22 Fundamentos de Programação 54
21/22 Fundamentos de Programação 55
Só aprende a programar programando e tentando e corrigindo os erros até atingir o equilíbrio e seguir em frente sempre (até sem o “help” os mais ousados!). 21/22 Fundamentos de Programação 56
Só aprende a andar de bicicleta andando e caindo até atingir o equilíbrio e seguir em frente sempre (até sem as mãos para os mais ousados!). Rodrigo Chung 21/22 Fundamentos de Programação 57
Andar de bicicleta é uma habilidade divertida e saudável de se aprender. Aqui estão os passos básicos para começar: Escolha a bicicleta certa : Certifique-se de que a bicicleta é do tamanho adequado para você. Quando você está sentado no selim, seus pés devem tocar o chão com facilidade (pelo menos os dedos dos pés). Ajuste a bicicleta : Verifique se os pneus estão devidamente calibrados e se os freios estão funcionando bem. Equilibre-se : Comece a praticar equilibrando-se. Sente-se no selim e coloque os pés no chão para sentir o equilíbrio. Depois, levante os pés e tente ficar o maior tempo possível sem cair. Se precisar, pode usar uma parede ou outro apoio para ajudar. Começando a pedalar : Coloque um pé no pedal e empurre o outro pé para o chão para ganhar impulso. Assim que começar a se mover, coloque o outro pé no pedal e comece a pedalar suavemente. Tente manter a postura reta, olhando para frente, não para os pés. Freios : Use os freios com suavidade para evitar quedas. Em geral, você deve apertar os dois freios 21/22 Fundamentos de Programação 58
21/22 Fundamentos de Programação 59
O mesmo tutor… 21/22 Fundamentos de Programação 60 Resultado obtido em 15/2/2025
E não é questão de lingua… Fundamentos de Programação 61 21/22 Resultado obtido em 15/2/2025
Hora aula: 17h 30 Segundo chat- GPT Fundamentos de Programação 62 21/22
Fundamentos de Programação 63 21/22 Aprendizagem rápida ? Resultado obtido em 15/2/2025 Não : …Login
Chat Gpt melhor … Fundamentos de Programação 64 21/22
Fundamentos de Programação 65 21/22
Claro! Aprender a andar de bicicleta é mais fácil do que parece. Aqui está um passo a passo para te ajudar: ### 🚴♂️ **Passo a Passo para Aprender a Andar de Bicicleta** ### **1. Escolha um bom local** - Um lugar plano e seguro, como um parque ou uma rua tranquila. - Se possível, um chão de grama ou terra batida pode ajudar a amortecer quedas. ### **2. Ajuste a bicicleta** - A altura do selim deve permitir que você toque o chão com os pés quando sentado. - Verifique os freios e os pneus para garantir que estão funcionando bem. ### **3. Comece com o equilíbrio** - Se possível, use uma bicicleta sem pedais (ou remova os pedais temporariamente). - Sente-se no selim e empurre-se com os pés, deslizando e ganhando confiança no equilíbrio. ### **4. Pratique arrancar e parar** - Aprenda a usar os freios suavemente para evitar quedas bruscas. - Experimente empurrar com um pé no chão e depois colocar ambos nos pedais. ### **5. Aprenda a pedalar** - Quando já se sentir confortável com o equilíbrio, tente pedalar devagar. - Olhe para frente e mantenha o corpo relaxado. ### **6. Controle a direção** - Use os braços para manter a bicicleta reta. - Faça curvas suaves e mantenha o olhar na direção para onde quer ir. ### **7. Pratique até pegar confiança!** - No começo, você pode perder o equilíbrio algumas vezes, e isso é normal. - Continue treinando e, em pouco tempo, andar de bicicleta será natural! Se tiver dúvidas ou precisar de mais dicas, me avise! 🚴♂️💨 Texto complete… Fundamentos de Programação 66 21/22 Aprendeu ? …Login
Pratique a frenagem Familiarize-se com os freios da bicicleta ( geralmente , o freio traseiro fica no manete direito e o freio dianteiro no esquerdo ). Aperte- os com cuidado e de forma gradual, para evitar travar a roda dianteira e perder o controle . Mantenha um ritmo constante No começo , pedale devagar e vá aumentando a velocidade gradualmente . Pedaladas mais constantes ajudam no equilíbrio . Treine curvas e viradas Quando for virar , reduza um pouco a velocidade e incline-se levemente na direção da curva. Quanto mais prática , mais natural se torna o movimento . Confiança e prática Aprender a andar de bicicleta requer prática repetida . Não se preocupe se demorar um pouco para pegar o jeito . Cada pequena melhora vai aumentar sua confiança . Dicas extras Se sentir que vai cair , tente colocar um pé no chão para se equilibrar ou reduzir o impacto . Mantenha sempre atenção ao seu redor (outros ciclistas , pedestres , carros ). À medida que se sentir mais confortável , experimente lugares diferentes e aprenda a lidar com subidas e descidas . Com paciência e persistência , logo você estará pedalando com tranquilidade . Boa sorte ! Ou… Fundamentos de Programação 67 21/22 Claro! Aqui vai um guia passo a passo para aprender a andar de bicicleta : Escolha um local seguro Procure um lugar plano, sem muito movimento ( pode ser um estacionamento vazio , uma praça ou uma ciclovia tranquila ). Evite terrenos irregulares ou com declives muito acentuados enquanto estiver começando . Verifique a altura do selim (banco) Ajuste o selim de modo que você consiga encostar a ponta dos pés no chão quando estiver sentado . No início , é importante sentir -se seguro e conseguir apoiar os pés rapidamente . Use equipamentos de proteção Utilize capacete , que é o principal item de segurança . Cotoveleiras , joelheiras e luvas também ajudam a evitar machucados em caso de queda . Comece treinando o equilíbrio Uma técnica simples: retire ( ou não use) os pedais inicialmente , sente-se na bicicleta e empurre com os pés , como se fosse um patinete . Vá ganhando confiança , tentando se manter equilibrado por alguns segundos . Quando estiver mais seguro , volte a colocar ( ou usar) os pedais . Iniciando a pedalada Coloque um pé no pedal que estiver mais alto e empurre esse pedal para baixo , enquanto o outro pé começa a pedalar . Assim que a bicicleta começar a se mover, tente manter o equilíbrio e olhar para a frente . Olhe para frente , não para o chão Manter a cabeça erguida ajuda muito no equilíbrio . Escolha um ponto à sua frente para olhar e mantenha a postura reta .
Fundamentos de Programação 68 21/22
Language Ease of Learning Community Support Portability Python ⭐⭐⭐⭐⭐ (Very easy, simple syntax) ⭐⭐⭐⭐⭐ (Huge community, many libraries) ⭐⭐⭐⭐ (Works on most platforms) JavaScript ⭐⭐⭐⭐ (Easy, but some quirks) ⭐⭐⭐⭐⭐ (Very large, used in web dev) ⭐⭐⭐⭐⭐ (Runs in all browsers) Java ⭐⭐⭐ (Moderate, strict syntax) ⭐⭐⭐⭐ (Strong enterprise community) ⭐⭐⭐⭐⭐ (Cross-platform with JVM) C++ ⭐⭐ (Hard, complex syntax) ⭐⭐⭐⭐ (Big but more specialized) ⭐⭐⭐⭐ (Runs on many platforms but needs compiling) C# ⭐⭐⭐ (Moderate, similar to Java) ⭐⭐⭐⭐ (Good for Windows and Unity dev) ⭐⭐⭐ (Mostly Windows-focused, but .NET Core helps) Go ⭐⭐⭐⭐ (Simple but strict) ⭐⭐⭐ (Growing, but not as big as Python/JS) ⭐⭐⭐⭐ (Cross-platform, compiles to binaries) Rust ⭐⭐ (Hard, strict memory management) ⭐⭐⭐ (Growing, great for system dev) ⭐⭐⭐⭐ (Cross-platform, but compiling needed) Swift ⭐⭐⭐⭐ (Easy, modern syntax) ⭐⭐⭐⭐ (Strong Apple community) ⭐⭐⭐ (Best for Apple platforms) Fundamentos de Programação 69 21/22 Sure! Here’s a comparison of some popular programming languages based on ease of learning, community support, and portability : Summary: Easiest to Learn : Python, JavaScript, Swift Best Community Support : Python, JavaScript, Java Most Portable : JavaScript, Java, Python, Go