Introduction to Programming and Problem Solving
1
2018-2019
01000043
Computer Science
Portuguese
Face-to-face
SEMESTRIAL
6.0
Compulsory
1st Cycle Studies
Recommended Prerequisites
Mathematical background at a basic level. Logic thinking and abstraction skills.
Teaching Methods
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.
Learning Outcomes
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.
Work Placement(s)
NoSyllabus
1 Introduction to computers
1.1 Basic concepts regarding computers and Internet
1.2 Numbering and data representation
2. Operating systems
2.1 Processes
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
4.5 Strings
5. Databases
5.1 Introductions and the relational data model
5.2 Entity-relationship diagrams
5.3 Querying and manipulating data
6. Python and databases
Head Lecturer(s)
Ernesto Jorge Fernandes Costa
Assessment Methods
Assessment
Evaluation and oral defense of 3 programming exercises: 12.5%
Evaluation and oral defense of a mini-project: 17.5%
Exam: 70.0%
Bibliography
- 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