-
Presentation
Presentation
This UC aims to develop knowledge about fundamental concepts of computer architecture and procedural programming using the C programming language. Students should also develop skills in the creation and implementation of algorithms and understand in detail and in depth the organization and functioning of a computer's memory. They should also acquire bases on version control using git. The skills developed in this UC allow a comprehension of what is at the base of high-level programming languages and how to make an efficient program that does a good memory management.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 6
-
Year | Nature | Language
Year | Nature | Language
1 | Mandatory | Português
-
Code
Code
ULHT1075-2279
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
- Module 0 - Course Unit
- Learning objectives
- Module 1 - Computer Architecture
- Computers, operating systems, applications and programming.
- Numeration systems: conversion between bases; arithmetic operations between different bases.
- Module 2 - Numbering Systems
- Conversions between bases.
- Arithmetic operations between different bases.
- Module 3 - Linux
- Terminal, bash console, and main commands.
- File Manipulation
- Module 4 - Version Control with Git
- Configuration, basics, branches/merges, remotes, ways of collaboration, rebase, tags; LFS.
- Module 5 - Markdown Syntax
- Documentation and formatting in plain text.
- Module 6 - Introduction to Python Programming
- Variables, Data types, Conditions and Cycles, Functions.
- Modulo 7 - Flowcharts
- Representing simple programs (with variables, conditions, cycles and functions).
- Module 0 - Course Unit
-
Objectives
Objectives
- Computer basics: CPU, GPU, memory, cache, operating system, file system and command line
- Generating documentation with Markdown
- Version control with Git
- Basic programming principles with Python and flowcharts
-
Teaching methodologies and assessment
Teaching methodologies and assessment
This curricular unit includes theoretical and practical clases.
The examples used in the class are simpler versions of actual industry practices. The students will have contact with videos, presentations and exercises so that the can practice the theoretical concepts.
-
References
References
-
Cone, M. (2018). The Markdown Guide. Independently published.
-
Chacon, S. & Straub, B. (2014). Pro Git (2nd Edition). Apress.
-
Matthes, E. (2019). Python Crash Course: A Hands On Project Based Introduction To Programming, 2nd Edition. No Starch Press.
-
-
Office Hours
Office Hours
-
Mobility
Mobility
No