User Tools

Site Tools


Course Fact Sheet

Master in Electrical and Computers Engineering
Programming Laboratories
Instance: 2016/2017

Institutional page

General Information

Course Unit: Programming Laboratories
Code: EEC0030
Programmes: MIEEC, 4º
Academic Year: 2016/2017
Semester: 1S
Credits: 6 ECTS
Hours/Weeks: 1x2T, 3x2P
Coordinator: João Correia Lopes (coordinator)

Teaching Language

Suitable for English-speaking students


Within the context of the specification, development and maintenance of software applications with graphical user interfaces (GUI) using client/server architectures, this course aims to:

  • Promote the acquisition of software engineering concepts, methods and techniques and enable students to apply them in the design and development of software systems.
  • Equip students with practical skills in the use of software development tools appropriate to the specification and development of the product throughout its life-cycle, including debugging, testing and documentation of the Java programming language code.

Skills and learning outcomes

After completing this course, the student will be able to:

  1. Identify and document the requirements of a Software System using "user stories"
  2. Describe the use cases using UML
  3. Implement a prototype of the User Interface
  4. Identify and document additional requirements
  5. Obtain the conceptual domain model using UML
  6. Obtain business process models using UML
  7. Describe the architecture using UML
  8. Validate the architecture through a prototype
  9. Model the structure of classes using UML
  10. Model the behaviour of objects using UML
  11. Prepare the User manual
  12. Prepare the Deployment manual
  13. Write Java classes using standard APIs
  14. Documenting Java code using Javadoc
  15. Test the code using JUnit
  16. Provide for data persistence
  17. Use a collaborative documentation development tool
  18. Use an integrated development environment (IDE) in software maintenance
  19. Use a version control system


  • Introduction to Engineering requirements. Requirements documentation.
  • UML modelling language.
  • Object-oriented software design. Modelling of architecture. Structure, behaviour and architecture design.
  • User interfaces design.
  • Coding using the Java programming language.
  • Verification, validation and software testing.
  • Software maintenance. Versioning.
  • Data persistence using SQL.
  • Project management.

Work mode


Previous knowledge

Knowledge of Programming languages.

Main bibliography

  • Scott Ambler, The Object Primer, Cambridge University Press, 3rd Edition, 2004, ISBN: 978-0-521-54018-6 (Library)
  • Bruce Eckel, Thinking in Java, Prentice Hall, 4th Edition, 2006, ISBN: 0131-87248-6 (Library)

Complementary bibliography

Teaching procedures

Tutorial lectures (2 hours per week) will be used to briefly present the software development phases and its related artefacts, and to present and give practical examples of the methodologies and tools to be used in laboratories by following the corresponding script. Reading materials are also indicated.

In the laboratory classes (2 hours per week), the students will work in groups of four or five people in a software project.



Physical sciences > Computer science > Programming
Physical sciences > Computer science > Programming > Software engineering

Evaluation type

Distributed evaluation without final exam

Registered evaluation and occupation components

Description Type Time (Hours) Date of conclusion
Attendance (estimated) Lectures 56
P1: User interfaces Prototype Laboratory work or fieldwork 8 10/10/2016
P2: Requirements specification Laboratory work or fieldwork 6 24/10/2016
P3: High level design and Prototype Laboratory work or fieldwork 20 14/11/2016
P4: Detailed design Laboratory work or fieldwork 8 05/12/2016
P5: Product Laboratory work or fieldwork 60 02/01/2017
P6: Product presentation Attendance 1 02/01/2017
P7: Individual performance Work
J1-J4: Java assessment Exercise
M1: Java test Test/Examination 1,5 24/10/2016
M2: UML test Test/Examination 1,5 14/11/2016
Total: 162

Admission to exams

Practical work (PROJ) will be evaluated through the documentation submitted, the application developed and individual performance in the class (P1 to P7).

The theoretical concepts (IND) are evaluated through the individual response, closed book, to tests (M1 and M2) and through the development of practical exercises in Java (J1 to J4).

Minimum required to pass this course: 50% in each of the practical components (P1 to P7 from PROJ) and 40% overall mark in the individual component (IND).

This course, due to its laboratory nature, can not be replaced by taking an exam.

Final grade

Classification = 80% PROJ + 20% IND


PROJ = ((2*P1 + 3*P2 + 4*P3 + 2*P4 + 8*P5 + P6) / 20) + P7
IND = (J1 + J2 + J3 + J4 + 8*M1 + 8*M2) / 20

The classification of the practical component (PROJ) may vary from element to element in the same group by plus or minus 2 values (P7), based on the opinion of teachers and the peer assessment within each group.

Special assignments

Further to the demonstration of the product, an oral session may be required for some of the students.

Special evaluation (TE, DA, ...)

Students under special regimes are expected to submit the practical work required for this course as ordinary students.

Students that are not required to be present in the classes, have to present the evolution of their work to the teacher simultaneously with the regular students, and conduct the same theoretical tests.

Improvement of final/distributed classification

Improving the classification requires a new enrolment in the course.


teach/lpro/201617/sheet.txt · Last modified: 09/09/2017 17:05 by

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki