Skip to content
EDUCATION, UNIVERSITIES & RESEARCH / FIELD NOTE

Programming Education

Documented Iranian university teaching connects programming languages with software design, debugging, and practical projects. Public materials from Sharif University of Technology and curriculum documentation associated with Ferdowsi University of Mashhad illustrate different approaches, without establishing a nationally uniform learning experience.

LEVEL 03Part of a connected cultural guide
Research in progress

This article has evidence gaps. Read the research notes before relying on its conclusions.

Research cutoff: · Updated:

Learning to build software

Public teaching materials provide a concrete view of programming education in Iran: students encounter programming languages alongside the tools and design decisions needed to build larger applications. Sharif University of Technology’s Advanced Programming teaching site presents Java, object-oriented programming, graphical interfaces, networking, design patterns, and concurrent programming. Its materials combine explanations, exercises, and project work. This is evidence of a particular teaching approach, rather than a description of every Iranian computing degree. s1

Object-oriented programming organizes software around objects that combine information with operations. The Ferdowsi University of Mashhad computer-science curriculum documentation places this approach within an advanced programming course that follows introductory programming. Its outline includes functions, recursion, arrays, object relationships, inheritance, exception handling, files, and dynamic memory. The distinction matters: learning another language is only part of the course; students are also expected to reason about program structure and behavior. s2

[s1] [s2]

Languages, tools, and teaching choices

The Mashhad documentation recommends coordinating C++ and Java across advanced programming and data structures, so that students encounter both languages. Where C++ is used, the outline includes modern features such as templates, containers, lambda expressions, and smart pointers. This is a curriculum recommendation, not proof that each instructor follows an identical syllabus. s2

Sharif’s public teaching site gives substantial attention to working practices: debugging with an integrated development environment, documenting code, using Git and GitHub, and structuring an application with the Model–View–Controller design pattern. That pattern separates information, presentation, and interaction logic. Project materials also introduce unit testing and code coverage. Together, these elements show how a course can move from isolated answers toward software that students can inspect, revise, and extend. The site is an older teaching resource; its availability does not establish a current enrollment offer or guarantee that every linked dependency still works. s1

[s1] [s2]

A student project as a teaching example

A public student repository identifying itself with Sharif’s Advanced Programming course describes an incremental Java game project. Its authors outline a progression from terminal commands and core game logic to expanded mechanics, graphics, and integration. They identify teamwork, version control, testing, and maintainable architecture as learning goals. s3

This example makes the educational process visible: a larger assignment can require students to revisit earlier design decisions as features accumulate. However, the repository is a student-authored account. It does not independently establish assessment results, completion by the whole class, or employment outcomes. Read alongside the course and curriculum pages, it offers a useful illustration of programming practice while leaving the national scale and distribution of such opportunities unresolved. s1s2s3

[s1] [s2] [s3]

Sources & research notes

  1. [s1] SUTAP: Sharif University of Technology Advanced Programming courseSUTAP teaching team · What will you learn; Course Content; Project Phase 0; Project Phase 1 · Accessed 2026-10-27
  2. [s2] Advanced ProgrammingFUMCS computer-science curriculum documentation · Course information; syllabus; teaching and learning strategies · Accessed 2026-10-27
  3. [s3] Plants vs. Zombies 2: Advanced Programming Course Projectadvanced-progamming-sut-2026, phase-0-group-52 student project team · README: About the Project; Project Goals; Development Journey · Accessed 2026-10-27

limitations

  • This draft covers selected university examples rather than the full Iranian programming-education landscape.
  • The institutional approval status and effective cohort of the FUMCS curriculum documentation were not independently established.
  • Live sources were inspected after the editorial cutoff; undated pages may contain changes made after that cutoff.

unverified items

  • Provision in schools, vocational institutions, commercial training providers, and universities beyond the inspected examples.
  • Regional access, affordability, participation by demographic group, and independently measured learning or employment outcomes.
  • Whether the inspected student repository's present contents were available by the editorial cutoff.

data gaps

  • No comparable national annual series specifically measuring programming learners, completions, or outcomes was established. Course-site participation claims were not treated as national statistics.

coverage period

Selected older teaching materials and an undated repository identifying itself with a 2026 course; not a continuous national history.

Continue the story