Search for contacts, projects,
courses and publications

Programming Fundamentals 1

People

Furia C. A.

Course director

Description

The course uses (a subset of) the programming language Racket, but it is not a course about Racket, which we use primarily because of the conceptual clarity of its features. Once you master this course's content, learning another programming language won't be a problem. The course is suitable for students with little or no prior programming experience, but even programmers with experience will have a chance to learn new program design principles and to practice on interesting problems.

Objectives

This is a first programming course that teaches you how to program well. "Programming well" requires more than writing code until it seems to work. This course emphasizes designing programs: constructing software in a principled manner, following a process that goes from problem statement to implementation and is based on justifiable choices about abstractions, data structures, algorithms, and program organization.

Sustainable development goals

  • Quality education
  • Industry, innovation and infrastructure

Teaching mode

In presence

Learning methods

The course's organization includes plenty of opportunities to practice programming — including assignments and a final project.

Examination information

The course's grades is determined by a combination of programming assignments developed during the course, an (optional) end-of-semester project, a midterm exam, and a final exam.

Education