Programming Fundamentals 1
People
Course director
Blasi A.
Assistant
Heydarov R.
Assistant
Rezaalipour M.
Assistant
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/2020-5-6/Book/
Education
- Bachelor of Science in Informatics, Core course, Lecture and Laboratory, 1st year