Learning outcoming

The general learning objectives are as follows:

- Understand the fundamentals of programming to solve computational problems using computers.

- Understand how to abstract a concrete problem for its proper specification / modeling and implementation in the form of a computer program

- Introduce the basic concepts of imperative programming.

- Develop programming skills using the C language.

- Realize and know how to properly integrate a programmatic solution with the architectural contingencies of a computer (e.g., computer arithmetic, dynamic memory resource management).

 


Syllabus

Fundamentals of computers (hardware/software)

Algorithm design and structured programming

Introduction to the C programming language

Simple data types

Tests decisions

Conditions

Loops (repetitions)

Functions/subprograms

Arrays and strings

Pointers

Dynamic memory management

Structures ("structs")

Files (text and binary)

Recursion

 


Bibliography

"The C Programming Language", Second Edition, 1988

Brian W. Kernighan and Dennis M. Ritchie

Prentice Hall Software Series

ISBN: 978-013-110-362-7

 

"Practical C Programming: Why Does 2+2 = 5986?", 3rd Edition, 1997

Steve Oualline

O'Reilly Media

ISBN: 978-156-592-306-5

 


Assessment criteria

Learning period

- 2 Written Tests (WT) - 16 points (8 points each)

- 2 Evaluations of Knowledge on Practical Classes (PC) --> 4 points divided by 2 times (2 point each)

- Final Grade (FG): WT + PC

Exam

- Admission: FG >= 6

- Exam (E) - 16 points

- Final Exam Classification = E + PC

Calendar of assessment

- Written Test 1: 2024/11/4 (6 pm) (classroom 6.01)

- Written Test 2: 2024/12/16 (6 pm) (classroom 6.01)

- Evaluations of Knowledge on Practical Classes: 8th week and 14th week (practical classroom)

 


Notes

C programming tutorials

W3Schools

TutorialsPoint

 

Introduction to Programming in C

Introduction to the C Programming Language

 

Fundamentals of computers (hardware/software)

Algorithm design

Basic structures of the C language: simple data types  ##  variables and operators

Assignment instructions and input/output instructions  ##  more about assignment instruction ans I/O instructions

Conditional statements  ##  more about conditional statements

Repeat instructions (loops)  ##  more about repeat instructions (loops)

Functions  ##  more about functions

Arrays and Strings

Pointers

Dynamic memory management  ##  memory allocation

Structures ("structs")

Text files and binary files  ##  more about files

Recursive algorithms  ##  more about recursive algorithms

 


Practical exercices (in portuguese)

Edit, compile and run C programs

Algorithm design

Variable and expression manipulation

Assignment Instructions and Input/Output Instructions

Conditional statements

Repeat instructions (loops)

Functions

Arrays

Pointers

Dynamic memory management

Structures (struct)

Text files

Binary files

Recursive algorithms

Strings

 


Service hours

- Monday, 4 pm to 6 pm (Office 4.2)

- Tuesday, 4 pm to 6 pm (Office 4.2)