forked from pedrosiracusa/curso_intro_prog_biol
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
304 lines (269 loc) · 20.4 KB
/
index.html
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Página do curso Lógica de Programação para Estudantes das Ciências da Vida">
<meta name="author" content="Pedro Correia de Siracusa">
<title>Lógica de Programação para Estudantes das Ciências da Vida</title>
<!-- Bootstrap core CSS -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!-- Custom styling -->
<link href="css/style.css" rel="stylesheet">
<!-- Google fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
<!-- doc style -->
<style>
body{
font-family: 'Raleway', serif;
}
</style>
</head>
<body>
<header style="">
<nav class="navbar navbar-expand-md navbar-dark static-top" style="background-color: #c52a4a;">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="container">
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active" id="nav-apresentacao">
<a class="nav-link" href="#apresentacao">Apresentação
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item" id="nav-detalhes">
<a class="nav-link" href="#detalhes">Detalhes</a>
</li>
<li class="nav-item" id="nav-conteudo">
<a class="nav-link" href="#conteudo">Conteúdo</a>
</li>
<li class="nav-item" id="nav-slides">
<a class="nav-link" href="#slides">Slides</a>
</li>
<li class="nav-item" id="nav-recursos">
<a class="nav-link" href="#recursos">Recursos</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<!-- Navigation
<nav class="navbar navbar-expand-lg navbar-dark static-top" style="background-color: #c52a4a;">
<div class="container">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse navbar-left" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item active" id="nav-apresentacao">
<a class="nav-link" href="#apresentacao">Apresentação
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item" id="nav-detalhes">
<a class="nav-link" href="#detalhes">Detalhes</a>
</li>
<li class="nav-item" id="nav-recursos">
<a class="nav-link" href="#recursos">Recursos</a>
</li>
<li class="nav-item" id="nav-slides">
<a class="nav-link" href="#slides">Slides</a>
</li>
<li class="nav-item" id="nav-bibliografia">
<a class="nav-link" href="#bibliografia">Bibliografia</a>
</li>
</ul>
</div>
</div>
</nav>
-->
<!-- Pages -->
<!-- Page: Apresentação -->
<div class="container">
<div id="page-apresentacao" class="page">
<div class="row">
<div id="left-half" class="col-md">
<img src="img/cover_art.png" class="img-fluid center-block" />
</div>
<div id="right-half" class="col-md">
<h1 class="">Apresentação</h1>
<hr/>
<p>Bem-vindo à página do curso de Lógica de Programação! Você deve estar se perguntando como um curso de programação poderia ser útil em sua carreira. Pois bem, por incrível que pareça você, estudante das ciências da vida irá se deparar mais cedo ou mais tarde com problemas computacionais, seja nos seus projetos acadêmicos ou nas suas atividades cotidianas. E você perceberá que à medida que seus problemas se tornarem mais complexos e particulares ferramentas tradicionais como o <i>Excel</i> ou outras soluções de propósito geral simplesmente não serão mais suficientes.</p>
<p>Além disso, o rápido avanço das tecnologias da informação nos últimos tempos e o desenvolvimento de instrumentos científicos como sequenciadores, <b>colisores de partículas</b> e <b>supercomputadores</b> levou a um grande aumento no volume, variedade e velocidade com que <b>dados</b> são gerados. Surge um mar de novas possibilidades de inovação em todas as áreas da ciência, que vêm associadas ao desafio de como gerir, processar e obter informação de dados em escalas nunca antes vistas. Ferramentas como o <i>twitter</i> ou <i>facebook</i> se mostram fontes de dados fundamentais para projetos científicos, outrora impossíveis de serem realizados. Entretanto entrar neste novo mundo exige uma habilidade fundamental além de um grande domínio sobre sua própria área de conhecimento: saber <b>programar</b>. Apesar disso a universidade brasileira enfrenta hoje uma grande lacuna em relação à inserção destes conteúdos nos currículos de seus cursos.</p>
<p>Meu objetivo neste rápido minicurso é "quebrar o gelo": mostrar como programar pode ser fácil, útil e divertido. Com um pouco de conhecimento inicial você poderá efetivamente começar a colocar seu computador para trabalhar para você. Com vários exemplos de problemas típicos que um estudante das ciências da vida enfrentaria em sua carreira, apresentarei conceitos fundamentais que te ajudarão a continuar seu aprendizado por conta própria.</p>
</div>
</div>
</div>
</div>
</div>
<!-- Page: Detalhes -->
<div class="container">
<div id="page-detalhes" class="page" style="display:none;">
<div class="row">
<div id="left-half" class="col-md">
<h2>Sobre o curso</h2>
<hr/>
<h5>Acesse o <a href="https://github.com/pedrosiracusa/curso_intro_prog_biol" target="_blank">repositório</a> com o material do curso.</h5>
<h4>Instrutor</h4>
<div class="media" style="padding-left:1em">
<img class="mr-3 rounded-circle" src="https://github.com/pedrosiracusa.png?size=80" alt="Generic">
<div class="media-body">
<h5><a href="http://pedrosiracusa.com" target="_blank">Pedro Correia de Siracusa</a></h5>
<p>Biólogo pela <a href="https://www.unb.br/" target="_blank">UnB</a> e mestre em modelagem computacional pelo <a href="http://www.lncc.br/" target="_blank">LNCC</a>.</p>
</div>
</div>
<h4>Linguagem de Programação</h4>
<p style="padding-left:1em">Neste curso trabalharemos com a linguagem <a href="https://docs.python.org/3" target="_blank">Python (versão 3)</a>. Recomendamos a instalação a partir da distribuição <a href="https://www.anaconda.com/download/" target="_blank">Anaconda</a>.</p>
<!--
<h3>Data</h3>
<p style="padding-left:1em">XX a XX de MES de ANO, das XXh às XXh.</p>
<h3>Local</h3>
<p style="padding-left:1em">LOCAL, UNIVERSIDADE, CIDADE</p>
<h3>Inscrições</h3><p>Em breve</p>
<h3>Ambiente de Desenvolvimento</h3>
<h5>Opção 1: Instalação local</h5>
<p style="padding-left:1em"><a href="http://jupyter.org/" target="_blank">Jupyter Notebook</a>. Vem instalado com a distribuição Anaconda.</p>
<h5>Opção 2: Execução em nuvem</h5>
<p style="padding-left:1em"><a href="https://colab.research.google.com/" target="_blank">Google Colab</a>. É necessário apenas ter uma conta na Google.</p>
-->
<h2 class="mt-5">Curiosidades</h2>
<hr/>
<h3>Como foi feita a arte da capa do curso?</h3>
<p>Este tipo de arte, em que as palavras são dispostas conforme sua relevância ou frequência em um texto, é conhecido como 'word cloud'. Para fazer a capa deste material utilizamos uma biblioteca escrita em Python, chamada <a href="https://github.com/amueller/word_cloud" target="_blank">word_cloud</a>. Veja <a href="./course_cover/generate_cover.html" target="_blank">aqui</a> o código que gerou a nossa arte.</p>
</div>
<div id="right-half" class="col-md-6">
<h2>Ambiente</h2>
<hr/>
<h5>Opção 1: Instalação local</h5>
<p style="padding-left:1em">Esta opção é mais avançada, recomendada para os que desejarem configurar o ambiente de programação em sua própria máquina. Para tal, você deverá:</p>
<ol>
<li>Instalar a distribuição <a href="https://www.anaconda.com/download/">Anaconda</a>, observando os requisitos para seu sistema operacional. A instalação é bem simples: basta fazer o download do instalador e seguir os passos recomendados;</li>
<li>Clonar (ou fazer o download) do <a href="https://github.com/pedrosiracusa/curso_intro_prog_biol" target="_blank">repositório do curso</a>, no diretório de sua preferência;</li>
<li>No diretório contendo o material do curso, você deverá então inicializar o ambiente <a href="http://jupyter.org/" target="_blank">Jupyter Notebook</a> executando <code>jupyter notebook</code> no Anaconda Prompt (Windows) ou no próprio terminal (Linux). O ambiente Jupyter Notebook executará no próprio navegador, no endereço <code>localhost:8888</code>. Você poderá então navegar, no próprio browser, para o diretório `aulas`, contendo os materiais das aulas.</li>
</ol>
<h5>Opção 2: Execução em nuvem</h5>
<p style="padding-left:1em">Esta é a opção mais simples. Usaremos o ambiente <a href="https://colab.research.google.com/" target="_blank">Google Colab</a>, que executa código como serviço em nuvem e, portanto, não exige configuração local. É necessário apenas ter uma conta na Google. Os links para os notebooks estão na aba `Conteúdo` desta página.</p>
</div>
</div>
</div>
</div>
</div>
<!-- Page: Conteúdo -->
<div class="container">
<div id="page-conteudo" class="page" style="display:none;">
<div class="row">
<div id="left-half" class="col-md-6">
<h2>Aulas</h2>
<hr/>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/aulas/aula1.ipynb" target="_blank">Aula 1. Conceitos Fundamentais</a></h5>
<p>Introdução aos conceitos mais fundamentais na programação. Você aprenderá como representar diferentes tipos de informação no código, como construir expressões usando operadores e como utilizar variáveis para armazenar resultados de computações.</p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/aulas/aula2.ipynb" target="_blank">Aula 2. Funções</a></h5>
<p>Funções permitem encapsular, abstrair e reutilizar rotinas. Você aprenderá como construir e executar funções, bem como reutilizar funcionalidades distribuídas em pacotes pela comunidade <i>Python</i>.</p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/aulas/aula3.ipynb" target="_blank">Aula 3. Estruturas Condicionais</a></h5>
<p>Estruturas condicionais permitem alterar o comportamento do programa dependendo de seu estado e de interações com o usuário. Você aprenderá a construir expressões lógicas e a partir delas, construir estruturas condicionais.</p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/aulas/aula4.ipynb" target="_blank">Aula 4. Listas</a></h5>
<p>Listas são uma estrutura de dados usadas para armazenar um conjunto de valores dentro de uma única estrutura. Você aprenderá a construir listas e recuperar elementos de dentro dela. </p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/aulas/aula5.ipynb" target="_blank">Aula 5. Estruturas de Repetição</a></h5>
<p>Computadores são muito eficientes em realizar tarefas bem definidas e repetitivas. Você aprenderá a inserir automação nos seus programas, criando estruturas de repetição (loops).</p>
</div>
<div id="right-half" class="col-md-6">
<h2>Projetos</h2>
<hr/>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/projetos/baccalc.ipynb" target="_blank">Miniprojeto 1. A Calculadora Bacteriana</a></h5>
<p>Construa a calculadora bacteriana, que usa um modelo de crescimento exponencial para estimar o tamanho populacional de uma cultura de bactérias.</p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/projetos/biomol.ipynb" target="_blank">Miniprojeto 2. O exercício de BioMol</a></h5>
<p>Você está passando por um semestre apertado, e seu professor de Biologia Molecular passou um exercício super trabalhoso e repetitivo. Sorte sua que você sabe resolvê-lo com programação!</p>
<hr/>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/projetos/fauna.ipynb" target="_blank">Projeto. Monitoramento de fauna no PNB</a></h5>
<p>Você está participando de um levantamento dos mamíferos que ocorrem no Parque Nacional de Brasília e está utilizando armadilhas fotográficas para obter os registros. Use seus novos conhecimentos em programação para gerar mapas de ocorrência das espécies!</p>
<h5><a href="https://colab.research.google.com/github/pedrosiracusa/curso_intro_prog_biol/blob/master/projetos/dna.ipynb" target="_blank">Projeto. O DNA na era do Big Data</a></h5>
<p>Você já deve ter ouvido falar que estamos vivendo na era do "Big Data", um termo que se refere ao enorme conjunto de dados sendo produzido pela humanidade em taxa explosiva, que supera muito nossa capacidade atual para processá-lo, armazená-lo e analisá-lo. Dentre os muitos desafios que emergem deste conceito um se refere ao armazenamento de dados. E se pudéssemos utilizar o DNA para armazenar informação? Que tal tentar contribuir com uma solução computacional para este tópico quente de pesquisa?</p>
</div>
</div>
</div>
</div>
<!-- Page: Slides -->
<div class="container">
<div id="page-slides" class="page" style="display:none;">
<div class="row">
<div id="left-half" class="col">
<!-- Slides Iframe -->
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://docs.google.com/presentation/d/e/2PACX-1vQmtU0d40mu7xcxVLrNebE1_r4qI56zV4jqUDKIXihaJYoDISL2zcIb_ONSkR0RtVXvcktKOtU2AdhU/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Page: Recursos -->
<div class="container">
<div id="page-recursos" class="page" style="display:none;">
<div class="row">
<div class="col">
<h1 class="text-center">Bibliografia</h1>
<ol>
<li>Barry, P. 2016. <a href="https://www.amazon.com.br/Use-Cabe%C3%A7a-Python-Paul-Barry/dp/857608743X/ref=sr_1_1?ie=UTF8&qid=1508591145&sr=8-1&keywords=use+a+cabe%C3%A7a+python" target="_blank">Head First Python: A Brain-Friendly Guide.</a> " O'Reilly Media, Inc.". <small>[Também disponível em português]</small></li>
<li>Severance, C. R. Python for Everybody. Disponível gratuitamente <a href="https://www.py4e.com/" target="_blank">aqui</a>.</li>
<li>Hey, T.; Tansley, S.; Tolle, K. 2009. <a href="https://www.amazon.com.br/Quarto-Paradigma-Tony-Hey/dp/8579750288/ref=sr_1_1?s=books&ie=UTF8&qid=1508591352&sr=1-1&keywords=quarto+paradigma" target="_blank">The fourth paradigm: data-intensive scientific discovery.</a> Redmond, WA: Microsoft research.</li>
<li>Downey, A. 2012. <a href="https://www.amazon.com.br/Pense-em-Python-Allen-Downey/dp/8575225081/ref=sr_1_1?s=books&ie=UTF8&qid=1508591305&sr=1-1&keywords=think+python" target="_blank">Think Python.</a> " O'Reilly Media, Inc.".</li>
<li>Model, M.L. 2009. <a href="https://www.amazon.com.br/Bioinformatics-Programming-Using-Python-Mitchell/dp/059615450X/ref=sr_1_1?s=books&ie=UTF8&qid=1508591379&sr=1-1&keywords=bioinformatics+programming+using+python" target="_blank">Bioinformatics Programming Using Python: Practical Programming for Biological Data.</a> " O'Reilly Media, Inc.".</li>
<li>McKinney, W., 2012. <a href="https://www.amazon.com.br/Python-Data-Analysis-Wes-Mckinney/dp/1491957662/ref=sr_1_1?s=books&ie=UTF8&qid=1508591435&sr=1-1&keywords=python+for+data+analysis" target="_blank">Python for data analysis: Data wrangling with Pandas, NumPy, and IPython.</a> " O'Reilly Media, Inc.".</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-copyright text-center py-3">© 2018 Copyright:
<a href="http://pedrosiracusa.com" target="_blank">Pedro C. de Siracusa</a>
</div>
</div>
</footer>
<!-- Bootstrap core JavaScript -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.bundle.min.js" integrity="sha384-pjaaA8dDz/5BgdFUPX6M/9SUZv4d12SUPF0axWc+VRZkx5xU3daN+lYb49+Ax+Tl" crossorigin="anonymous"></script>
<script>
function show(elementID){
var ele = document.getElementById(elementID);
if(!ele){
console.log("no such element "+elementID);
return
}
var pages = document.getElementsByClassName('page');
for(var i=0; i<pages.length; i++){
pages[i].style.display='none';
}
ele.style.display = 'block';
}
function setActiveNav(navID){
var currentNav = document.getElementById(navID);
if(currentNav==null){
return
}
console.log(currentNav);
var navs = document.getElementsByClassName("nav-item");
for (var i=0; i<navs.length; i++){
navs[i].classList.remove("active");
}
currentNav.classList.add("active");
}
$(document).ready(function(){
var hashname = location.hash.substr(1);
show("page-"+hashname);
setActiveNav("nav-"+hashname);
});
$(window).bind('hashchange',function(e){
var hashname = location.hash.substr(1);
show("page-"+hashname);
setActiveNav("nav-"+hashname);
});
</script>
</body>
</html>