Introduction to Programming and Problem Solving
1
2012-2013
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 course is organized in two classes of two hours each during fourteen weeks, without distinction between theoretical and practical classes. During each class, we will present the relevant concepts and will immediately apply them. The concepts will be exemplified with code snippets while the practice will be driven by problems that foster student’s motivation. As the number of students will be lower than in a traditional lecture, it will be possible some degree of personal tutoring.
Learning Outcomes
The main goal is to teach/learn the basic principles of procedural programming in the context of problem solving. A programming language is just the vehicle that enables us to express algorithmic solutions to problems, and from that point of view they are all equivalent, yet we opt by Python for it minimizes the burden of complex syntax and because it induce good programming practices.
We expect students to acquire and develop the skills of analysis and synthesis, of problem solving, critical reasoning, practical application of the knowledge, and the informatics competences related with the concepts under study. We also want to foster the autonomous learning and group work skills, the interpersonal relationships and the oral and written communication.
Work Placement(s)
NoSyllabus
- Computers, programs and computation
- Basic concepts: simple objects and operators
- Assignment statement, name space
- Abstraction mechanisms: functions and modules
- Control structures: sequences, conditionals and loops
- Structured objects: lists, tuples and dictionaries
- Programming methodology: problems, algorithms and program development
- Interaction with the external world: files
- Abstraction mechanisms (II): complements about functions
- Advanced concepts: comprehension lists, iterators and functionals
- Control structures (II): exceptions
- Methodology of Programming (II): recursion
- Analysis of Algorithms
Head Lecturer(s)
Bernardete Martins Ribeiro
Assessment Methods
Assessment
Performance in class: 10.0%
Mini Tests: 30.0%
Exam: 60.0%
Bibliography
- Introdução à programação e resolução de problemas, E. Costa, pré-publicação, DEI, 2012.
- Python: programming in context, B. Miller and D. Ranum, Jones and Bartlett, 2009.
- Learning Python (4th edition), M. Lutz, O’Reilly, 2009.