Titular Professors
Professors
Programming Methodology and Technology
The goal of the subject is to dive into the world of programming by means of developing projects that will allow the student to learn in a dynamic, hands-on, self-learning and cooperative way. The subject aims to supply the student with techniques and knowledge (both theoretical and practical) that will allow them to confront the challenges of programming.
Learning Outcomes of this subject are:
RA.01 Tools are used for development, programming, testing and control, software quality and configuration management. (GI-RA-33)
1. Team-oriented project development tools
1.1. Introduction to project development methods
1.2. Version control systems
2. Software testing
2.1. Introduction to software testing
2.2. Unit tests and TDD
3. Software debugging
3.1. Introduction to software debugging
3.2. C debugging in terminal-based environments
The lectures of the Programming Projects I subject aim to introduce the student to the methodologies and tools required to successfully develop any programming project (as a team or individually). This subject initiates the student in the critical thinking needed to be able to plan, design, develop and validate programming projects. Additionally, the subject will introduce tools to support the proper development of such projects.
It is also a subject mainly based in projects, which are intertwined with master classes and complemented by exercises and workshops, where the concepts seen during the subject's chapters are applied.
The subject's grade is based on the continuous evaluation activities (CA) that are done during the first part of the semester and the project that is developed during the second part of the semester. This only applies if the project's grade is equal or greater than a 4.
In case the project's grade is less than a 4, the final grade will be the grade of the project.
In case of failing the subject on the ordinary call, an individual project will be implemented. The project's grade will be the final grade of the subject for the extraordinary call.
The academic activities will have the following categories:
Project: Highly important academic activities.
Continuous Assessment: Moderately important academic activities.
The final grade of the subject is calculated as:
Final grade = 30% CA Grade + 70% Project Grade
if the project grade is greater than or equal to 4. Otherwise, the final grade is equivalent to the project grade.
The CA grade is the arithmetic mean of all the CA activities.
The project grade is calculated by applying a multiplier, based on the project mentoring, to the project's report grade:
Project Grade = Report Grade x Project Multiplier
KLEMENS, BEN. (2014). 21st Century C. 2a edició. O'Reilly Media, 2014. ISBN 978-1-4919-0389-6.
SALVADOR, J. CANALETA, X. (2015) Programació en C per a sistemes UNIX, Publicacions La Salle, Setembre 2015.
VERNET, D. SALVADOR, J. (2011). Introducció al llenguatge de programació C, Publicacions La Salle, Juliol 2011.
AGANS D.J.(2002) Debugging. The 9 indispensable rules for finding even the most elusive software and hardware problems, Amacom, 2002, ISBN 0-8144-7457-8.
STALLMAN, RICHARD M. SUPPORT, CYGNUS. (1996). Debugging with GDB: The GNU source-level debugger. [Online] Boston, MA : Free software foundation, 1996. ISBN 1-88211-409-4. Disponible a: https://sourceware.org/gdb/current/onlinedocs/gdb/
MORGADO, ALEKSANDER. (2010). Understanding Valgrind memory leak reports. [Online] 4 Febrer 2010. http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.pdf
VALGRIND DEVELOPERS. (2015). Valgrind User Manual. [Online] 22 de Setembre de 2015. http://valgrind.org/docs/manual/manual.html.
ATLASSIAN. Git Tutorials and Training. [Online] https://www.atlassian.com/git/tutorials/
GIT. Git ? Documentation. [Online] https://git-scm.com/doc
Beck, K. (2002). Test driven development: By example. Addison-Wesley Educational. ISBN 9780321146533