====== CI055: Algoritmos e Estruturas de Dados I ====== * **Disciplina**: CI055 - Algoritmos e Estruturas de Dados I * **Carga Horária** (horas): 60h * **Pré-requisito**: nenhum * **Professor**: Carlos A. Maziero * **Monitores** (2016/1): * [[mailto:ana.bovs@gmail.com|Ana Beatriz Silva]] ([[http://www.inf.ufpr.br/abovs14/|horários]]) * [[mailto:katriny.zam@gmail.com|Katriny Zamproni]]: 6ª de 13h30 a 15h30 * [[csmenezes@inf.ufpr.br|Clariane Menezes]]: 2ª e 4ª de 10h a 13h (doutoranda, estágio de docência) * **Cronograma e avaliação**: consultar a [[http://www.inf.ufpr.br/cursos/ci055|página geral da disciplina]] * {{:alg1:notas.pdf|Notas das provas}} (2016/1) ===== Objetivos ===== Capacitar o estudante a compreender o modelo de programação dos computadores atuais e a desenvolver programas usando técnicas elementares de algoritmos e estruturas de dados sobre este modelo. Capacitar o aluno a desenvolver soluções simples e eficazes para problemas diversos que podem ser resolvidos com as técnicas elementares, sempre considerando a noção de eficiência dos códigos desenvolvidos. ===== Ementa ===== Características básicas do computador. Representação e aritmética binária. Algoritmos. Representação de dados. Introdução a uma linguagem de programação. Solução de problemas simples por computadores. ===== Conteúdo ===== - Breve histórico e noções dos componentes de um computador. Modelo de Von Neumann. - Introdução ao Pascal: - Estrutura básica de um programa em PASCAL. - Comandos simples, comandos de atribuição, comandos de entrada e saída. - O compilador PASCAL. - Um primeiro programa em PASCAL. - Como compilar este programa nos laboratórios do Departamento de Informática. - Expressões lógicas e aritméticas. - Comandos de desvio, de repetição e aninhamento de comandos. - Subprogramas. Procedimentos, escopo de variáveis, passagem de parâmetro (por valor e por referência), funções e procedimentos. - Vetores unidimensionais e multidimensionais, strings. Algoritmos de ordenação e de pesquisa. - Resolução de problemas computacionais por refinamentos sucessivos. ===== Metodologia ===== * **Teoria**: aulas expositivas, com análise e discussão dos temas propostos. * **Prática**: atividades referentes aos temas abordados nas aulas teóricas. ===== Bibliografia ===== Básica: * Castilho, M.A., Silva, F., Weingaertner, D. //[[http://www.inf.ufpr.br/cursos/ci055/apostila.pdf|Algoritmos e Estruturas de Dados 1]]//. UFPR, 2015. * Medina, M.A., Fertig, C., //Algoritmos e Programação: Teoria e Prática//. Novatec, 2005. * Carvalho,S., //Introdução à Programação com Pascal//. Editora Campus, 1984. Complementar: * Wirth, N., //Programação Sistemática em Pascal//. Editora Campus, 1983. * Salveti, D. D., Barbosa, L.M., //Algoritmos//. Makron Books, 1998. * Mecler, I., Maia, L.P., //Programação e Lógica com Turbo Pascal//. Ed. Campus, 1989. * Knuth, D. E, //The Art of Computer Programming//. Addison Wessley, 1999. * Farrer, H., e outros, //Pascal Estruturado//. Editora Guanabara Dois, 1988. * Tremblay, P., //Ciência dos Computadores//. McGraw-Hill. ===== Material de apoio ===== Programação: * [[http://www.freepascal.org|Compilador Free pascal]] * [[http://wiki.freepascal.org/|Wiki do Free Pascal]] * [[http://www.inf.ufpr.br/cursos/ci055/pascal.pdf|Guia de referência da Linguagem Pascal]]. UFPR, 2009 * {{alg1:pascal_ufsc.pdf|Introdução à Linguagem Pascal}}. C. Maziero, 1997 * [[Programas escritos em sala de aula]] Programação online: * [[http://www.tutorialspoint.com/compile_pascal_online.php|Tutorials Point]] * [[http://ideone.com/|IDEone]] * [[https://www.codechef.com/ide|CodeChef]] UNIX/Linux: * Comandos básicos ([[unix:comandos básicos]], [[unix:permissões em arquivos]], [[unix:gestão de processos]]) * Uso do shell BASH ([[unix:shell básico]], [[unix:shell avançado]], [[unix:shell scripts]]) * [[unix:Desenvolvimento em Linux]] * Excelente [[http://wiki.bash-hackers.org|guia de BASH]] * [[unix:Histórico do Unix e Linux]] Editores: * [[http://www.washington.edu/computing/unix/vi.html|How to use the VI editor]] * [[http://www.debian.org/doc/manuals/reference/ch-edit.pt-br.html|Diversas informações sobre editores]] Podem ocorrer mudanças nesta página, com a devida divulgação prévia aos alunos.