CS2006 Advanced Programming Projects
This module introduces the functional and dynamic programming paradigms, using languages such as Haskell and Python. Understanding is reinforced through extensive practical exercises.
- CS2006 Course Catalogue Entry: information on credits, prerequisites, load and assessment.
- CS2006 Reading Lists
- CS2006 Resources: lecture notes, practical specifications, etc.
The aims of this module are:
- To enhance the student's understanding of programming techniques by exposing them to different ways of thinking about computer programming,
On successful completion of this module, the student should:
- Understand the key issues involved in using a functional programming language.
- Understand the key issues involved in using a dynamic programming language.
- Understand how to apply functional/dynamic programming techniques in other language settings.
- Have completed 3-4 substantial practical projects, split between the two languages, and undertaken in small teams (2-3 students)
- Introduction to functional programming
- The Haskell language; types and classes; list comprehensions; recursive functions; higher-order functions; lazy evaluation; using the Haskell compilation system and other tools; inter-language working.
- Introduction to dynamic/interpreted programming languages
- Introduction to working with Python; the basic principles of the Python language; basic data types, functions, and dealing with errors; file-oriented input/ouput; core data structures (lists, sets, tuples, dictionaries), some example uses (e.g. network programming, WWW programming, graphics programming).
See the School of Computer Science Handbook for general information about compulsory elements.
This module has the following compulsory elements in addition to those common to all modules (tutorials and class tests).
- Pass all pieces of coursework.
- Actively participate in collaborative development.
- Participate in demonstration sessions.