USP - ICMC - SSC SSC o. Semestre BSI. Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Documentos relacionados
Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina de Introdução à Ciência da Computação Laboratório de ICC (Estatística)

Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina de Introdução à Computação para Engenharia Ambiental

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Estrutura de Programas e Tipos de Dados Simples

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Aula 1 Apresentação do Curso

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Laboratório de Introdução à Ciência da Computação I

Laboratório de Introdução à Ciência da Computação I

Laboratório de Introdução à Ciência da Computação I

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais

PROGRAMAÇÃO I. Introdução

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Introdução à Lógica de Programação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Disciplina de Organização de Computadores I

SSC0502 Laboratório de Introdução à Ciência da Computação I Aula 1 - Apresentação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Disciplina de Organização de Computadores Digitais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Sistemas Operacionais

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Programação Estruturada

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

3. Linguagem de Programação C

Algoritmos Computacionais

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Ambiente de desenvolvimento

Programação I A Linguagem C. Prof. Carlos Alberto

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução a Programação de Jogos

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

Aula 2 - Programação de Computadores - CI208 1/21

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Conceitos Básicos. Fundamentos de Programação de Computadores

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

SSC0300 Linguagens de Programação e Aplicações Aula 1 - Apresentação

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Linguagem de Programação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Tópicos em C. Eliade F. Lima

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

GFM015 Introdução à Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Engenharia Civil. Conceitos Básicos. Introdução à Computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Programação Estruturada Aula - Introdução a Linguagem C

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO

Introdução à Informática Engenharia Agrícola

Linguagens de Programação Classificação

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Programação Estruturada II

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Aula 1 Apresentação do curso e Conceitos Fundamentais. Objetivo do curso

SSC0301 Introdução à Computação para Eng. Ambiental (teórica)

PLANO DE UNIDADE DIDÁTICA- PUD

Módulo 1 Conceitos Fundamentais

Estruturas Dinâmicas - Ponteiros Parte I

Disciplina de Arquitetura de Computadores

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Disciplina de. Organização de Computadores Digitais

Fundamentos de Programação 1

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Fundamentos de Programação

Sistemas Operacionais I

Programação Estruturada II

Computação Eletrônica

Computação. Introdução a C e Variáveis Inteiras

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

SSC0304 Introdução à Programação para Engenharias

Introdução a Computação

Sistema Computacional

Programação Básica. Estrutura de um algoritmo

Introdução à Programação

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Transcrição:

USP - ICMC - SSC SSC 0501-1o. Semestre 2015 - BSI Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/ Web - WIKI ICMC: http://wiki.icmc.usp.br/index.php/ssc-501-2015(fosorio) 1 Disciplina Prática: SSC0502 Laboratório ICC (Delamaro/Simone) Informações sobre SSC0502 no STOA Moodle USP Aula 01 Terça Apresentação da Disciplina Agenda: 1. Objetivos da Disciplina 2. Programa e Conteúdos 3. Material de Apoio 4. Critérios de Avaliação 5. Recuperação 6. Bibliografia Básica 2 Informações Complementares a Atualizadas: Consulte REGULARMENTE o material disponível na WIKI ICMC: http://wiki.icmc.usp.br/index.php/ssc-501 ou http://wiki.icmc.usp.br/index.php/ssc-501-2015(fosorio) 1

Objetivos da Disciplina SSC0501 - Introdução à Ciência da Computação OBJETIVOS Apresentar os conceitos básicos para o desenvolvimento de programas, utilizando uma linguagem de programação como apoio. Linguagem adotada: C 3 PROGRAMA RESUMIDO Conceitos básicos sobre computadores. Resolução de problemas e desenv. de algoritmos. Estruturas de programas. Tipos de dados simples. Modularização de programas. Tipos de dados compostos. Arquivos. Depuração de programas. Programação em linguagem estruturada. Disciplina composta de - Parte Teórica [Aulas Teóricas Terças 21h e Sextas 19h ] - Parte Prática [Turma 1 e Turma 2: Delamaro, Simone] Carga Horária Total: 60 h (~15 aulas x 4 horas: 2h+2h) Método: Aulas expositivas, exercícios e provas + Atividades Monitoria Programa e Conteúdos Cronograma Previsto: Aula / Data / Conteúdos 4 2

Programa e Conteúdos Cronograma Previsto: Aula / Data / Conteúdos 5 Material de Apoio SSC0501 - Introdução à Ciência da Computação Material on-line: WIKI ICMC - http://wiki.icmc.usp.br Informações Complementares e Atualizadas: > Consulte REGULARMENTE > o material disponível na WIKI 6 Veja a seção "Material de Aulas" Veja também a seção "Material Complementar" Disponíveis na Wiki ICMC 3

Material de Apoio 7 Material de Apoio 8 4

Material de Apoio: Facebook 9 Material de Apoio: STOA Moodle disciplinas.stoa.usp.br 10 5

Critérios de Avaliação Avaliação: SSC0501 - Introdução à Ciência da Computação Prof. Fernando Santos OSÓRIO Avaliação da Disciplina SSC-501: 11 RECuperação: São adotadas as normas do ICMC / SSC para a recuperação (REC). Bibliografia Básica SSC0501 - Introdução à Ciência da Computação Bibliografia aconselhada: 12 1. ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programação de Computadores Algoritmos, Pascal e C/C++. Prentice Hall, 2003. 2. KERNIGHAM,B.; RITCHIE,D. The C Programming Language, Prentice-Hall, 1988. (Tradução para Português: Editora Campus] 3. SCHILDT, Herbert. C completo e total, 3.ed. São Paulo. Pearson Education (2011, 2006,...). 4. KELLEY, Al; POHL, Ira. A book on C : programming in C. Boston, Mass. : Addison-Wesley (2005,...). 6

Material Complementar SSC0501 - Introdução à Ciência da Computação Linguagem de Programação C Compilador: - Windows: IDE = Dev-Cpp / Dev-C++ (GCC MingW) IDE = CodeBlocks Command-Line em DOS: GCC - Linux: GCC 13 Material On-Line: - Manuais - Help - Bibliotecas (extensões) -... Material Complementar SSC0501 - Introdução à Ciência da Computação História da Computação Ver Material Complementar Mecanismos e Máquinas: Do Ábaco a Máquina de Calcular Máquinas Automáticas Computadores: Circuitos Eletrônicos => HARDWARE (HW) Dados e Programas => SOFTWARE (SW) [Memória!] 14 Conceitos sobre ALGORITMO e PROGRAMA DADOS => INFORMAÇÃO => CONHECIMENTO PROGRAMAS: Escritos em uma Linguagem de Programação Ordens seqüenciais de manipulação de dados e informações 7

Material Complementar SSC0501 - Introdução à Ciência da Computação Mecanismos e Máquinas: Do Ábaco a Máquina de Calcular Máquinas Automáticas 15 Mecanismos Automáticos: Caixas Musicais Executam programas que estão contidos nos cilindros metálicos, o que faz com que sejam produzidas as músicas. Programa ~ É fixo na memória do cilindro e contém instruções que são as notas musicas a serem tocadas Programa de Computador: Possui dados armazenados na memória indicando instruções (seqüência de ações) Material Complementar SSC0501 - Introdução à Ciência da Computação Computadores: Circuitos Eletrônicos => HARDWARE (HW) Dados e Programas => SOFTWARE (SW) [Memória!] * Os programas são seqüências de instruções armazenadas na memória do computador que indicam as ações que o hardware deve executar, como por exemplo: - Ler um dado do teclado, armazenar na memória, somar dois dados, exibir na tela, gravar no disco, etc. DADOS => INFORMAÇÃO => CONHECIMENTO 16 DADOS: São valores BRUTOS armazenados. Exemplo: 8 INFORMAÇÃO: Quando atribuímos um sentido ao dado Exemplo: Nota da Prova de Fulano = 8 CONHECIMENTO: Regras, Políticas, Manipulação da Informação Exemplo: Notas devem ser entre 0 e 10 Aluno com nota abaixo de 5 está reprovado 8

1. Linguagem "C" CPU / UCP Unidade Central de Processamento ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções Dispositivos de E/S Periféricos: Vídeo => StdOut Teclado => StdIn Impressora Disco CD-ROM... Memória Endereço e Conteúdo 17 Linguagem "C" CPU / UCP Unidade Central de Processamento ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções Memória Endereço e Conteúdo Dispositivos de E/S Periféricos: Vídeo => StdOut Teclado => StdIn Impressora Disco CD-ROM... CPU: Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana) 18 9

Linguagem "C" 19 CPU / UCP Unidade Central de Processamento ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções Memória Endereço e Conteúdo Programação: Imperativa Determinística Estruturada OOP (Objetos) Alto Nível Pascal C / C++ Java Cobol... Dispositivos de E/S Periféricos: Vídeo => StdOut Teclado => StdIn Impressora Disco CD-ROM... CPU: Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana) Baixo Nível Assembly 8080 80x86 680xx... 1. Linguagem "C" 20 Ferramentas CPU de / UCP Software: Sistema Unidade Operacional Central de Processamento Compiladores - GCC,... ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções Interpretadores - PERL,... Compilador/Interpretador: Java (JVM) Aplicativos: Memória Word, Excel, Browsers,... Endereço e Conteúdo Programação: Imperativa Determinística Estruturada OOP (Objetos) Alto Nível Pascal C / C++ Java Cobol... E/S Periféricos: Vídeo => StdOut Teclado => StdIn Impressora Disco CD-ROM... CPU: Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana) Baixo Nível Assembly 8080 80x86 680xx... 10

Linguagem "C" - Criada por B. Kernighan e D. Ritchie - Linguagem mais utilizada em ambientes acadêmicos, de pesquisa e de desenvolvimento de ferramentas básicas - Adotaremos a linguagem C inicialmente como ferramenta para desenvolvimento de programas Motivos da escolha desta linguagem: 21 - Portabilidade (GCC for Windows / GCC for Linux) - Bem estruturada, gera código otimizado - Flexibilidade, potencialidade ( ling. aberta ), C++ - Uso de Software Livre e das bibliotecas disponíveis - Ambiente de desenvolvimento: IDE Integrated Development Environment: * DEV-C++ - Editor, Compilador, Depurador (debug) * Linux: gcc, dev-c++, vi/xedit/emacs/pico, xxgdb/ddd,... Linguagem "C" Linguagem de Programação Adotada: C/C++ Ferramentas de Desenvolvimento em "C" GNU GCC - Windows / Linux > CodeBlocks ou Dev-C++ [MingW] Web: http://www.bloodshed.net/devcpp.html Web: http://www.codeblocks.org/ > Outros ambientes do GCC: Portable Apps (Compilador de pen-drive ) SSC0501 http://www.thefreecountry.com/compilers/cpp.shtm > Linux GNU GCC + { gdb, xxgdb, DDD / Kdeveloper } * Outras Ferramentas para Desenvolvimento de Programas em C > Microsoft Visual Studio C/C++ / Visual Studio Express Edition 22 11

Linguagem "C" - Compilador GNU GCC GNU GCC / Command Line DOS Edição Inicializar as variáveis de ambiente: PATH Usual: C:\Dev-Cpp\Bin Compilação e Execução 23 Linguagem "C" - Compilador GNU GCC Linguagem C : Comandos de compilação de programa em C Compilação: Entrada = Arquivo Texto (.c) // Saída = Arquivo Executável (.exe) GCC <programa>.c ==> Gera um programa executável a.out ou a.exe GCC prog.c -o prog.exe ==> Especifica o nome do executável GCC prog.c -o prog.exe -lm ==> Indica para incluir (link) biblioteca matemática GCC -g prog.c -o prog.exe ==> Indica para gerar código adicional para "debug" GCC -g -Wall prog.c -o pro.exe -lm ==> Compilação "cuidadosa" (inclui principais opções) GCC --version GCC --help ==> Versão do compilador - IMPORTANTE! ==> Exibe a tela de ajuda do comando de compilação (opções) 24 12

2. Estrutura de um Programa em "C" Linguagem C : Exemplo de programa em C DOS> type hello.c #include <stdio.h> LINUX> cat hello1.c #include <stdio.h> main ( ) main ( ) { { printf ( Hello World! \n ); printf ( Hello World! \n ); } } DOS> gcc hello.c -o hello.exe -lm LINUX> gcc hello1.c -o hello1 -lm 25 Exatamente Iguais! 2. Estrutura de um Programa em "C" Linguagem C : Exemplo de um típico programa em C DOS> type hello2.c #include <stdio.h> /* Inclusão de Bibliotecas Externas - Header */ #define ANO_ATUAL 2011 /* Valor constante */ /* Isto é um comentário */ char nome [30]; /* Declaração de Variáveis Globais */ main ( ) /* Bloco Principal - Main: começa a executar aqui */ { /* Início do Bloco de nome "main" */ int ano=ano_atual; /* Declaração de Variáveis Locais ao Bloco */ 26 printf ( Nome? ); /* Comandos */ scanf ( %s,nome); printf ( Hello %s, welcome to %d!\n,nome,ano); } /* Fim do Bloco de nome "main" */ 13

2. Estrutura de um Programa em "C" Linguagem C : Exemplo de um típico programa em C DOS> type hello2.c #include <stdio.h> /* Inclusão de Bibliotecas Externas - Header */ #define ANO_ATUAL 2011 /* Valor constante */ /* Isto é um comentário */ char nome [30]; /* Declaração de Variáveis Globais */ int main (void) /* Bloco Principal - Main: começa a executar aqui */ { /* Início do Bloco de nome "main" */ int ano=ano_atual; /* Declaração de Variáveis Locais ao Bloco */ 27 printf ( Nome? ); /* Comandos */ scanf ( %s,nome); printf ( Hello %s, welcome to %d!\n,nome,ano); return (0); } /* Fim do Bloco de nome "main" */ INFORMAÇÕES SOBRE A DISCIPLINA USP - Universidade de São Paulo - São Carlos, SP ICMC - Instituto de Ciências Matemáticas e de Computação SSC - Departamento de Sistemas de Computação Prof. Fernando Santos OSÓRIO Web institucional: http://www.icmc.usp.br/ssc/ Página pessoal: http://www.icmc.usp.br/~fosorio/ E-mail: fosorio [at] icmc. usp. br ou fosorio [at] gmail. com Disciplna Teórica: SSC0501 (F.Osório) Disciplina Prática: SSC0502 (Delamaro/Simone) 28 Disciplina de Introdução a Ciência da Computação Web disciplina: Wiki ICMC - Http://wiki.icmc.usp.br > Programa, Material de Aulas, Critérios de Avaliação, > Trabalhos Práticos, Datas das Provas, Notas 14