Turma 0104 Curso 224013 Disciplina 61123 Informática para Engenharia Ana Cristina de Castro e Araujo [email protected] 17/08/2009 ftp: ana.cristina/Informatica_ENG_Civil/ CEATEC - Centro de Ciências Exatas, Ambientais e de Tecnologias Agenda – Semana 1 Apresentações Objetivos / Bibliografia Conteúdo Programático Avaliação Cronograma Software e Lógica de Programação Histórico PLANO DE CURSO PLANO DE DISCIPLINA PLANEJAMENTO Apresentações – Ana Cristina Formação Acadêmica Graduação em Análise de Sistemas – PUCCAMP – 1995 Mestrado em Gerenciamento de Sistemas de Informação – PUCCAMP – 2004 Pós-Graduação em Gerenciamento de Projeto PMI – IBTA – 2009 Atividades Profissionais PMP, Gerente de Projetos (Ícaro 2009) Líder de Projetos em software (Prógonos 2008/2009) Analista de Negócios (Motorola 2006/2008) Consultor em Desenvolvimento (Motorola 2003/2006) Gerente de Projetos em software (Autilog 2000/2003) Analista Desenvolvedor (Autilog 1995/2000) Estágios (Bancos e no CpqD 1992/1995) Apresentações ... e vocês ? Nome O que espera desta disciplina? Tem familiaridade com sistemas e programação? Já fez algum programa de computador antes? Objetivos Adquirir conhecimento e desenvolver a capacidade de compreensão de: lógica de programação relacionada com programas de computador; programas de computador em função e sua utilização; elementos físicos do sistema (hardware) e sua integração com programas de computador; Outras Ferramentas... Lógica de Programação Bibliografia Bibliografia Básica MANZANO, José Augusto N.G., Estudo Dirigido de C++ Builder6, Editora Érica, 2005, 216p. Bibliografia Complementar SCHILDT, H. C completo e total, 3ª ed., SP, Makron Books, 1997, 827p. MIZRAHI, V.V. “C++ Treinamento em Linguagem” SP, Makron Books, 1994, 300p BERRY, J. Conteúdo Programático Editor gráfico de programa Objetos Propriedades Eventos Documentação de projeto Variáveis Operadores Estruturas condicionais Estruturas de repetição Todo conteúdo programático será ministrado no calendário atual da PUCC. Matrizes Registros Arquivos Avaliação Formar equipes de 2 alunos Os exercícios práticos não fazem parte da nota final, mas é indicado a execução dos mesmos para se preparar para as avaliações individuais e em duplas. Avaliações: 3 programas PROG1, PROG2, PROG3 PROG1 e PROG2 Individual PROG3 Em duplas Média := (Prog1 + 2x Prog2 + 3x Prog3) / 6 Avaliação Recuperação: Os alunos que desejarem melhorar a média final ou nota final inferior a 5,0 (cinco) farão um quarto programa, correspondente a uma prova substitutiva. Serão aprovados se obtiverem nota maior ou igual a 5,0 (cinco), através da seguinte fórmula: Média: = [(Prog1 + 2x Prog2 + 3x Prog3) + Prog 4] / 2 -------------------------------6 Cronograma Semana Assunto 01 Apresentação da disciplina, noções sobre computadores e algoritmos; Primeiro programa (objetos, propriedades e eventos); Segundo programa (soma/concatena frase). Documentação de programas (Soma frase; Nome Completo) Tipos de variáveis, operadores (Calculadora; Média Makoto) Tipos de variáveis, operadores (Calcula Salário Liquido; Resitor) Avaliação 1 Estrutura Condicional Estrutura Condicional Comandos de Seleção, Estrutura de Repetição Estrutura de Repetição Avaliação 2 Avaliação 2 Funções, Vetores, Matrizes Matrizes (continuação) Matrizes Estruturas Avaliação 3 Avaliação 3 Avaliação 3 Noções de arquivo Avaliação substitutiva 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 Software Formado por... Instruções : Quando executadas produzem a função e o desempenho desejado. Estruturas de Dados : Possibilita os programas manipular adequadamente os dados, transformando-os em informação Documentos : Descreve a operação e o uso dos programas. Software Curva de falhas de hardware (Pressman) Curva de falhas de software (Pressman) - Não se desgasta, mas deteriora. - Feito sob medida. - Sujeito a mudanças. Tipos de Software Alguns exemplos de tipos de software: COMERCIAL Visio Operações comerciais e auxilio a tomadas de decisão. Outlook Project AutoCAD Tipos de Software BÁSICO Windows Programas de apoio a outros programas. Linux DE TEMPO REAL Unix Monitora, analisa e controla eventos do mundo real. Necessariamente tem que haver uma simulação de um ambiente externo. Telemetria GPS Simuladores para aviação Tipos de Software EMBUTIDO Sincronizador de Palm Controla produtos e sistemas (indústria e consumo) Software de Celulares Coletores de dados COMPUTADOR PESSOAL Processamento de textos, planilhas, diversões, etc. Word Excel MSN Skype IE ; Firefox... Tipos de Software INTELIGÊNCIA ARTIFICIAL Algoritmos não numéricos para resolver problemas que não sejam favoráveis à análise direta. Nitendo Wii (simula eventos humanos e vai aprendendo com o seu comportamento) Sistemas de análise de diagnose médica. CIENTÍFICO DE ENG. Algoritmos de processamento de números Programas para cálculos que dificilmente faria à mão Lógica de Programação Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema. Instruções: “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo, através de instruções. Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo: Forbellone, André Luiz Villar - MAKRON, 1993. Lógica de Programação Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Exemplo: “Somar dois números quaisquer”. . Escreva o primeiro número no retângulo A · Escreva o segundo número no retângulo B · Some o número do retângulo A com número do retângulo B e coloque o resultado no retângulo C Escrevo o algoritmo em uma linguagem de programação , que ao ser executado recebe entradas e retorna o resultado esperado pelo algoritmo. Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo: Forbellone, André Luiz Villar - MAKRON, 1993. Lógica de Programação O que vamos programar? Vamos fazer pequenos programas passando pelos tipos de estrutura de dados citados no conteúdo programático. Que linguagem de programação vamos utilizar? A linguagem C++, através da ferramenta Borland C++ Builder. Borland C++ Builder? Uma ferramenta visual baseada em eventos que facilita a compreensão da utilização da linguagem de programação para geração de software. Histórico -O C++ evoluiu do C, que por sua vez evoluiu do B, que evoluiu do BCPL. - Tanto o BCPL e o B foram linguagens sem tipo, ou seja, qualquer item de dado ocupava uma "palavra" na memória. Sendo assim, a parte de tratamento dos tipos ficava totalmente na mão do programador. -A linguagem C, implementada em 1973, já oferecia a tipificação de dados e ganhou reconhecimento quando utilizado como linguagem de desenvolvimento do sistema operacional UNIX. E agora, disponível em vários sistemas operacionais, adquirindo a característica de portabilidade. -O C++ é uma evolução do C usando elementos do Simula 67 (que era uma linguagem de simulação - anos 80). O que mais complementa ao C, é fornecer recursos para programação orientada a objetos (POO). - O C++ absorveu parte do C e a capacidade do Simula de criar e manipular objetos. Histórico -A POO permite agilizar o desenvolvimento, pois objetos e componentes podem ser reutilizados, além de deixar o desenvolvimento mais produtivo e otimizado, utilizando as mesmas técnicas de programação estruturada. - O Java, também linguagem POO, só foi formalmente apresentado em 1995, pela Sun. - Cinco anos depois, em 2000, a Microsoft anunciou o C# (C Sharp) e sua estratégia .Net. A estratégia .Net incorporava a Internet como um novo modelo de programação para criar aplicativos baseados em WEB onde os usuários poderiam acessar a partir de diversos dispositivos (PCs, computadores portáteis e sem fio). Histórico - O C++ Builder da Borland é um ambiente visual, orientado a objetos que tem por finalidade desenvolver aplicações rapidamente para o Windows 95/98/NT. Estas aplicações podem ser de propósitos gerais ou cliente/servidor. Usando o C++ Builder, você pode criar eficientes aplicações Windows com o mínimo de codificação manual. - O Borland C++ Builder disponibiliza uma extensa biblioteca de componentes reutilizáveis e um ambiente de ferramentas RAD (Desenvolvimento de Aplicações Rápida). IDE (integrated development environment - ambiente de desenvolvimento integrado). Neste IDE, o desenvolvedor pode escrever, executar, testar e depurar os programas. Observações Atenção: cópias de programas ! Tenho como saber se alguém copiou de alguém. Cópia leva zero... O mais importante é aprender ! E com isso ter um diferencial lá na frente ! Aprender em Sala de Aula é melhor do que deixar para depois... Aproveite o tempo ! Deixe “esse tempo” fora da faculdade para se dedicar a coisas que vocês gostam de fazer ou a matérias que tenham maior dificuldade. Observações Por que eu tenho que aprender coisas que nem sei se vou usar? - Para exercitar o raciocínio - Para ver coisas diferentes fora da sua “caixa de conhecimento” - Ampliando o conhecimento de diferentes coisas eu permito a inovação, criatividade e competência ! Observações Se você pensar que é vais ser legal, vai ser legal e se você pensar que não vai ser legal, não vai ser legal. Simples assim... “Há duas coisas na vida que vocês têm que fazer. Vocês têm que morrer e fazer escolhas. Dessas duas não há como escapar.” (James C. Hunter) A decisão é de cada um de vocês, de fazerem o melhor e colher os resultados de suas próprias ações. Então é só ter vontade e compromisso? INTENÇÕES – AÇÕES = NADA... VONTADE = INTENÇÕES + AÇÕES (escolhas) COMPROMISSO = Sustentar essas escolhas Let's do it! Documentação faz parte do software, lembra !? Vamos documentar cada programa e o mesmo deverá ser armazenado na área de cada aluno para estudo para as avaliações. Não é necessário ser enviado ao professor. Utilizar o template fornecido na disciplina na aula 3! Vamos fazer os primeiros programas juntos !!! Apresentar o editor de Programas: Partes do programa: Barra de menus, Barra de Ferramentas, Guia de Componentes, Form, Unit, Object Inspector.