Search for contacts, projects,
courses and publications

Programming Fundamentals 1

Description

COURSE 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.

 

COURSE DESCRIPTION
The course uses 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.

 

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

 

EXAMINATION INFORMATION
The course's grades is determined by a combination of programming assignments developed during the course, a final course project, and a final exam.

 

REFERENCES

  • M. Felleisen, R. B. Findler, M. Flatt, S. Krishnamurthi: "How to Design Programs", Second Edition, 2014. https://htdp.org/2020-5-6/Book/

People

 

Furia C. A.

Course director

Blasi A.

Assistant

Heydarov R.

Assistant

Rezaalipour M.

Assistant

Valguarnera S.

Assistant

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
9
Language
English
Education
Bachelor of Science in Informatics, Core course, Lecture and Laboratory, 1st year