Search for contacts, projects,
courses and publications

Programming Fundamentals 1

People

Furia C. A.

Course director

Blasi A.

Assistant

Heydarov R.

Assistant

Rezaalipour M.

Assistant

Zohdinasab T.

Assistant

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/2021-5-4/Book/index.html

Education