Programming Fundamentals 1
People
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
- Bachelor of Science in Informatics, Lecture, 1st year