Summary of G2274 – Fundamentals of Programming

This subject is Fundamentals of Programming (course code G2274), a compulsory first-year course in the Degree in Business Intelligence and Data Analytics at the Faculty of Economics and Business Studies, Universidad de Cantabria. It carries 6 ECTS credits, is taught face-to-face in Spanish during the first semester, and is English Friendly. The course is coordinated by Pablo Prieto Torralbo and is also taught by Pablo Abad Fidalgo.

Scope and aims

The course introduces the fundamental principles of computer programming and algorithmic problem solving, with Python as the main programming language.

Its main objective is to provide students with basic programming knowledge and the ability to design and implement algorithmic solutions to economic, business, and data-analysis problems. The course also introduces the use of libraries and modules for data processing.

No previous programming knowledge is required beyond the general knowledge expected from upper-secondary education.

Learning outcomes

Students are expected to understand the foundations of algorithms, programming languages, computer architecture, databases, and logic.

They should be able to solve problems by designing algorithmic solutions, implementing them with appropriate programming tools. Students should also be able to use new computing and data-analysis tools and contribute to the design of software-supported solutions for strategic and operational decision-making.

Program content

The syllabus is organized into four main blocks, combining theoretical classes, classroom exercises, and computer laboratory sessions.

  • Introduction: programming languages, compilers and interpreters, the software life cycle, the Python language, operating-system tools, and the programming environment.
  • Programming elements: algorithms, encapsulation of data and algorithms, program structure, data and expressions, conditional statements, loops, input and output, and error handling.
  • Functions, modules, and libraries: definition and use of functions, coding style, modular programming, decomposition of programs into modules for maintenance, debugging, and reuse, and an introduction to software libraries.
  • Object-oriented programming and data structures: data structures, classes and objects, inheritance, polymorphism, and data abstraction.

The course comprises 20 hours of theory, 10 hours of classroom practice, and 30 hours of computer laboratory work. These activities are complemented by tutorials, assessment activities, group work, and autonomous study, for a total student workload of 150 hours.

Teaching materials

The basic teaching materials are:

  • Python in a Nutshell, 4th Edition, by Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, and Paul McGuire, published by O’Reilly Media.
  • The official Python tutorial.

The complementary bibliography includes:

  • Python Crash Course, 3rd Edition, by Eric Matthes.
  • Introduction to Computation and Programming Using Python: With Application to Understanding Data, 2nd Edition, by John V. Guttag.
  • Introduction to Programming in Python: An Interdisciplinary Approach, by Robert Sedgewick, Kevin Wayne, and Robert Dondero.