O livro adota a linguagem de programação C. A escolha dessa linguagem foi motivada pela necessidade de homogeneização no ensino de disciplinas introdutórias de programação de computadores nos cursos de várias universidades (por exemplo, nas disciplinas de Algoritmos e Estruturas de Dados I do Departamento de Ciência da Computação da Universidade Federal de Minas Gerais). O uso da linguagem C apresenta, reconhecidamente, vantagens no ensino de tais disciplinas para cursos como os de Engenharia Elétrica e Engenharia de Controle e Automação, por se tratar de linguagem adequada à chamada programação de sistemas, na qual se faz acesso direto a dispositivos e recursos de hardware. Para tais sistemas, a programação na linguagem C é adequada pois a linguagem permite acesso direto aos dispositivos e recursos de hardware, e portanto bibliotecas e programas que fazem tais acessos diretos ao hardware podem ser mais facilmente encontrados e usados. Para outros cursos, o uso da linguagem C é controverso, pelo fato de existir na linguagem uma preocupação central com eficiência, e possibilidade de acesso direto a áreas de memória, o que leva, principalmente, a duas consequências indesejáveis do ponto de vista de um aprendizado em programação:
Grande parte do desenvolvimento das linguagens de programação nos dias atuais é relacionado ao objetivo de tornar as linguagens cada vez mais seguras, no sentido de possibilitar a deteção de um número cada vez maior de erros de tipo, e ao mesmo tempo dando flexibilidade ao programador, de modo que ele não tenha que especificar ou mesmo se preocupar com a anotação explícita de tipos em seus programas, e procurando manter o algoritmo que permite essa deteção de erros simples e eficiente.
A ausência de suporte a polimorfismo em C impede, em particular, que existam bibliotecas com funções de manipulação de estruturas de dados de propósito geral como pilhas, filas, dicionários, conjuntos etc., comuns em linguagens mais modernas.
Leitores interessados em tais assuntos podem consultar as notas bibliográficas do Capítulo 2.
Em conclusão, existe um compromisso entre a intenção de formar durante o tempo da graduação um programador pronto para as necessidades da indústria e o objetivo didático primordial que consiste em oferecer uma formação sólida aos graduandos nos aspectos teóricos relacionados à programação de computadores. Pelo primeiro motivo, este livro foi escrito na linguagem C. Pelo segundo, se oferecem seções especiais que abordam temas destinados aos estudantes que procurem maior aprofundamento nos conteúdos lecionados.