1. Descrição Geral do Curso

O curso FDTA 1.01, “SQL Definitivo: para Oracle, PostgreSQL, MySQL e SQL Server“, proporcionará ao estudante as competências e conhecimentos para dominar, do básico ao avançado, a linguagem SQL (Structured Query Language), tanto em sua versão “padrão” quanto nas versões “extendidas” utilizadas pelos 4 principais sistemas de gerenciamento de bancos de dados relacionais do mercado (RDBMS – Relational Database Management System): o Oracle, o PostgreSQL, o MySQL e o SQL Server. Ao término do curso o aluno estará apto a criar código SQL de alta complexidade para solucionar questões e problemas analíticos abstratos sobre os dados armazenados em um banco de dados.

2. Programa de Estudo

2.1. Burocracia e Informações Gerais

Instituição:FDTA
Curso n.º:1.01
Duração Total:7 semanas
Carga horária online:42 horas (6 horas por semana, divididas em 2 aulas de 3 horas)
Esforço total:60 a 70 horas (já incluída a carga horária online)
Preço:R$ 840,00
Tipo:Curso com certificado de conclusão emitido pela FDTA
Nível:Básico, intermediário e avançado
Assunto:Linguagens de programação
Instrutor:Abrantes Araújo Silva Filho
Língua: Aulas online, notas de aula e exercícios em português, material de referência e complementar em inglês
Material de estudo:Fornecidos pela FDTA
Data:Maio/2017
Alunos:Mínimo de 2 e máximo de 8 alunos para formar uma turma

2.2. Público alvo e pré-requisitos

2.2.1. Público alvo

Pessoas que de alguma forma precisam usar a linguagem SQL para consultar diretamente os dados armazenados em um sistema de gerenciamento de bancos de dados relacionais, ou que estejam envolvidos com o desenvolvimento de aplicações de bancos de dados.

2.2.2. Pré-requisitos acadêmicos

Você não precisa ser um engenheiro ou um cientista da computação para aprender SQL. Na realidade não existem pré-requisitos formais e obrigatórios para o curso 1.01, entretanto os alunos aproveitarão melhor o curso se:

  • Souberem utilizar uma máquina virtual com o VirtualBox
  • Souberem utilizar qualquer distribuição Linux, mesmo que somente noções básicas (o curso utilizará uma máquina virtual com o CentOS)
  • Tiverem alguma noção de SQL (não obrigatório, pois o curso contemplará do básico ao avançado)
  • Tiverem algum contato com sistemas de gerenciamento de bancos de dados relacionais como o Oracle, o PostgreSQL, o MySQL ou o SQL Server

ATENÇÃO: as aulas online, os materiais de aula e os exercícios serão fornecidos em português, mas os textos, bibliografias e referências complementares estarão disponíveis somente em INGLÊS. Portanto, leitura técnica em inglês é altamente recomendável. Se o aluno não souber ler em inglês ainda assim poderá se matricular no curso, tendo a consciência de que seu estudo extra (materiais de referência e materiais complementares) será prejudicado e que ele deverá procurar outras fontes em português por conta própria.

2.2.3. Pré-requisitos de hardware e software

Para que o aluno possa realizar o curso 1.01, é OBRIGATÓRIO que ele tenha um computador ou notebook com as características abaixo (ou equivalentes):

  • Processador
    • Mínimo: Intel Core i3 (ou equivalente)
    • Recomendado: Intel Core i5 ou superior (ou equivalente)
  • Memória RAM
    • Mínimo: 4 GB RAM (o uso de menos memória é por sua conta e risco!)
    • Recomendado: 6 GB RAM ou mais (a máquina virtual do curso utilizará de 1 a 2 GB de RAM)
  • Espaço em disco
    • Mínimo: 4 GB
    • Recomendado: 8 GB ou mais (pois você poderá fazer outras cópias da máquina virtual para estudo e testes isolados, que não atrapalhem o ambiente do curso)
  • Som e imagem
    • Mínimo: MICROFONE + FONES DE OUVIDO
    • Recomendado: WEBCAM + MICROFONE + FONES DE OUVIDO (as aulas online serão realizadas através dos Eventos e Hangouts do Google, portanto para que sua participação seja proveitosa, terá que ser capaz de ver, ouvir, falar e interagir com o instrutor)
  • Monitor
    • Mínimo: um monitor/tela
    • Recomendado: 2 monitores (isso não é obrigatório, o curso pode ser realizado perfeitamente com apenas 1 monitor, mas 2 monitores lhe permitirá assistir ao instrutor em uma tela e realizar tarefas em outra, ao mesmo tempo, já que o curso é bastante prático)
  • Internet
    • Mínimo: conexão banda larga de 10 Mega (o uso de conexões com menos de 10 Mega é por sua conta e risco!)
    • Recomendado: conexão banda larga de 15 Mega ou superior
  • Sistema Operacional
    • Windows, Linux ou Mac: o curso utilizará uma máquina virtual Linux que, através do VirtualBox, pode ser instalada no Windows, Linux ou Mac.
  • Softwares
    • Obrigatório: VirtualBox (versão 5.1; obrigatório também instalar o VirtualBox Extension Pack) para Windows, Linux ou Mac. O curso será realizado através de uma máquina virtual Linux que deverá ser aberta no VirtualBox.
    • Adicionais: se você fará o curso em um Windows, instale também o PuTTY para acessar a máquina virtual via SSH
  • E-mail
  • Browser
    • Obrigatório: Google Chrome OU Mozilla Firefox (o uso do Internet Explorer ou outro browser da Microsoft não é recomendado e é por sua conta e risco!)
  • Plugins

2.3. Objetivos, resultados esperados e avaliação

2.3.1. Objetivos de aprendizagem (conhecimentos e competências) e resultados esperados

Ao terminar o curso 1.01 o aluno estará apto a explicar o funcionamento de um RDBMS e a aplicar métodos básicos e avançados da SQL para solucionar questões e problemas analíticos relativos à consultas de dados em um banco de dados. Em particular o aluno irá:

  • Saber porque os sistemas de gerenciamento de bancos de dados relacionais (RDBMS) são a base para a maioria das aplicações multi-usuários da internet (por exemplo: Amazon, eBay) e da maioria dos sistemas de informações empresariais.
  • Como escrever código SQL funcional e otimizado, utilizando o padrão SQL e as extensões fornecidas pelos 4 principais RDBMS da atualidade (Oracle, PostgreSQL, MySQL e SQL Server).
  • Conhecer razoavelmente os mecanismos internos dos RDBMS e como esses softwares conseguem realizar o processamento de centenas, milhares ou milhões de conexões simultâneas atualizando os mesmos dados ao mesmo tempo.
  • Conhecer as principais diferenças entre os 4 RDBMS estudados, inclusive as vantagens, desvantagens e capacidade de cada um.
  • Saber como se conectar aos 4 RDBMS estudados, via linha de comando. Aplicações gráficas são legais e bonitinhas mas a linha de comando é poderosa e necessária para nosso estudo.
  • Entender o que são e a importância das propriedades ACID em um RDBMS.
  • Construir um modelo de dados e um diagrama entidade relacional (DER), conhecendo a normalização dos bancos de dados, quando normalizar e até que nível normalizar.
  • Usar SQL para criar objetos (tabelas, chaves, constraints, índices, views, funções, triggers e outros) em um banco de dados
  • Entender e utilizar os níveis de isolamento transacional existentes (read uncommitted, read committed, repeatable read, serializable) e os mecanismos de lock
  • Utilizar com eficiências as cláusulas de definição de objetos da SQL (create, drop, alter)
  • Utilizar com eficiência as cláusulas de manipulação de dados da SQL (update, insert, delete, truncate, merge)
  • Utilizar com eficiência as cláusulas de controle transacional da SQL (commit, rollback, savepoint)
  • Utilizar com eficiência as cláusulas de controle de acesso da SQL (grant, revoke)
  • Utilizar operadores (strings, lógicos, relacionais e nulos), conversões e condicionantes
  • Saber selecionar, restringir e ordenar dados (select)
  • Utilizar com eficiência as diversas funções “single-row” e “multiple-row”
  • Conhecer e utilizar mecanismos de joins, subqueries e controle de fluxo
  • Utilizar agrupamentos (set operations) e cláusulas rollup e cube
  • Manipular objetos dos schemas
  • Entender a importância do dicionário de dados e saber como utilizá-lo
  • Conhecer e utilizar com eficiência consultas hierárquicas
  • Trabalhar com dados temporais
  • Entender e usar o particionamento de tabelas
  • Utilizar expressões regulares para facilitar a busca de informações
  • Entender e utilizar as funções analíticas da SQL
  • Saber como escrever funções e procedimentos armazenados em linguagens procedurais acopladas aos bancos de dados (PL/SQL, PL/pgSQL e outros)
  • Entender como utilizar XML no banco de dados
  • Conhecer as melhores práticas para código SQL
  • Utilizar a cláusula model do Oracle SQL
  • Saber como otimizar seu código SQL (explain plain)
  • Entender código SQL escrito por outras pessoas
  • Escrever queries SQL complexas (mais de 30 linhas com múltiplos joins e condições) para resolver problemas complexos
  • Saber quando a SQL sozinha não resolve o problema
  • Ser capaz de pensar de aplicar seus conhecimentos em SQL para pensar de forma abstrata e construir queries que solucionem seus problemas de acesso aos dados e informações
  • Ser capaz de identificar queries incorretas e/ou ineficientes para o problema proposto
  • Ser capaz de identificar modelos de dados incorretos ou ineficientes para as necessidades de informações apresentadas

2.3.2. Avaliação da aprendizagem

ATENÇÃO: para receber o certificado de conclusão do curso 1.01, o aluno deverá atingir 80% de aproveitamento, atingindo pelo menos 800 pontos de um total de 1.000 pontos do curso. A pontuação do curso funcionará da seguinte maneira:

  1. Participação nas aulas online: 30 pontos para cada aula online que o aluno participar, totalizando 420 pontos. Note que participar da aula implica em assistir a aula online ativamente, fazendo perguntas ao instrutor, respondendo perguntas e realizando as tarefas online de cada aula.
  2. Tarefas de casa: 30 pontos para cada tarefa de casa completada e entregue no prazo, totalizando 390 pontos. Depois de cada aula online o aluno receberá um “Problem Set” (PS) para ser realizado em casa. Cada aula online, exceto a última, terá um PS que deverá ser feito em casa e entregue ANTES DA PRÓXIMA AULA ONLINE. PS entregues com atraso receberão somente 15 pontos. Não entregar um PS até a penúltima aula do curso implica em nota zero nesse PS.
  3. Exame de conclusão: vale 190 pontos e será realizado na primeira metade da última aula online do curso. A segunda metade da última aula online do curso será utilizada para encerramento e questões finais, bem como para uma avaliação da qualidade do curso feita pelos alunos.

Note que o nível de aproveitamento exigido para a emissão do certificado de conclusão é bem alto, de 80%, enquanto outros cursos online sobre SQL fornecem certificados com 60% de aproveitamento. Fazemos isso pois queremos que nossos alunos se dediquem e realmente aprendam o conteúdo do curso, durante o curso!

Note também que a soma dos pontos das aulas online (420), com o das tarefas de casa (390) e o do exame final (190) é de 1.000 pontos. Você precisa alcançar 80% (800 pontos) nessa soma para receber o certificado de conclusão do curso, portanto recomenda-se o seguinte:

  • Participe ativamente de todas as aulas online. Só isso já garante 42% de aproveitamento no curso.
  • Entregue todos os PS dentro do prazo estabelecido. Isso garante mais 39% no aproveitamento do curso.
  • Se você assistiu a todas as aulas online e entregou todos os PS no prazo, já alcançou 810 pontos (81% de aproveitamento) e pode fazer o exame final com tranquilidade e melhorar sua nota final.
  • Não fique dependendo da nota do exame final para alcançar os 800 pontos, pois o exame final vale só 190 pontos (19% da nota total)! Isso é assim pois um exame é uma avaliação pontual de um conteúdo muito extenso, portanto a melhor forma de avaliação da aprendizagem do aluno, no caso do curso 1.01, é através da participação ativa nas aulas e da resoluções dos PS para casa.

2.4. Materiais do curso

Depois de se matricular, logo antes do início do curso, você receberá um link para o download da máquina virtual na qual serão realizadas todas as aulas online e PS do curso.

Também serão fornecidos, a cada aula, uma apostila de estudo e links para outros materiais e leituras complementares na internet. Como não poderia deixar de ser, sua principal fonte de informação será a própria internet: tudo para aprender SQL com eficiência está disponível na internet (alguns desses materiais são tão importantes que serão disponibilizados em formato PDF também).

Não existe nenhum livro obrigatório para o curso mas diversos livros serão recomendados para estudos posteriores para quem quiser ser um expert do assunto.

2.5. Aulas online

Serão realizadas através dos Eventos e Hangouts do Google, portanto verifique se seu computador atende aos mínimo solicitado na seção 2.2.3: Pré-requisitos de hardware e software. Se possível, teste antecipadamente com algum amigo se seu sistema consegue participar corretamente de um Hangout do Google.

As aulas online serão realizadas 2 vezes por semana, geralmente na segunda e na quinta, de 20:00 até 23:00h. Excepcionalmente, com a concordância de todos, esses dias e horários podem ser alterados.

A sua participação nas aulas online é esperada e, como as turmas são muito pequenas, você receberá bastante atenção pessoal. Também é esperado que você participe ATIVAMENTE das aulas online, sendo que a qualidade de sua participação será fundamental na pontuação que você poderá obter em cada aula.

Durante as aulas online você será requisitado a realizar diversos procedimentos práticos em sua máquina virtual, para treinar os conceitos discutidos. Pode ser que você seja escolhido para compartilhar a tela de seu computador para a classe para mostrar como você resolver algum problema.

Também é altamente recomendável que você LEIA PREVIAMENTE o material da aula online, para aproveitar melhor o conteúdo, esclarecer suas dúvidas e realizar as tarefas dentro do prazo estabelecido.

ATENÇÃO: as aulas online NÃO SERÃO GRAVADAS, portanto se você perder alguma aula terá que tirar suas dúvidas na próxima aula.

Caso alguma aula online não possa ser realizada por problemas técnicos do instrutor (por exemplo: falta de energia elétrica ou perda de conexão à internet) ela será remarcada sem prejuízo aos alunos.

2.6. Problem Sets (PS)

Nossos famosos PS (conjunto de problemas) serão distribuídos em todas as aulas online (exceto a última) e constam de um conjunto de problemas, exercícios e questões que os alunos devem resolver em casa e ENTREGAR ANTES DA PRÓXIMA AULA ONLINE.

Cada PS incluirá questões cujo objetivo é reforçar os conteúdos vistos em aula, com dois tipos de problemas. Alguns problemas serão “curtos e rápidos”, para que você revise rapidamente o conteúdo da aula e se familiarize com os conceitos abordados e com a prática equivalente. Outros problemas serão “longos e demorados”, para o obrigar a pensar e explorar idéias e métodos para resolução do que está sendo solicitado.

Note que a resolução de cada PS é fundamental para seu aprendizado, e eles foram projetados para serem feitos e entregues ANTES DA PRÓXIMA AULA ONLINE. O motivo disso é que, no geral, cada aula online aumentará e expandirá o conteúdo tendo como base o que foi aprendido na aula anterior e, assim, cada PS deve ser respondido antes da próxima aula para garantir que você realmente entendeu e aprendeu o conteúdo da aula anterior e que está apto para assistir a próxima.

Acreditamos que cada PS é fundamental pois enquanto a performance em um exame pontual fornece uma indicação básica de competência, a performance em cada PS é sua maior oportunidade de demonstrar comprometimento com os estudos e competências adquiridas. Performance ruim nessas tarefas de casa resultarão em notas mais baixas!

Lembre-se também que entregar a resolução do PS no prazo lhe garantirá 30 pontos (e somente 15 pontos se for entregue com atraso), e que notas baixas nos PS tornam virtualmente impossível obter os 80% de aproveitamento necessário para obter o certificado de conclusão do curso (mesmo que você participe ativamente das aulas online).

2.7. Política sobre trabalho cooperativo

A maioria das pessoas aprende com mais eficiência quando estudam em pequenos grupos e/ou cooperam de diversas maneiras durante a realização das tarefas de casa (os PS). Isso é ainda mais verdadeiro quando se trata da área da computação, onde colegas podem imediatamente ver o código que você escreveu e identificar erros ou apontar outras idéias ou soluções.

O curso 1.01 estimula que os alunos, sempre que possível, atuem em conjunto para realizar as tarefas de casa. Isso pode ser um tanto difícil devido à distância de cada um em um curso online, mas ferramentas de comunicação instantânea como o Skype ou e-mail podem ajudar.

Dessa forma aceitamos que os PS sejam feitos em grupo desde que as seguintes regras sejam obedecidas:

  1. Você deve participar ativamente da resolução do PS junto com seu grupo. Só copiar as respostas não é aceitável.
  2. Cada aluno deve responder o PS individualmente, ou seja: as discussões podem ser em grupo mas cada aluno deve escrever e entregar individualmente as suas respostas, sem copiar o trabalho dos demais membros do grupo.
  3. Quando você entregar um PS que tenha sido discutido em grupo, você deve indicar o nome das pessoas que participaram do grupo e de que modo elas ajudaram.
  4. Quando você entrega um PS com seu nome, assumimos que você está certificando que esse foi o seu trabalho e que você se envolveu em todos os aspectos da tarefa (mesmo que você tenha tido dúvidas e tenha discutido com seus colegas de grupo). Não entregue apenas uma cópia do trabalho do grupo, escreva a sua própria versão. Isso significa que você escreveu o arquivo por conta própria e que não apenas anotou seu nome em um trabalho feito por outra pessoa.

2.8. Carga de estudo

A maioria dos cursos de SQL encontrados na internet são de aproximadamente 20 horas/aula. Por que o curso 1.01 tem 42 horas de aulas online, ao vivo, e mais cerca de 20 a 30 horas para estudo em casa? Porque nosso curso vai do básico ao avançado, utilizando 4 RDBMS diferentes!

Reserve de 8 a 12 horas por semana para o curso: 6 horas para as aulas online e mais 2 a 6 horas para as tarefas de casa (os PS).

3. Data, inscrição, valor e desistência:

3.1. Data

A turma de fevereiro já está fechada, e a próxima está prevista para iniciar o curso em maio de 2017.

ATENÇÃO: caso ocorra concordância de TODOS os alunos e do instrutor, as datas e horários de aulas podem ser alterados para outros de maior conveniência. Para que isso ocorra é imprescindível a concordância de todos.

3.2. Valor e formas de pagamento

O valor do curso é de R$ 840,00 (oitocentos e quarenta) reais, a vista ou parcelado com acréscimo. As formas de pagamento disponíveis (pelo PagSeguro) são:

  • Cartão de crédito:
    • Pagamento a vista sem acréscimos
    • Pagamento parcelado pelo PagSeguro, com acréscimo, em até 12 vezes
  • Boleto bancário:
    • Pagamento a vista (o PagSeguro cobra uma taxa de R$ 1,00 para a emissão do boleto)
  • Débito online:
    • Pagamento a vista (disponível para alguns bancos somente)
  • Depósito em conta:
    • Pagamento a vista

3.3. Como se inscrever

A turma de fevereiro já está encerrada, e a próxima está prevista para maio. Visite esta página regularmente para saber quando as inscrições para as novas turmas estarão abertas.

3.4. Desistência e devolução de valores

Você pode desistir do curso até o dia 05/02/2017, ou seja, um dia antes do início da primeira aula, para ser capaz de receber a restituição do valor pago, deduzido de taxas bancárias e do PagSeguro.

ATENÇÃO, ISSO É IMPORTANTE! Se você desistir do curso receberá a restituição do valor pago, DEDUZIDO das taxas bancárias e das taxas do PagSeguro.

O valor das taxas a serem deduzidas da restituição do valor do curso depende do meio de pagamento que você escolheu no PagSeguro. Por exemplo: a taxa do PagSeguro para pagamento a vista com boleto bancário é de 3,99% (R$ 33,52) e a taxa de DOC para a restituição do valor é de R$ 7,00, portanto você receberá como restituição o valor de R$ 799,48.

Caso você precise cancelar o curso, entre em contato conosco para informarmos o valor exato que será restituido para você.

4. Dúvidas?

Para dúvidas adicionais, favor entrar em contato conosco!