Use the Tab and Up, Down arrow keys to select menu items.
Special Topic
SPECIAL TOPIC: PROGRAMMING LANGUAGESDescription:Programming languages are well accepted as one of the core subjects that every computer scientist should master. The existence of thousands of high-level programming languages reflects the variety of people’s understanding about computation over time, as well as how programming language design demonstrates fitness for special purposes, such as the distinctive requirements from systems programming, software design and web development.COSC434 introduces the important concepts fundamental for programming languages theories and their implementations. These concepts should also be useful for software engineers who are everyday users of various programming languages to gain a deeper understanding of the tools they use and the artifacts they create. The course also covers program semantics and program verification, which are powerful tools for guaranteeing quality of software, e.g., correctness of program transformations and free of certain types of bugs.Prerequisite:SENG201 Software Engineering, COSC261 Formal Languages and Compilers.
As a result of completing this course students will be able to:1. Analyse (and self-reflect on) the history of programming languages and its relationship to today's computer science and software engineering practices;2. Compare and contrast various programming paradigms of declarative languages, imperative languages, object-oriented languages, and understand the distinction between them;3. Write code in a functional programming language at intermediate level of difficulty;4. Apply static semantics in program analysis, using concepts such as scope and binding rules, type systems, and type inference in related analyses;5. Apply dynamic semantics and program verification techniques for showing the validity of program properties.6. Critically analyse existing literature relating to type system, program semantics, program verification, and other aspects related to the course.
Subject to approval of the Head of Department.
Students must attend one activity from each section.
Time Commitment: 150 hours24hr Lecture (2hr/week – 12 weeks)24hr Laboratory (working on quizzes)102hr Self-directed learning (reading notes, books, and writing essay)
For further information see Computer Science and Software Engineering Head of Department
Quizzes - 20%Final Exam - 50%Literature survey / Essay - 30%
Recommended readingMichael L. Scott: Programming Language Pragmatics (2016, 4th Edition), Morgan Kaufmann (Elsevier), ISBN:9780124104099John C. Mitchell: Concepts in Programming Languages (2003) Cambridge University Press, ISBN:0521780985: The (UC) library has one copy of this book; an ebook with unlimited use and DRM free is also available at the (UC) library.Benjamin C. Pierce: Types And Programming Language Hardcover (2002) The MIT Press, ISBN:9780262303828: An electronic copy of this text is available at: https://libcat.canterbury.ac.nz/Record/2657885
Please click HERE for the CSSE Department's policy for the academic remedy of applications for a special consideration for final exams.
Domestic fee $1,110.00
International Postgraduate fees
* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.
For further information see Computer Science and Software Engineering .