-
Notifications
You must be signed in to change notification settings - Fork 30
/
hss2.tex
41 lines (33 loc) · 3.7 KB
/
hss2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{booktabs}
\title{IF672 - Algoritmos e estruturas de dados}
\author{Heitor da Silva Santos}
\date{Outubro de 2018}
\usepackage{natbib}
\usepackage{graphicx}
\begin{document}
\maketitle
\section{Introdução}
A disciplina de {\itshape algoritmos e estrutura de dados} faz parte da grade curricular do 2º período do curso de ciência da computação e é uma disciplina que primariamente estuda conceitos básicos de algoritmos.\citep{CIn} Apesar de em certa forma estudarmos algoritmos na disciplina de {\itshape Introdução a programação}, em {\itshape algoritmos e estrutura de dados} nós os analisamos e estudamos também suas técnicas de construção, o que no processo moderno de solução de problemas é imprescindível.\citep{Proj} Por que? Através da análise do comportamento de algoritmos, podemos escolher o melhor algoritmo para um determinado projeto, de forma a criar soluções mais eficientes\citep{wiki:xxx}.
O outro alvo de estudo da disciplina é estrutura de dados, que nada mais são do que diferentes formas que existem para armazenar dados. Obviamente, nenhuma estrutura de dados é perfeita para todas as situações. Então seu estudo é importante justamente para saber quando aplicar cada uma delas.\citep{Cormen}
\section{Relevância}
A relevância da disciplina se dá primeiramente pelo fato de que o poder de processamento dos computadores não é infinito. Claro que ele é de baixo custo, mas ainda assim tem um custo. Logo, faz-se necessário traçar soluções eficientes, ou seja, que tenham um tempo de processamento o mais rápido possível. \citep{Cormen}. Outro motivo que faz necessária a eficiência, é que quanto mais poderosos se torna nosso poder de processamento de dados, mais complexos se tornam os nossos desafios\citep{CIn}, que serão insolúveis se dispensarmos o estudo de algoritmos eficientes.
Além da eficiência, devemos atentar para a clareza do código. Um código bem escrito deve ser legível para outros programadores (e até mesmo para o programador original, que pode se confundir ao ler o código após muito tempo). De nenhuma forma, a eficiência deve entrar em conflito com a clareza do código.\citep{CIn}. Vale ressaltar que as aplicações do estudo de algoritmos são imensas. Por exemplo: mapeamento de DNA, alocação de recursos de maneiras específicas, e-commerce, traço de rotas, etc. \citep{Cormen}
\section{Relação com outras disciplinas}
\begin{table}[h]
\begin{tabular}{|l|l|}
\hline
IF669 - Introdução a programação & \begin{tabular}[c]{@{}l@{}}No 1º período estudamos a \\lógica básica para criarmos um\\ algoritmo simples na disciplina\\ IF669. No 2º período, porém,\\ estudamos algoritmos \\mais complexos.\end{tabular}
\\ \hline
IF684 - Sistemas inteligentes & \begin{tabular}[c]{@{}l@{}}No 4º período essa disciplina\\ estuda inteligência artificial.\\ Nela temos conceitos essenciais de\\ algoritmos, como por exemplo,\\ algoritmos de melhor escolha.\citep{SI}\end{tabular} \\ \hline
IF682 - Engenharia de software e sistemas & \begin{tabular}[c]{@{}l@{}} Nessa cadeira, estudamos a partir\\ dos requisitos de software\citep{Cin-SI} qual\\ a melhor forma de documentar e\\ desenvolver o projeto (o que\\ envolve conceitos de {\itshape algoritmos}).\end{tabular}
\\ \hline
IF689 - Informática Teórica & \begin{tabular}[c]{@{}l@{}}Nessa cadeira, estudamos, dentre\\ outros assuntos, a complexidade\\ de algoritmos,\citep{Info} valendo-se do que\\ foi aprendido anteriormente \\em {\itshape algoritmos e estrutura de dados}.\end{tabular}
\\ \hline
\end{tabular}
\end{table}
\bibliographystyle{plain}
\bibliography{references}
\end{document}