Visão Geral
A linguagem de programação C original foi projetada por Denis Richie no Bell Labs em 1972 como parte do desenvolvimento do sistema operacional UNIX. Desde então, tornou-se o carro-chefe dos sistemas operacionais, aplicativos de sistemas embarcados, aplicativos em tempo real e é onipresente na maioria das infraestruturas de TI. C tem uma enorme base de código instalada em quase todos os sistemas operacionais e plataformas de hardware, de supercomputadores a microdispositivos. O curso tem objetivos duplos. A primeira é ensinar aos alunos a linguagem de programação C do ponto de vista do desenvolvimento e da manutenção de código, uma vez que muitos alunos enfrentarão os desafios de atualizar e modificar o código C legado. Os alunos aprendem como projetar e desenvolver um aplicativo C, mas também como ler e compreender o código C existente. O segundo objetivo é ensinar aos alunos o “estilo de programação C”. Os programadores C desenvolveram maneiras muito características de escrever código que aproveitam os pontos fortes da linguagem, evitando as armadilhas em que caem os programadores C ingênuos. Por exemplo, o código C é escrito “próximo ao metal”, o que significa que os programas C podem exercer um controle refinado sobre os recursos de hardware, um recurso que permite executáveis muito compactos e rápidos, mas também permite que os programadores criem confusão quando o código é executado. Como disse Richie: “Se impedirmos que os programadores façam coisas perigosas, também os impediremos de fazer coisas brilhantes”. O estilo de programação C é uma forma de escrever código C que evoluiu para escrever código seguro, rápido e rígido. Desde o seu lançamento original, C passou por diversas revisões, sendo a mais notável a norma ISO C99 em 1999 e a norma atual C11 em 2011. O material do curso destaca as diferenças na linguagem dos vários padrões, uma vez que os alunos provavelmente serão trabalhando não apenas com o padrão atual, mas com código legado que pode ter sido escrito em um padrão diferente. Mais da metade do tempo de aula será gasto em exercícios práticos ou laboratórios. O compilador gcc é usado para a classe em um ambiente Linux ou Windows com Eclipse como IDE visual.