7600017 - Introdução à Física Computacional
2º semestre de 2023

Prof.: José Abel Hoyos Neto
Sala 29, Bloco F1 2º andar
Contato: hoyos@ifsc.usp.br

Turma 2023202 - Teórica
Local: Física - Lab. de computadores Salas 205 & 206 (LEF), Campus 1
Horário: 5ª's: 08h-11h

Horário de atendimento: Livre

Monitoria: Edmur Cristoforo Neto (edmurcn@usp.br)
Grupo whatsapp: clique aqui

Objetivo: Apresentar aos estudantes os métodos básicos para a resolução computacional de problemas científicos.

Descrição: O curso será todo feito em um sistema operacional Linux e a linguagem de programação científica FORTRAN. As aulas terão caráter essencialmente prático, com os(as) alunos(as) executando tarefas relacionadas ao tema da aula.

Justificativa: Já está bem estabelecido que o conhecimento de programação numérica é ferramenta fundamental para qualquer pessoa que queira produzir ciência e tecnologia.
Ao final deste curso espera-se que o(a) aluno(a) esteja capacitado(a) a resolver problemas da Física elaborando um programa numérico (código fonte) em linguagen FORTRAN (FORmula TRANslator).
A razão para uso de tal linguagem é porque ela foi idealizada para o uso científico, e possui a mais extensa biblioteca de códigos numéricos para aplicação em ciência. Existem atualmente várias formulações do FORTRAN com facilidades e versatilidades crescentes (FORTRAN-90, FORTRAN-95, etc.). Por ser uma linguagem, o FORTRAN tem uma estrutura gramatical com sintaxe própria. Estas versões mais modernas do FORTRAN têm em sua base o FORTRAN-77. Este seria o equivalente ao "latim" para os idiomas latinos.
A experiência de diversos docentes ministrando este curso desde sua criação em 2003 recomenda que primeiro seja aprendido o FORTRAN-77 com todas as suas regras de sintaxe. Uma vez aprendida esta linguagem, pode-se fazer com segurança qualquer programação, notadamente as de cunho científico, mas também outras mais gerais. Mais ainda, uma vez dominado o FORTRAN-77 tem-se condições de aprender mais facilmente outras linguagens de programação.

Recursos computacionais:
Neste curso, é dever do(a) aluno(a) familiarizar-se com o sistema operacional Linux e com a linguagem de programação Fortran.
Informações sobre os recursos computacionais e tutoriais sobre Linux e Fortran podem ser encontrados em http://www.lef.ifsc.usp.br/index.php/computacional.
Manuais mais completos podem ser encontrados na internet. Por exemplo, vide https://gcc.gnu.org/fortran/.

Ementa e outros detalhes, vide sistema Júpiter

Honestidade acadêmica:
É esperado de todos que se comportem como acadêmicos responsáveis. Desonestidade acadêmica como plagiarismo, sabotagem e cola (entre outros) é uma conduta inaceitável e será tratada com o devido rigor (vide o código de ética da USP em www.prg.usp.br/wp-content/uploads/CodigoEtica.pdf).

Necessidades especiais:
As instalações de IFSC são adaptadas para aqueles com necessidades especiais de locomoção. Em todo caso e se assim julgar necessário, você é encorajado a me procurar no começo do semestre para discutirmos quaisquer outras necessidades que possa ter referente à locomoção.

Saídas de emergência:
É seu dever se familiarizar com as saídas de emergência da sala de aula e do prédio em que se encontra.

Reclamações: Procure o serviço de graduação.

O cronograma não é definitivo e pode sofrer alterações. Recarregue esta página para ter a versão mais atual.

AULA DIA ASSUNTO
01 10/08 Projeto 1; tutorial, outro tutorial, gráficos com grace
02 17/08 Projeto 1
03 24/08 Projeto 1
04 31/08 Projeto 2; EXAME 1 (09-11h)
  07/09 Não haverá aula (semana da pátria)
05 14/09 Projeto 2
06 21/09 Projeto 2
07 28/09 Projeto 3
08 05/10 Projeto 3
  12/10 Não haverá aula (Nossa Senhora Aparecida)
09 19/10 Projeto 3
10 26/10 Projeto 4; EXAME 2 (09-11h)
  02/11 Não haverá aula (finados)
11 09/11 Projeto 4
12 16/11 Projeto 4
13 23/11 Projeto 5
14 30/11 Projeto 5
15 07/12 Projeto 5
16 14/12 EXAME 3 (08-10h)
Avaliações:
N = 05 projetos a serem desenvolvidos ao longo do curso.
Eles devem ser elaborados individualmente em forma de relatório científico (vide detalhes abaixo) e entregues até as datas especificadas.
03 exames de 2 horas cada.
Os exames são individuais e com o objetivo de verificar o aprendizado.
 
Projetos:
O curso é baseado em projetos. Em classe, iremos considerar um certo tipo de problema e discutiremos como resolvê-lo usando métodos computacionais. Os projetos do curso serão baseado nessas discussões. Você terá que (i) analisar o problema, (ii) selecionar um algorítmo, (iii) escrever seu próprio código/programa, (iv) compilar e rodar o seu programa, (v) visualizar os dados numéricos gerados, (vi) interpretar e extrair respostas desses dados e (vii) concluir sua análise.
 
Relatórios:
Para cada projeto você deverá escrever e entregar um pequeno relatório (em formato .pdf) contendo (i) uma descrição sucinta do problema e/ou do fenômeno físico envolvido, (ii) a sua estratégia de solução, e (iii) os resultados obtidos.

Discussões entre colegas são fortemente encorajadas. Entretanto, o relatório a ser entregue deve ser baseado unicamente nos seus esforços (ou seja, nos seus códigos, nos dados de suas próprias simulações compiladas pelo seu código, na sua própria interpretação dos dados, etc.), e não nos esforços de um grupo. Você ainda tem que referenciar qualquer outro documento diretamente usado.
 
Instruções:
Para cada projeto, crie um diretório em sua área (na basalto.ifsc.usp.br) de nome projeto-<nr. do projeto> (por exemplo, usando o comando mkdir <nome do diretório>).
Para cada tarefa do projeto, crie um subdiretório de nome tarefa-1, tarefa-2a, tarefa-2b, etc.
Os arquivos fontes e executáveis associados a cada tarefa devem estar dentro dos respectivos subdiretórios (mesmo que sejam repetidos) e denominados de tarefa-<nr. da tarefa>.f (não use outras extensões como .f90) e tarefa-<nr. da tarefa>.exe, respectivamente.
Os arquivos de entrada (se houver), de saída, e gráficos elaborados (se houver) também devem estar nos subdiretórios associados.
Arquivos de entrada devem ser nomeados como tarefa-<nr. da tarefa>-entrada-<nr. da entrada>.in.
Arquivos de saída devem ser nomeados como tarefa-<nr. da tarefa>-saida-<nr. da saida>.dat.

O relatório (de nome relatorio-<nr. do relatório>-<seu nr. USP>.pdf) deve conter cada tarefa com os códigos fonte, resultados e gráficos pertinentes. Tudo com a devida discussão e justificativa.
 
Entrega dos projetos:
Uma vez concluído o relatório, copie tudo para o diretório /public/fiscomp2023-2-hoyos/proj<nr. do projeto>/proj<nr. do projeto>_<seu nr. USP>.
Por exemplo, use o comando cp -r tarefa-* /public/fiscomp2023-2-hoyos/proj4/proj4_5555555. Apenas você tem acesso a este diretório até a data de entrega do relatório. Caso precise reenviar algum arquivo, faça como explicado acima.
Note que você não poderá enviar nenhum arquivo após às 23h59m59s da data de entrega. Consequentemente, relatórios atrasados não serão aceitos.
Caso haja queda de energia ou de servidor por menos de 12 horas antes da data de entrega e você não consiga transferir os arquivos, o relatório será considerado não entregue. Portanto, programe sua transferência de arquivos antecipadamente mesmo que ainda incompletos. Verifique se sua transferência foi exitosa utilizando o comando ls no diretório correspondente.
 
Valor dos projetos:
Há dois prazos de entrega de relatório. Até a primeira data, o projeto vale 100%. Após, vale 70%.

Projeto 1 (entrega 27 (100%) e 30/08 (70%)): Introdução à programação (tarefa-3-entrada-1.in)
Projeto 2 (entrega 24 (100%) e 27/09 (70%)): Sistemas aleatórios
Projeto 3 (entrega 22 (100%) e 25/10 (70%)): Cálculo numérico
Projeto 4 (entrega 19 (100%) e 22/11 (70%)): Movimento oscilatório
Projeto 5 (entrega 10 (100%) e 13/12 (100%)): O problema de Kleper

última atualização: 21/12

Nr. USP Faltas E1 E2 E3 P1 P2 P3 P4 P5 NF
12557532 4 A- A-   9,9 9,8 9,7 10,0 7,8 9,4
11294490 4 A- A-   8,4 10,0 9,6 8,8 8,2 9,0
13783179 3 A- A-   9,1 8,5 8,2 8,6 6,9 8,3
10259985 4 A- R A- 6,7 9,6 8,0 5,1 0,0 5,9
13686153 4 A- A-   9,6 9,7 8,6 9,3 6,2 8,7
13685725 4 A- A   9,0 9,4 10,0 9,2 7,7 9,1
6801619 9 R     0,0 0,0 0,0 0,0 0,0 0,0
11370237 15 R     0,0 0,0 0,0 0,0 0,0 0,0
9312481 4 A- R A- 6,3 0,0 9,3 8,7 4,7 5,8
12777402 2 A A-   8,4 9,8 10,0 9,0 0,0 7,4
10689345 14 R     0,0 0,0 0,0 0,0 0,0 0,0
11212654 9 R     0,0 0,0 0,0 0,0 0,0 0,0
11810964 3 A A-   8,5 10,0 9,7 8,2 5,5 8,4
11871952 3 A- A-   8,3 4,6 7,0 4,6 3,7 5,6
11238037 8 R R   2,9 3,0 0,0 0,0 0,0 0,0
8955789 4 A- A   10,0 9,9 10,0 0,0 8,8 7,7
11884734 4 A- R A- 10,0 8,0 8,8 6,6 5,6 7,8
13735672 3 A- A   9,6 6,5 8,3 7,4 3,0 7,0
10727969 7 R R   9,1 5,0 6,3 0,0 0,0 4,1
11165885 6 A- R   3,3 6,6 6,7 1,4 0,0 3,6
12608386 13 R     0,0 0,0 0,0 0,0 0,0 0,0
11877893 4 A- R A- 5,2 9,3 6,2 4,5 3,5 5,7
11810943 3 A A-   6,5 8,4 9,3 8,5 0,0 6,5
13862330 3 A- A-   8,3 6,0 9,2 7,9 1,5 6,6
11876551 4 A R R 7,5 6,7 8,3 3,9 0,0 4,9
13685684 2 A- A-   9,5 10,0 10,0 10,0 6,6 9,2
11849780 4 A- A   8,4 3,3 6,0 6,1 4,5 5,7
11911699 9 R     7,7 5,7 0,0 0,0 0,0 2,7
11876940 4 A R A- 5,0 8,3 5,6 3,8 5,3 5,6
10815821 3 A- R A- 8,2 7,0 8,5 5,7 4,9 6,9
11212118 4 R     8,0 6,1 0,0 1,0 0,0 3,0
13834940 4 A A-   9,4 7,4 7,5 6,0 1,2 6,3
13687449 2 A- A   7,5 6,0 7,8 7,8 0,0 5,8
12557101 1 A A   9,8 10,0 9,3 10,0 9,0 9,6
12693890 1 A A   9,6 9,8 9,7 9,7 5,0 8,8
11238103 4 A- R A- 9,5 8,5 6,0 3,0 3,4 6,1
10850453 2 A- R R 4,1 0,0 7,0 5,4 0,0 3,3
13686921 2 A- A   9,6 9,4 9,6 9,0 7,2 9,0
12731015 11 R     5,3 0,0 0,0 0,0 0,0 1,1
12624850   A A-   9,2 9,6 9,4 9,0 9,6 9,4
11212192 4 A R A- 7,4 7,1 5,6 5,3 1,6 5,4
11319656 9 A-     7,7 0,0 0,0 0,0 0,0 1,5
11892261 10 A-     3,2 4,1 0,0 0,0 0,0 1,5
11811801 4 R R   0,0 1,4 6,6 0,0 0,0 1,6
12728032 15 R     0,0 0,0 0,0 0,0 0,0 0,0

Definições:
Os projetos são avaliados por notas entre 0,0 e 10,0, e com apenas 1 casa decimal.
Os exames são avaliados por conceitos: aprovado ou reprovado.
MP = (P1+...+PN)/N = média aritmética dos projetos
NF = Nota final

Critério de aprovação por nota
Se aprovado em 2 Exames
Se MP < 5,0
reprovado(a) com NF = MP
caso contrário
aprovado(a) com NF = MP
Caso contrário
reprovado(a) com NF = Min{MP;4,9}.

Critério de aprovação por frequência
Mínimo de 70% de presença (máximo de 4 faltas).
OBS.:
  1. Atrasos e abstenções antes da aula terminar não são tolerados.
  2. Se o professor julgar que o(a) aluno(a) não está participando da aula, mesmo que de corpo presente, ele poderá anular a presença dele(a).
  3. Caso alguma aula não seja ministrada por motivos de força maior, uma aula de reposição será marcada pelo professor.
  4. Para abono de faltas e/ou em caso de perda de alguma avaliação, procure o serviço de graduação imediatamente (vide https://www2.ifsc.usp.br/graduacao/).
  5. Após a divulgação das notas (neste sítio eletrônico), o(a) aluno(a) tem até 15 dias para requerer correção.
Para esclarecimento de detalhes e/ou dúvidas adicionais, vide as informações acadêmicas. Persistindo a dúvida, procure o serviço de graduação.