Programming Fundamentals
Keywords |
Classification |
Keyword |
OFICIAL |
Programming Fundamentals |
Instance: 2011/2012 - 1S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
MIEIC |
151 |
Syllabus since 2009/2010 |
1 |
- |
6 |
70 |
162 |
Teaching language
Portuguese
Objectives
1 - BACKGROUND
Informatics Engineers require expertise in programming techniques which can only be consolidated with a good basis in programming fundamentals.
2 – SPECIFIC AIMS
To develop the basic knowledge to solve medium complexity programming problems.
3 – PREVIOUS KNOWLEDGE
No previous knowledge is required.
4 – PERCENT DISTRIBUTION
Scientific component: 40%
Technological component: 60%
5 - LEARNING OUTCOMES
At the end of the course, the student is expected to handle programming problems of medium complexity, creating the appropriate procedural and data abstractions. The student will be encouraged to find good ideas to solve the problems and implement them with Scheme, a very simple programming language.
Program
Procedural abstraction: introduction to Scheme programming, procedures and processes, recursion and iteration, order of growth of the processes.
Data abstraction: selectors and constructors, abstraction barriers, lists, abstraction example (sets).
Mutable data abstractions: constructors, selectors and mutators, mutable lists, queues, tables, vectors, text files.
Mandatory literature
F. Nunes Ferreira, António Coelho; Scheme na descoberta da programação, FEUPedições (formato e-book), 2008
Complementary Bibliography
Springer, George;
Scheme and the Art of Programming. ISBN: 0-262-19288-8
Abelson, Harold;
Structure and interpretation of computer programs. ISBN: 0-262-01077-1
Teaching methods and learning activities
The continuous enrolment of the student in the course is promoted, both with the study and discussion of the course topics and with programming assignments These assignments, whose evaluation is taken into consideration for the final classification, are performed on the computer, on a monthly basis.
The student is motivated to find the best ideas to solve specific problems execute them and implement the programming solutions, in an elegant, legible and efficient (time and space) mode. The Scheme programming language will be used for these developments.
• Lectures: Exposition of the program topics and discussion of examples using a computer connected to a multimedia projector.
• Lab classes: Presentation, discussion and development of programming assignments in Scheme.
As an experiment, a self-evaluation non-mandatory programming assignment will be provided on a weekly basis. This assignment is performed on the computer, out of the class, and submitted to Moodle for automatic evaluation.
Software
http://www.drscheme.org/
keywords
Physical sciences > Computer science > Programming
Evaluation Type
Distributed evaluation without final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
60,00 |
|
|
Practical Examination |
Exame |
6,00 |
|
|
Written examination |
Exame |
2,00 |
|
|
Self assessment |
Exame |
15,00 |
|
|
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Study for the examinations |
Estudo autónomo |
16 |
|
Study of self-learning materials |
Estudo autónomo |
63 |
|
|
Total: |
79,00 |
|
Eligibility for exams
Not to exceed the absences limit (25% of total number of estimated lab classes) and to obtain a minimum of 30% in the weighted average of components PE, CE1, CE2 and CE3, according to the final classification formula.
Calculation formula of final grade
The evaluation will be based on the following components:
• PE – Performance evaluation of the student on the assignments proposed to the class.
• CE1, CE2, CE3 – Computer examination
• WE - open book written examination.
Final classification= CE1 * 0.10 + CE2 * 0.15 + CE3 * 0.30 + PE * 0.05 + WE * 0.40
Observations:
1- A minimum classification of 30% in the component WE is required.
2- If, by a teaching staff decision, one of the evaluation components is not performed, its weight will be assigned to the other evaluation components proportionally to their own weights.
3- If the classification is greater or equal to 16, the student may be submitted to an oral examination. In this situation the final classification will be an average of the classifications obtained in the oral and written examinations.
Examinations or Special Assignments
The evaluation of this course will be done through two types of examination:
- Computer Examination (CE) for the creation of programming solutions for specific problems. The correction of the tests is performed automatically by the Moodle.
- Written Examination (WE) as an open book written examination.
Special assessment (TE, DA, ...)
The final classification will be the average of the classification of two evaluation components: Computer examination (CE) and open book written examination (WE).
Final classification = CE * 0.50 + WE * 0.50
Observations:
1- A minimum classification of 30% in each evaluation component CE and WE is required.
2- If, by a teaching staff decision, one of the evaluation components is not performed, its weight will be assigned to the other evaluation component.
3- If the classification is greater or equal to 16, the student may be submitted to an oral examination. In this case the final classification will be an average of the classifications obtained in the oral and written examinations.
Classification improvement
Composed of a single open book written examination (WE) graded in a 0 to 20 scale.
Observation:
If the classification is greater or equal to 16, the student may be submitted to an oral examination. In this case the final classification will be an average of the classifications obtained in the oral and written examinations.
Observations
Not required preconditions.