Objectives and learning outcomes

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).


Contents/Syllabus

Fundamentals of computers (hardware/software)

Algorithm design and structured programming

Introduction to the C programming language

Basic structures of the C language: simple data types, variables, and operators (arithmetics, relationals and logicals)

Assignment instructions and input/output statements

Conditional statements

Repeat instructions (loops statements)

Functions

Arrays and strings

Pointers

User-Defined Data Types (structures)

Dynamic memory management

Text files and binary files

Recursive algorithms


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

- two written tests (WT): 16 points (8 points each)

- two practical tests (PT): 4 points (2 points each)

- Final Grade (FG): WT + PT

Exam

- Admission: FG >= 6

- Exam (E) - 16 points

- Final Exam Classification = E + PT

Calendar of assessment

- written test 1: 2024/11/4 (6 pm)

- written test 2: 2024/12/16 (6 pm)

- practical test 1: 8th week (in practical classroom)

- practical test 2: 14th week (in 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

Simple data types

Variables and operators

Assignment instructions and input/output instructions »»» More about assignment instruction and 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 class

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

C Compilers

DEV-C++ (for Windows)

CODE::BLOCKS »»» User guide


Practical assessment

Carrying Out Practical Tests

Practical test

Assessment Platform

See in portuguese web page - Plataforma de Avaliação


Service hours

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

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