O curso destina-se a todos os que pretendem iniciar-se no fascinante mundo da programação de computadores, seja de uma forma profissional, ou seja para desenvolver projectos pessoais.
Obviamente que este curso, dada a sua abrangência técnica, quer em termos de linguagens de programação, quer noutras vertentes essenciais a qualquer informático (segurança de sistemas, administração de redes) é a ferramenta indicada a quem procura uma formação técnica e essencialmente prática, direccionada às necessidades concretas das empresas, proporcionando assim uma excelente porta de acesso ao mercado de trabalho numa área muito carenciada de técnicos, a nível nacional e internacional, como é a das Tecnologias de Informação e Comunicação.
Para a frequência desta formação não são exigidos pré-requisitos especiais.
O curso é aberto a qualquer participante, sendo todavia recomendável ter como base a frequência do ensino secundário, ou pelo menos a escolaridade obrigatória.
Como é norma nos cursos do INEPI, os formadores conjugam uma relevante formação académica com uma experiência profissional prática e efectiva, sendo profissionais da área, com um conhecimento muito directo e prático das necessidades profissionais com que os formandos se confrontarão no mercado de trabalho.
No final do curso os formandos terão adquirido conhecimentos que lhes permitirão desempenhar uma actividade profissional no âmbito da programação de computadores, dominando diversas linguagens de programação, nomeadamente as mais modernas e mais utilizadas na programação para ambientes de internet.
Estarão também aptos a realizar a análise e desenho de sistemas informáticos.
Dominarão igualmente outras matérias e técnicas complementares à actividade de desenvolvimento informático, mas essências, como seja, por exemplo, a segurança de sistemas e a instalação e administração redes de computadores.
No final do curso, os formandos poderão ingressar em departamentos de desenvolvimento de sistemas de médias e grandes empresas e outras organizações, em software houses, ou serem responsáveis pela área informática de pequenas e médias empresas.
Esta é uma área profissional que permite ainda desenvolver um trabalho em regime livre, seja como atividade principal, seja como atividade complementar ao emprego regular.
Esta formação pode também adequar-se a quem pretenda, de forma autónoma, desenvolver os seus próprios sistema informáticos.
O INEPI tem uma estrutura própria para angariação de estágios (ou emprego) para os formandos, junto de empresas suas clientes, ou outras, sendo que com algumas tem protocolos específicos para este efeito.
Sempre que possível, mas sem que tal seja um compromisso efectivo (pois depende da disponibilidade das empresas), o INEPI propiciará a frequência de estágio aos seus formandos.
No final do curso o formando terá direito a um certificado de formação profissional, nos termos da legislação em vigor.
O curso não confere grau académico.
O curso adopta, no essencial, uma metodologia fundamentalmente prática, com o recurso a muitos trabalhos práticos de desenvolvimento de software.
O curso decorrerá em sala, com recurso a suportes audiovisuais.
As salas são equipadas com rede sem fios de acesso à internet.
Os formandos poderão optar entre utilizar o seu próprio computador (é sempre a opção mais recomendável, pois permite trabalhar em casa), ou utilizar os computadores do INEPI.
Os materiais consumíveis são, em qualquer curso, da responsabilidade dos formandos. No entanto, neste curso não se prevê a necessidade de consumíveis.
A bibliografia eventualmente recomendada, ou meios técnicos que o formando possa utilizar na sua vida profissional pós-curso, não são considerados como consumíveis.
Por norma, qualquer documentação fornecida pelo INEPI, para apoio à formação, é disponibilizada em formato digital.
A avaliação deste curso é feita módulo a módulo. Para concluírem o curso com aproveitamento, os formandos deverão obter classificação positiva em todos os módulos.
A média final do curso é a média aritmética das notas dos diversos módulos.
O critério de avaliação nos módulos tem em conta a avaliação contínua, bem como as notas de trabalhos finais (exames) ou outros que sejam efectuados durante o módulo. São também valorizados factores como a assiduidade, participação nas aulas, execução de trabalhos de rotina, etc.
A escala de avaliação utilizada é de 0 a 20.
A duração do curso é de 480 horas (aproximadamente 18 meses de duração efectiva de curso)
As condições quanto a horários disponíveis, preços e condições de pagamento são as que, à data, constarem da tabela de condições dos cursos, do INEPI. Esta informação é fornecida directamente pela Secretaria.
As condições contratuais são as constantes no Regulamento Interno do INEPI (disponível na Secretaria do INEPI e no site www.inepi.pt).
Ciclo Programação Base – 160 horas
Sistemas Operativos (DOS / Linux / Windows Server).......................... 20 horas
Bases de Dados: SQL Server/ MySQL................................................ 40 horas
Análise e Concepção de Sistemas..................................................... 40 horas
Técnicas de Programação................................................................. 30 horas
Instalação e Administração de Redes de Computadores ................... 30 horas
Ciclo Programação I – 160 horas
HTML ................................................................................................ 20 horas
PHP ................................................................................................... 40 horas
Java ................................................................................................... 60 horas
Programação para Android................................................................ 40 horas
Ciclo Programação II – 160 horas
VB.net ............................................................................................... 40 horas
ASP.net ............................................................................................. 40 horas
C#....................................................................................................... 50 horas
Segurança de Sistemas...................................................................... 30 horas
MÓDULO – Sistemas Operativos (DOS / Linux / Windows Server)
- Sistemas Operativos
- Dos (comandos mais usados)
- UNIX (Comandos mais usados)
- Linux
4.1.Conceitos básicos
4.2.Funcionalidade/ navegação
4.3.Os sistemas de pastas e ficheiros
- Windows Server
5.1.Conceitos básicos
5.2.Funcionalidade/ navegação
5.3.Os sistemas de pastas e ficheiros
MÓDULO – Bases de Dados: SQL Server/ MySQL
1.Criação da base de dados
1.2. Criação das tabelas
1.3. Criação das chaves primárias
1.4. Formulários
1.5. Menus. Painel de Navegação. Operações usuais sobre os dados utilizando as interfaces
1.6. Inserção
1.7. Consulta
1.8. Modificação
2. Introdução à linguagem SQL
2.1. O que é a linguagem SQL?
2.2. Breve história da linguagem SQL
2.3. Características da linguagem
3. Selecção de Informação de uma Base de Dados
3.1. A instrução SELECT
3.1.1. Selecção de registos
3.1.2. Efectuando projecções
3.1.3. Efectuando restrições
3.1.3.1. A cláusula WHERE
3.1.4. Os operadores relacionais
3.1.5. Os operadores lógicos
3.1.6. Outros operadores
3.1.6.1. O operador BETWEEN
3.1.6.2. O operador IN
3.1.6.3. O operador IS
3.1.6.3.1. A palavra especial NULL
3.1.6.4. O operador LIKE
3.1.6.4.1. Utilização de wildcards
3.1.7. Precedência de operadores
3.1.8. Eliminação de duplicados
3.1.8.1. A palavra especial DISTINCT
3.1.8.2. A palavra especial ALL
4. Ordenação de Informação
4.1. Ordenação dos dados por uma coluna
4.2. Ordenação dos dados por várias colunas
4.3. Selecção de expressões
4.4. Ordenação por posição
5. Relacionando Informação
5.1. O produto cartesiano entre tabelas
5.2. A operação de INNER JOIN
5.3. A operação de OUTER JOIN
5.4. A operação de UNION
5.5. A operação SELF JOIN
5.6. A operação INTERSECT
5.7. A operação MINUS
6. Funções de Agregação
6.1. A função Count
6.2. A função Min
6.3. A função Max
6 .4. A função Sum
6.5. A função Avg
7. Agrupando a Informação
7.1. A cláusula GROUP BY
7.2. A cláusula HAVING
7.3. WHERE vs HAVING
7.4. Agrupamentos e o valor NULL
8. Manipulação de Registos
8.1. O comando INSERT
8.2. O comando UPDATE
8.3. O comando DELETE
9. Manipulação de Bases de Dados e Tabelas
9.1. A instrução CREATE DATABASE
9.2. A instrução DROP DATABASE
9.3. A instrução CREATE TABLE
MÓDULO – ANÁLISE E CONCEPÇÃO DE SISTEMAS
1. A modelação visual
1.1. O que é a modelação
1.2. A importância da modelação
1.3. Princípios da modelação
1.4. A modelação orientada por objectos
2. Introdução à linguagem de modelação UML
2.1. O que é a linguagem unificada de modelação
2.2. A criação e evolução histórica do UML
2.3. Objectivos do UML
2.4. Utilizações do UML
3. Modelação estrutural
3.1. Comportamento do sistema
3.2. Actores
3.3. Casos de uso
3.3.1. Relações dos casos de uso
3.4. Objectos
3.5. Estereótipos e classes
3.6. Relações
3.7. Diagramas de classes
4. Modelação comportamental
4.1. Interacção entre objectos
4.2. Diagramas de interacção
4.2.1. Diagramas de sequência
4.2.2. Diagramas de colaboração
4.2.3. Diagramas de actividade
5. Modelação arquitectónica
5.1. Componentes e interfaces
5.2. Diagramas de componentes
5.3. Diagramas de deployment
5.4. Padrões e frameworks
MÓDULO – TÉCNICAS DE PROGRAMAÇÃO
1. Fluxograma
2. Linguagem Algorítmica
3. Ambiente Para Escrever Algoritmos
4. Funcionamento Do Computador
5. Estruturas Chaves Da Construção De Algoritmos
6. Sequenciação
6.1. Decisão Ou Selecção
6.2. Repetição Ou Iteração
- Variáveis
8. Constantes
9. Tipos De Dados
- Expressões Aritméticas
- Operadores Aritméticos
11.1. Prioridade
12. Expressões Lógicas
12.1. Operadores Relacionais
12.2. Operadores Lógicos
12.3. Prioridade
13. Ciclos
13.1. If-Then-Else
13.2. Case-Of
13.3. While-Do
13.4. Repeat-Until
MÓDULO – Instalação e Administração de Redes de Computadores
1. Introdução
1.1. Evolução histórica
1.2 Conceito de Redes
1.3. Necessidades de redes de computadores
1.4. Vantagens das redes de computadores
2. Utilizações das redes de computadores
2.1. Redes corporativas
2.2. Redes para pessoas
2.3. Questões sociais
3. Classificação das redes de computadores
3.1. Classificação das redes segundo a dimensão
3.1.1. Redes locais (LAN)
3.1.2. Redes metropolitanas (MAN)
3.1.3. Redes geograficamente distribuídas (WAN)
3.2. Classificação das redes segundo a tecnologia de transmissão
3.2.1. Redes ponto-a-ponto
3.2.2. Redes de difusão
4. Topologias de redes
4.1. Bus
4.2. Estrela
4.3. Anel
4.4. Mesh
4.5. Star-Ring
4.6. Star-Bus
4.7. Hybrid Mesh
5. Orientação de uma rede
6. Modelos e referência
6.1. O modelo de referência OSI
6.2. O modelo de referência TCP/ IP
7. Meios de transmissão
7.1 Cablagem
7.2. Meio magnéticos
7.3. Par entrelaçado
7.4. Fibra óptica
8. Protocolos
9. Router, Hub, Modem
10. Domain Name Server
11. Planejar uma rede
11.1. Criar uma rede
11.2. Simular uma rede
11.3. Prática: Criar a cablagem e desenho da rede
11.4. Partilha
11.5. Domínios
MÓDULO – PROGRAMAÇÃO HTML
1. Introdução à Internet e à World Wide Web
2. Servidores de Web e http
3. Os browsers e a linguagem Html
4. Introdução à linguagem Html
4.1. Criação de um documento em Html
4.2. Etiquetas
4.3. Estrutura básica de um documento
4.3.1. Secções
5. Formatação de documentos
5.1. Cabeçalhos
5.2. Parágrafos
5.3. Estilos
5.4. Cores
6. Ligações
6.1. URLs
6.2. O que são Uniform Resource Locators
6.3. Criação de um URL
6.4. Os diferentes serviços URL
6.4.1. Email
6.4.2. Ftp
6.4.3. News
6.4.4. Telnet
6.5. Âncoras
7. Imagens
7.1. Os diferentes formatos de imagens
7.1.1. Gif
7.1.2. Jpeg
7.2. Inserção de imagens num documento
7.3. Posicionamento de imagens
7.4. Imagens com ligações
7.5. Imagens de fundo
8. Listas
8.1. Listas ordenadas
8.2. Listas não-ordenadas
8.3. Glossários
9. Tabelas
9.1. Criação de tabelas
9.2. Definição de linhas e colunas
10. Formulários
10.1. Introdução
10.2. Componentes de um formulário
10.3. Envio de dados
MÓDULO – PHP
1. Introdução
Client-Side Scripts
Server-Side Scripts
2. O Que É Php, O Que Se Pode Fazer E Como Surgiu?
3. Enviar Dados Para O Servidor Http
O Método Get
Headers
O Método Post
Utilizando Get E Post
4. Formulários Html
Definindo Um Formulário
A Tag <Input>
Campo De Texto
Campo De Texto Com Máscara
Checkbox
Radio Button
Submit Button
Reset Button
Button
Textarea
Select
Upload De Arquivos
5. Instalação E Configuração Em Ambiente Windows
6. Servidor Apache
7. Php
8.Mysql
Strrev
Strtolower
Strtoupper
Ucfirst
Ucwords
Str_Replace
9.Funções Diversas
Chr
Ord
Echo
Print
Strlen
10. Funções Para Tratamento De Arrays
11. Funções Genéricas
Array
Range
Shuffle.
Sizeof
12.Funções De “Navegação”
Reset
End
Next
Prev
Pos
Key
Each
13.Funções De Ordenação
Sort
Rsort
Asort
Arsort
Ksort
Usort
Uasort
Uksort
14. Tipos Suportados Pelo Mysql
Numéricos
Data E Hora
Strings
15. Realizar Consultas
16. Utilizar Headers
17. Utilizar Cookies
O Que São
Gravar Cookies
Ler Cookies Gravados
18. Manipulando Arquivos
19. Funções Relacionadas A Html
Htmlspecialchars
Htmlentities.
Nl2br
Get_Meta_Tags
Strip_Tags
Urlencode
Urldecode
20. Funções Relacionadas A Arrays
Implode E Join
Split
Explode
21. Comparações Entre Strings
Similar_Text
Strcasecmp
Strcmp
Strstr
Stristr
Strpos
Strrpos
22. Funções Para Edição De Strings
Chop
Ltrim
Argumentos Com Valores Pré-Definidos (Default)
23. Variáveis E Constantes
Declaração De Uma Variável
O Modificador Static
Variáveis Variáveis
Variáveis Enviadas Pelo Navegador
Urlencode.
Utilizando Arrays
Variáveis De Ambiente
Verificando O Tipo De Uma Variável
Verificar Se Uma Variável Possui Um Valor
A Função Isset
A Função Empty
Constantes Pré-Definidas
Definindo Constantes
24. Classes E Objectos
25. Noções De Sql
26. Aceder Ao Mysql Via Php
Estabelecer Conexões
Seleccionando A Base De Dados
Realizar Consultas
Apagando O Resultado
Número De Linhas
Utilizando Os Resultados
Alterando O Ponteiro De Um Resultado
27. Aceder Ao Postgresql Via Php
28. Separador De Instruções
29. Nomes De Variáveis
30. Comentários
Comentários De Uma Linha
Comentários De Mais De Uma Linha
31. Imprimindo Código Html
32. Tipos
Tipos Suportados
Inteiros (Integer Ou Long)
Números Em Ponto Flutuante (Double Ou Float)
Strings
Arrays
Listas
Objetos
Booleanos
Transformação De Tipos
Coerções
Transformação Explícita De Tipos
Com A Função Settype
33. Operadores
Aritméticos
De Strings
De Atribuição
Bit A Bit
Lógicos
Comparação
Expressão Condicional
De Incremento E Decremento
34. Estruturas De Controle
Blocos
Comandos De Seleção
Comandos De Repetição
Quebra De Fluxo
MÓDULO – PROGRAMAÇÃO EM JAVA
1. Introdução à programação em Java
1.1. A linguagem Java
1.2. Características da linguagem
1.3. Compiladores de Java
1.3.1. O Java Development Kit
1.3.2. O Visual J++
1.4. Escrita de um programa em Java
1.5. Compilação
2. Fundamentos da linguagem Java
2.1. Tipos de dados primitivos
2.2. Variáveis
2.3. Palavras reservadas
2.4. Literais
2.5. Comentários
2.6. Expressões
2.7. Operadores
2.7.1. Operadores aritméticos
2.7.2. Operadores relacionais
2.7.3. Operadores lógicos
2.7.4. Operadores de atribuição
2.7.5. Precedência de operadores
2.8. Conversão de tipos
3. Controlo do fluxo de código
3.1. Instruções condicionais
3.1.1. If Else
3.1.2. If Else If
3.1.3. Switch
3.2. Instruções Repetitivas
3.2.1. Do While
3.2.2. While
3.2.3. For
3.3. Instruções de controlo de processamento
3.3.1. Break
3.3.2. Continue
4. Vectores
4.1. Declaração
4.2. Criação
4.2.1. O operador New
4.3. Inicialização
4.4. Vectores bidimensionais
4.5. Vectores multidimensionais
5. Classes e objectos
5.1. Java e a programação orientada por objectos
5.2. Classes
5.3. Objectos
5.4. Construtores
5.5. Métodos
6. Herança
6.1. O conceito de herança
6.2. Criação de uma subclasse
6.3. Anulação de métodos
6.4. Modificadores de acesso
6.5. Classes abstractas
6.6. A palavra reservada final
7. Interfaces
7.1. A herança múltipla
7.2. Criação de interfaces
7.3. Implementação de interfaces
7.4. Utilização de múltiplas interfaces
8. Excepções
8.1. try, catch e finally
8.2. Utilização de excepções
8.3. Criação de excepções
9. Packages
9.1. Utilização de packages
9.2. Criação de packages
9.3. Algumas packages da linguagem Java
10. Input/Ouput
10.1. Definição de canal
10.2. Canais de bytes
10.3. Canais de caracteres
10.4. Canais com filtros
11. Applets
11.1. O que são Applets
11.2. Integração de applets em páginas da web
11.3. O ciclo de vida de uma applet
11.4. Gráficos
11.5. Fontes
11.6. Cores
MÓDULO – PROGRAMAÇÃO PARA ANDROID
- Introdução à plataforma Android
- Visão geral de uma aplicação Android
- Layouts e Widgets
- Intents
- Persistência de dados
- Conetividade (integração com Webservices)
- Threads e Aync Tasks
- Services e BroadcastReceivers
- Notificações
- Mapas e GPS
- Multimedia (câmara, áudio e vídeo)
- AppWidgets
- Criação de uma aplicação e publicação no Market
- WebApps com WebView
- Sensor
- Bluetooth
- Gráficos e animações
- Monitorização com Ads
- Tracking com Flurry
MÓDULO – VB.NET
1. Introdução ao Visual Basic. NET
2. Estudo do framework
3. O IDE
4. Tipos de projecto
5. Leitura e escrita de dados
6. Variáveis
7. Estruturas de decisão
8. Estruturas iterativas
9. Operadores aritméticos, relacionais e lógicos
10. Estruturas de decisão
11. Estruturas iterativas
12. Operadores aritméticos, relacionais e lógicos
13. Estudo dos componentes da linguagem: objectos, propriedades, eventos e métodos
14. Forms
15. Estudo das propriedades e métodos de objectos: Button, TextBox, CheckBox, ListBox, etc.
16. Caixas de diálogo
17. Programação de eventos
18. Menus
19. Arquitectura do .NET Framework
20. Vectores (matrizes)
21. Captura de erros – Excepções
22. Funções e procedimentos – argumentos, sobrecarga (overload), polimorfismo e encapsulamento
23. Validação de campos: técnicas e exemplos
24. Leitura/ Escrita em ficheiros
25. Programação orientada a objectos
26. Herança
MÓDULO – ASP.NET
1. Visão geral da Microsoft. NET Framework
2. Utilização do Mircosoft Visual Studio.Net
3. As linguagens Microsoft. Net
4. Criação de uma Web Form ASP.NET
5. Adicção de código
6. Tracing
7. Validação de Inputs
8. Users Controls
9. Acesso a dados
10. Escrever e ler dados XML
11. Criação e consumo de Web Services XML
12. Configuração, optimização, e instalação de uma aplicação Web ASP.NET
13. Securização de uma aplicação Web ASP.NET
MÓDULO – C#
1 – Introdução
- Plataforma .NET
- Framework.NET
- Principais características.
2 – Ambientes de Desenvolvimento
- Visual Studio
- Estrutura de uma aplicação
3 – Tipos de Dados / Operadores
- Variáveis
- Enumeradores
- Arrays
- Operadores Aritméticos
- Operadores Relacionais
- Operadores Lógicos
Criação de casos práticos
4 – Controlo de fluxo / Tratamento de erros
- for
- while, do…while
- if
- switch
- try…catch
Programar uma aplicação
5 – Arrays
- Arrays Unidimensionais
- Arrays Multidimensionais
- Arrays Jagged
6 – Classes e Métodos
- Classes
- Classes abstractas
- Herança
- Metodos
- Sobrecarga de métodos
7 – Polimorfismo
- Overriding de Métodos
8 – Exceptions
- Exceptions
MÓDULO – SEGURANÇA DE SISTEMAS
1. Introdução à Segurança Informática
1.1. As diversas áreas da segurança informática
1.2. A importância da segurança da informação
1.3. Quem são as entidades que ameaçam um sistema?
1.4. Necessidades de Segurança
1.5. Os principais alvos
1.6. Técnicas utilizadas
2. Vírus
2.1. O que é um vírus?
2.2. O porquê da existência dos vírus
2.3. O modo de funcionamento dos vírus
2.4. Tipos de vírus
2.5. Protecção contra vírus
3. Protecção do PC
3.1. Protecção do BIOS
3.2. Protecção do sistema operativo
3.3. Protecção do screen saver