diff --git a/README.org b/README.org index 4adabca..792935c 100644 --- a/README.org +++ b/README.org @@ -1,107 +1,22 @@ +#+title: Curso Básico da Linguagem C +#+author: Blau Araujo #+startup: show2levels #+options: toc:3 * Curso Básico da Linguagem C -** Objetivos +Este curso introdutório visa apresentar os conceitos e os elementos fundamentais +da programação em linguagem C. Todo o conteúdo é dirigido ao ambiente de +programação do GNU/Linux e requer apenas recursos nativos ou disponíveis em +qualquer distribuição. -Este curso introdutório visa apresentar os conceitos e os elementos -fundamentais da programação em linguagem C. Todo o conteúdo é dirigido -ao ambiente de programação do GNU/Linux e requer apenas recursos nativos -ou disponíveis em qualquer distribuição. +** Links úteis -** O que você vai aprender +- [[https://gitlab.com/blau_araujo/cblc/-/issues][Dúvidas e discussões]] (issues). +- [[./aulas][Exemplos utilizados nas aulas]]. +- [[./c17/iso-iec-9899-2017.pdf][Especificações C17]] (PDF em inglês). -- Como computadores executam programas. -- Como sistemas operacionais possibilitam a execução de programas. -- Os elementos componentes de um código em C. -- Como os códigos em texto viram programas executáveis. -- Princípios de programação imperativa e procedural. -- Variáveis, funções e tipos de dados. -- Memória, endereços e estruturas de dados. -- Expressões e operações lógicas e aritméticas. -- Como reaproveitar programas com bibliotecas. +** Anotações das aulas -** Por que aprender C em 2025 +- [[./aulas/00/README.org][Aula 0: Sobre o curso]] -- É uma linguagem relativamente simples. -- É perfeita para introduzir e demonstrar conceitos de programação. -- Propicia vários /insights/ sobre o hardware e o sistema. -- Tem implementação nativa no GNU/Linux (compilador e bibliotecas). -- Enfatiza a responsabilidade de quem programa na solução de problemas. -- É uma linguagem relevante e amplamente utilizada. - -** Como você vai aprender - -As aulas serão divididas em 3 estágios: - -*** 1. Apresentação do conteúdo em vídeo - -A aula começa com todas as pessoas participantes assistindo juntas ao -vídeo do tópico do dia. - -*** 2. Demonstrações ao vivo - -O conteúdo do vídeo será complementado com demonstrações e experimentos -ao vivo para explorar possibilidades e fixar conceitos. Neste estágio, -as pessoas participantes serão estimuladas a tirar suas dúvidas e a -deduzir resultados. - -*** 3. Exercícios e desafios - -Toda aula terá um ou mais exercícios e desafios que deverão ser -solucionados, apresentados e discutidos na aba de /issues/ do nosso -repositório. - -** Repositório do curso - -O conteúdo em texto, bem como exemplos e exercícios, estarão disponíveis -no [[https://gitlab.com/blau_araujo/cblc][nosso repositório Git]]. Este repositório é público e pode ser -acessado por qualquer pessoa interessada em aprender, mesmo que não seja -inscrita no curso. - -** Aulas gravadas e encontros ao vivo - -- Todas as aulas terão um conteúdo em vídeo previamente gravado que será - apresentado nos encontros ao vivo pelo Jitsi. -- Nada será gravado durante as nossas videoconferências! -- Os vídeos relativos aos tópicos das aulas serão disponibilizados para - membros do canal @debxp, no YouTube, após o término do curso. - -#+begin_quote -Todas as demais pessoas inscritas no canal terão acesso aos vídeos 7 dias -depois deles serem liberados para membros. -#+end_quote - -** Duração e calendário do curso - -Serão 3 aulas semanas ao longo de 5 a 8 semanas, dependendo dos feriados -e do progresso da turma. - -- *Início:* 10 de março de 2025 -- *Término:* Entre 11 e 25 de abril de 2025 -- *Horário:* Segundas, quartas e sextas, às 19:30h - -** Investimento e inscrições - -Para inscrever-se, basta seguir este procedimento: - -1. Fazer um PIX no valor de R$250,00 para *cursos@blauaraujo.com*. -2. Enviar um e-mail para [[mailto:cursos@blauaraujo.com][cursos@blauaraujo.com]] anexando o comprovante - de pagamento e informando: - - - Nome completo - - CPF - - Endereço completo com CEP - - E-mail para contato - -3. Em resposta, você receberá um e-mail de confirmação e a nota fiscal. - -#+begin_quote -*Importante!* O link da sala de videoconferência será informado no e-mail -de confirmação da inscrição! -#+end_quote - -** Dúvidas, casos especiais e outras informações - -Envie um e-mail para: blau@debxp.org diff --git a/aulas/README.org b/aulas/README.org new file mode 100644 index 0000000..f19a591 --- /dev/null +++ b/aulas/README.org @@ -0,0 +1,62 @@ +#+title: Curso Básico da Linguagem C +#+subtitle: Aula 0: Sobre o curso +#+author: Blau Araujo +#+startup: show2levels +#+options: toc:3 + +* Aula 0: Sobre o curso + +[[https://youtu.be/RZmfuuABTHY][Vídeo desta aula]] + +** Do que vamos precisar... + +- Editores: Geany, GNU Emacs, Vim, GNU Nano, etc... +- Shell: GNU Bash +- Repositório: https://gitlab.com/blau_araujo/cblc +- Compilador: GNU Compiler Collection (gcc) +- Depuração: GNU Debugger (gdb) +- Documentação: Páginas de manual + +** Requisitos... + +- Uma instalação do GNU/Linux +- Noções de operação do sistema pelo terminal +- Atenção e cuidado com os detalhes +- Uma boa dose de curiosidade +- Vontade de aprender + +** O que vamos aprender... + +- Como computadores executam programas +- Como o sistema possibilita a execução de programas +- Como códigos em texto viram código de máquina +- Princípios de programação imperativa e estruturada +- Elementos de um código em C +- Variáveis, funções e tipos de dados +- Memória, endereços e estruturas de dados +- Estruturas de decisão e repetição +- Expressões lógicas e aritméticas +- Programas "recicláveis" (bibliotecas) + +** Como vamos aprender... + +*** Aulas divididas em 3 estágios: + +- Apresentação do conteúdo gravado +- Demosntrações ao vivo +- Exercícios e desafios + +*** Repositório do curso: + +- Anotações das aulas +- Exemplos e exercícios +- Tira-dúvidas (aba Issues) + +** Por que aprender... + +- Linguagem muito simples +- Perfeita para aprender os princípios da programação +- Tem implementação nativa do GNU/Linux +- Enfatiza o papel de quem programa na solução de problemas +- Intimamente ligada ao gerenciamento de memória +- Linguagem viva, relevante e amplamente utilizada diff --git a/c17/iso-iec-9899-2017.pdf b/c17/iso-iec-9899-2017.pdf new file mode 100644 index 0000000..1100026 Binary files /dev/null and b/c17/iso-iec-9899-2017.pdf differ diff --git a/curso.org b/curso.org new file mode 100644 index 0000000..5a57403 --- /dev/null +++ b/curso.org @@ -0,0 +1,91 @@ +#+startup: show2levels +#+options: toc:3 + +* Curso Básico da Linguagem C + +** Objetivos + +Este curso introdutório visa apresentar os conceitos e os elementos +fundamentais da programação em linguagem C. Todo o conteúdo é dirigido +ao ambiente de programação do GNU/Linux e requer apenas recursos nativos +ou disponíveis em qualquer distribuição. + +** O que você vai aprender + +- Como computadores executam programas. +- Como sistemas operacionais possibilitam a execução de programas. +- Os elementos componentes de um código em C. +- Como os códigos em texto viram programas executáveis. +- Princípios de programação imperativa e procedural. +- Variáveis, funções e tipos de dados. +- Memória, endereços e estruturas de dados. +- Expressões e operações lógicas e aritméticas. +- Como reaproveitar programas com bibliotecas. + +** Por que aprender C em 2025 + +- É uma linguagem relativamente simples. +- É perfeita para introduzir e demonstrar conceitos de programação. +- Propicia vários /insights/ sobre o hardware e o sistema. +- Tem implementação nativa no GNU/Linux (compilador e bibliotecas). +- Enfatiza a responsabilidade de quem programa na solução de problemas. +- É uma linguagem relevante e amplamente utilizada. + +** Como você vai aprender + +As aulas serão divididas em 3 estágios: + +*** 1. Apresentação do conteúdo em vídeo + +A aula começa com todas as pessoas participantes assistindo juntas ao +vídeo do tópico do dia. + +*** 2. Demonstrações ao vivo + +O conteúdo do vídeo será complementado com demonstrações e experimentos +ao vivo para explorar possibilidades e fixar conceitos. Neste estágio, +as pessoas participantes serão estimuladas a tirar suas dúvidas e a +deduzir resultados. + +*** 3. Exercícios e desafios + +Toda aula terá um ou mais exercícios e desafios que deverão ser +solucionados, apresentados e discutidos na aba de /issues/ do nosso +repositório. + +** Repositório do curso + +O conteúdo em texto, bem como exemplos e exercícios, estarão disponíveis +no [[https://gitlab.com/blau_araujo/cblc][nosso repositório Git]]. Este repositório é público e pode ser +acessado por qualquer pessoa interessada em aprender, mesmo que não seja +inscrita no curso. + +** Aulas gravadas e encontros ao vivo + +- Todas as aulas terão um conteúdo em vídeo previamente gravado que será + apresentado nos encontros ao vivo pelo Jitsi. +- Nada será gravado durante as nossas videoconferências! +- Os vídeos relativos aos tópicos das aulas serão disponibilizados para + membros do canal @debxp, no YouTube, após o término do curso. + +#+begin_quote +Todas as demais pessoas inscritas no canal terão acesso aos vídeos 7 dias +depois deles serem liberados para membros. +#+end_quote + +** Duração e calendário do curso + +Serão 3 aulas semanas ao longo de 5 a 8 semanas, dependendo dos feriados +e do progresso da turma. + +- *Início:* 10 de março de 2025 +- *Término:* Entre 11 e 25 de abril de 2025 +- *Horário:* Segundas, quartas e sextas, às 19:30h + +** Investimento e inscrições + +Inscrições encerradas. + +** Dúvidas, casos especiais e outras informações + +Envie um e-mail para: blau@debxp.org