MC102: Algorithms and Computer Programming

Since 2011.

Prerequisite: None


Basic concepts on computer organization. Construction of algorithms and its representation on pseudocode and high level languages. Systematic development and programs implementation. Structuring, debugging, tests and documentation of programs. Problem solving.


Topics to be studied (preferably in this order)

1.     Computing environment’s basic organization

2.     Variables, constants and attributions

3.     Data input and output

4.     Arithmetic, logic and relational expressions

5.     Conditional commands

6.     Repeat commands

7.     Arrays and Strings

8.     Matrices

9.     Functions

10.  Variable scope

11.  Pointers and dymanic allocation of arrays

12.  Sorting algorithms

13.  Search algorithms

14.  Enumerated Types and structures

15.  Text and binary files

16.  Recursion

Recommended Literature:

      I.        P. Feofiloff. Algoritmos em Linguagem C. Campus-Elsevier, 1st edition, 2009

     II.        H. M. Deitel, P. J. Deitel. C - Como Programar, 6th edition, Pearson Education, 2011

    III.        B. W. Kernighan, D. M. Ritchie. The C Programming Language, 2nd edition, Prentice-Hall, 1988 [Translation to portuguese: C - A Linguagem de Programação. Editora Campus, 1989]

   IV.        J. L. Szwarcfiter, L. Markenzon. Estruturas de Dados e seus Algoritmos, 3rd edition, Editora LTC, 2010

    V.        W. Celes, R. Cerqueira, J.L. Rangel. Introdução a Estruturas de Dados, 1st edition, Editora Campus, 2004

   VI.        N. Ziviani. Projeto de Algoritmos com Implementações em Pascal e C, 3rd edition, Editora Cengage Learning, 2011

  VII.        T. Cormen, C. Leiserson, R. Rivest, C. Stein. Algoritmos - Teoria e Prática, 3rd edition, Editora Campus, 2012

 VIII.        R. Sedgewick, K. Wayne. Algorithms, 4th edition, Addison-Wesley, 2011

   IX.        A. Kelley, I. Pohl. A Book on C, 4th edition, Addison Wesley, 1998