The subject Programming Projects I delves deeper into the world of programming, providing techniques and knowledge related to project management and development tools. It is mainly a practical course in which the student will apply theoretical knowledge through assignments and projects, both individually and in teams. The student will acquire a solid foundation in software management and teamwork, which will help them tackle later subjects in the curriculum related to software development.
Titular Professors
Professors
Programming Methodology and Technology (Recommended)
The objective of the course is to delve deeper into the world of programming through the development of practical exercises and projects that enable learning to be dynamic, hands-on, self-directed, and collaborative. The course aims to provide students with both practical and theoretical techniques and knowledge, allowing them to approach the field of programming with the necessary project management and development tools.
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 in the Programming Projects I course aim to introduce students to the methodologies and tools needed to successfully develop a programming project, both in groups and individually. The course seeks to initiate students into the critical thinking required to plan, design, develop, and validate programming projects, and to equip them with sufficient knowledge of the tools needed to successfully achieve these objectives. It is a course mainly based on projects, supported by lectures complemented with workshops and in-class exercises, where the different concepts covered in the syllabus are applied.
The course grade is based on continuous assessment activities (CA) and the group project. The final grade in the ordinary call is obtained as follows:
Final grade = 30% CA grade + 70% Project grade
The project must receive a minimum grade of 4 out of 10. Otherwise, the final grade will be equal to the project grade. If the ordinary call is failed, an individual project may be completed, and its grade will be the final course grade in the extraordinary call.
The following will be assessed:
The correct use of management, development, and code debugging tools.
The proper application of software development methodologies.
The ability to define a basic testing plan.
The ability to work in a team.
KLEMENS, BEN. (2014). 21st Century C. 2nd edition. 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, September 2015.
VERNET, D. SALVADOR, J. (2011). Introducció al llenguatge de programació C, Publicacions La Salle, July 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.
VALGRIND DEVELOPERS. (2015). Valgrind User Manual. [Online] 22nd September 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
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. Available at: https://sourceware.org/gdb/current/onlinedocs/gdb/
MORGADO, ALEKSANDER. (2010). Understanding Valgrind memory leak reports. [Online] 4th February 2010. http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.pdf
Beck, K. (2002). Test driven development: By example. Addison-Wesley Educational. ISBN 9780321146533