FIT2102
Programming paradigms
基本信息
| 学分 | 6 credit points |
|---|---|
| 开课学期 | Second semester |
| 校区 | Malaysia |
| 考核构成 | Assignment 2 Haskell Programming — 30% Assignment 1 Functional Reactive Programming — 30% Applied quizzes — 20% Applied classwork — 20% |
开课安排1 条
| 教学期 | 授课方式 | 状态 |
|---|---|---|
| Second semester | Teaching activities are on-campus (ON-CAMPUS) | 开课 |
以上为该校区在官方资料中登记的全部开课安排,不是汇总。同一门课可能在多个 教学期开课,也可能不同教学期的授课方式不同。
课程简介
Ability to code in differently constructed programming languages is analogous to speaking in different natural languages with varying grammars. Similar to natural languages, programming languages from different paradigms (styles) vary in their expressiveness and efficiency. One programming language may require many screens-full of complex code to accomplish a task for which another requires but a few expressive lines of code. Therefore, understanding the design principles of programming languages enables computational problems to be implemented in dramatically different and powerful ways; leading, in some cases, to solutions that are more elegant, correct, maintainable, efficient and/or extensible.
This unit examines a selection of programming languages and paradigms and explores the evolution of language design from low-level paradigms that are closer to the execution model of the machine, to more high-level declarative paradigms that allow programmers to model a problem precisely rather than specify its solution. The unit covers paradigms such as functional and declarative programming styles, comparing and contrasting them to programming styles that you are already familiar with, including object-oriented, imperative and procedural programming paradigms. We compare type systems supported by various languages, from scripting languages like JavaScript with weak type systems, to gradual typing as in TypeScript, to advanced compiled languages with strong type correctness, such as Haskell. We see these applied to data-modeling techniques (covering polymorphism, mutability-versus-purity, state management, and side-effects) and different models of execution such as strict-versus-lazy evaluation. Strong, expressive type systems are increasingly important in the age of artificial intelligence and "vibe coding", where type checking provides an essential verification of code correctness to support safe integration of AI-generated code.
The unit provides practical experience with using modern functional programming techniques, non-procedural, non-object-oriented programming languages and discusses the influence of programming language theory on the design of current main-stream computer languages, and how the theory translates to practice. A focus of the unit is that these techniques are applicable and ubiquitous in a variety of modern languages, for example, we will see how functional programming techniques are used in relatively conventional imperative languages like JavaScript, and compare and contrast this with pure functional languages, such as Haskell.
以上为 Monash Handbook 的官方原文,版权属 Monash University,此处按本站要求转载并标注出处: 官方页面 ↗
学习成果6 条
官方原文(Learning outcomes),版权属 Monash University。
- ULO1 Describe the major attributes that differentiate programming paradigms considered;
- ULO2 Describe the major features, strengths and weaknesses of important programming languages in the context of their historical development;
- ULO3 Analyse and critique past, present and future programming languages;
- ULO4 Evaluate the suitability of different paradigms for different problem types;
- ULO5 Design and implement programs in several programming languages of different paradigms and demonstrate an ability to solve more complex problems in at least one non-procedural paradigm;
- ULO6 Describe the theoretical aspects of modern programming paradigms and apply this theory to analysis and design of programs.
教学方式与预期工作量
教学方式
Active learning
预期工作量
Minimum total expected workload to achieve the learning outcomes for this unit is 144 hours per semester typically comprising a mixture of scheduled online and face to face learning activities and independent study. Independent study may include associated reading and preparation for scheduled teaching activities.
官方原文,版权属 Monash University。
先修 / 同修要求
以下先修关系按官方来源的结构化先修字段解析,原始记号:FIT1008 OR FIT1054 OR FIT2085
先修链路
按官方先修字段的原始分组展开,AND / OR 的区别保留着—— 「A 或 B」和「A 与 B」在选课时是两回事。每门课点进去可以继续往下看。
数据来源
- 数据来源
- 官方网页
handbook.monash.edu ↗ - 抓取时间
- 2026-09-13
- 可信度
- 程序抓取,未人工核实
查看官方完整描述 ↗ — 事实性字段(代码、学分、教学期、授课方式、考核权重、先修/同修/互斥关系)与 课程简介、学习成果、教学方式、预期工作量均取自官方 Handbook; 正文版权属 Monash University,此处转载并逐处标注出处。
发现信息有误?告诉我们。请用自己的话描述问题,不要上传成绩单、截图或校内系统文件。