Introduction to Programming and Problem Solving
1st Cycle Studies
Mathematical background at a basic level. Logic thinking and abstraction skills.
This curricular unit is structured in 2 weekly classes, with no distinction between T and TP classes. In classes the concepts are presented and the associated practice is promoted. The algorithmic reasoning is first exercised by solving problems without using a programming language. The concepts associated with programming are exemplified with the use of small code excerpts, being the practice directed towards problem solving. The number of students is lower than in a typical theoretical class, which allows a personalized monitoring of the students progression.
To learn the basic principles of programming and data management in a problem solving context. The algorithmic and data modeling and manipulation dimensions are explored, and context regarding informatics systems is provided.
It is also intended that the student acquires/develops the following core competencies (according to the Dublin descriptors):
- Computer skills related to the study field, problem solving, self-learning, practical application of theoretical knowledge, team work;
and the following secondary competencies:
- Competence in synthesis and analysis, critical reasoning, oral and written communication, interpersonal relations.
1 Introduction to computers
1.1 Basic concepts regarding computers and Internet
1.2 Numbering and data representation
2. Operating systems
2.2 Memory and storage
3. Distributed systems
3.1 Basic concepts. HTTP and Email
4. Problem solving and algorithms in Python
4.1 Basic concepts on problem solving and logic
4.2 Introduction to Python and data types
4.3 Conditional control instructions
4.4 Control instructions: cycles
5.1 Introductions and the relational data model
5.2 Entity-relationship diagrams
5.3 Querying and manipulating data
6. Python and databases
Ernesto Jorge Fernandes Costa
Evaluation and oral defense of 3 programming exercises: 12.5%
Evaluation and oral defense of a mini-project: 17.5%
- N. Dale and J. Lewis, “Computer science illuminated,” Jones & Bartlett Pub, 2006.
- Jon Barwise e John Etchemendy, “Language, Proof and Logic,” CSLI Publications, 1999.
- Ernesto Costa, “Introdução à Programação e Resolução de Problemas com Python”, DEI, 2011
- Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom, “Database Systems: The Complete Book,” Prentice Hall, 2001