Programming Fundamentals 1
People
Course director
Rezaalipour M.
Assistant
Assistant
Assistant
Zohdinasab T.
Assistant
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.
Teaching mode
In presence
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 (optional) final course project, a midterm exam, and a final exam.
Education
- Bachelor of Science in Informatics, Lecture, 1st year