Topic 1. Introduction to computer science and programming.
-------------------------------------------------------------------
- Computer science and computers. A historical perspective.
- Information representation in computers
- Algorithms and programs. Tools for algorithm design
Topic 2. Software and Hardware
------------------------------------
- Programs and programming languages. Classification. Translators, compilers and interpreters. Operating systems.
- Functional structure of a computer. Internal architecture. Instruction execution by the processor. Data storage. Peripherals. Computer networks and the Internet
Topic 3. Basic elements of the C programming language.
---------------------------------------------------------------
- General structure of a program
- Variables and constants
- Types of operators: arithmetic, relational, logic and assignment operators.
- Operators, expressions and instructions
- Pointer type.
- Input and output instructions
Topic 4. Control Flow and Loops
-----------------------------------
- Selection structures: if-else, switch
- Repetition structures (loops): for, while, do-while
- Nested control structures
Topic 5. Functions
--------------------
- Modular programming
- Function definition
- Calling a function
- Types of arguments: input, output, input / output
- Passing Arguments by Value or by Reference -Scope of Function Variables. Visibility
- Arrays and structures as parameters
- Library functions and standard C libraries
Topic 6. Complex Data Types
--------------------------------
- Introduction: structured vs simple data types
- Definition and use of arrays
- Pointers and arrays
- Character strings
- User defined data structures: records
- Arrays of records
Topic 7. Search, sort and merge algorithms
-------------------------------------------------
- Search algorithms
- Sort algorithms
- Merge algorithms
Topic 8. Advanced Topics
----------------------------
- External data structures: files and databases
- Dynamic memory allocation
- Computer programs commonly used in engineering.