Introduction to Algorithmic (261244)

Learning Outcomes

In this curricular unit students should understand and master the fundamental concepts and techniques inherent to the concept of algorithms and its relation with development of computer applications. Using informal programming languages (flowcharts and pseudocode) as essential tools for the specification and development of algorithms, mastering the most important techniques.
• Understand the use of informal programming languages, as a tool for the specification and development of applications;
• Acquire theoretical and practical knowledge about the use of programming techniques, namely pseudocode, as a tool to support the development of algorithms;
• Understand the concepts associated with high-level programming languages;
• Produce a computational and technological background that allows the understanding of the concepts present in the development of computer applications.

Study Program

Module I - Introduction to programming logic
• Computers and programming languages;
• Programming Logic - key elements and structures;
• Programming Paradigms;
• Simple sequence algorithms and computer programs.

Module II – Construction of algorithms in informal and symbolic language
• Algorithms in formal and informal language;
• Instructions, basic operations, operators, variables, data types, among others;
• Control structures (sequential, conditional and iterative), arithmetic, relational and logical expressions.

Bibliography

MAIN REFERENCES: 

Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms (3rd edition). The MIT Press.
Levitin, A. (2006). Introduction to the Design and Analysis of Algorithms (2nd Edition). Addison Wesley.
Sedgewick, R., & Wayne, K. (2011). Algorithms (4th Edition). Addison-Wesley Professional.
Skiena, S. S. (2020). The Algorithm Design Manual (3rd edition). Springer, NY: USA.