0% found this document useful (0 votes)
56 views

Elective: Programming Paradigms For Complex Problems - Case Studies in Python

This document provides an overview of an elective course on programming paradigms for complex problems using case studies in Python. The course objectives are to explore programming approaches using foundational principles, Python, and realistic case studies. Examples will be drawn from areas like combinatorics, language processing, games, finance, and graphics. The course outcomes are for students to understand imperative and declarative programming, logical reasoning about programs, types and values, mutability, recursion, object-oriented programming, modularity, and modular programming concepts. The course consists of 6 units taught over 4 hours per week and is examined through a theory exam worth 100 marks.

Uploaded by

Mayur
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

Elective: Programming Paradigms For Complex Problems - Case Studies in Python

This document provides an overview of an elective course on programming paradigms for complex problems using case studies in Python. The course objectives are to explore programming approaches using foundational principles, Python, and realistic case studies. Examples will be drawn from areas like combinatorics, language processing, games, finance, and graphics. The course outcomes are for students to understand imperative and declarative programming, logical reasoning about programs, types and values, mutability, recursion, object-oriented programming, modularity, and modular programming concepts. The course consists of 6 units taught over 4 hours per week and is examined through a theory exam worth 100 marks.

Uploaded by

Mayur
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Elective: Programming Paradigms for Complex Problems

- Case Studies in Python

Teaching Scheme: Examination Scheme


Lectures:4 Hrs/Week Theory: 100 Marks

Course Objectives:

Why does one write programs? To solve problems.


The process of refining a problem to a solution is an engineering science – the science of
programming.
In this course we will explore an approach to programming that…
• approaches problems using foundational principles
• uses Python as the programming language for hands-on demonstration
• scales up toy problems to realistic case studies
Examples and case studies will be drawn from the following areas:
• Combinatorics
• Language processing – computer and natural
• Games
• Finance
• Graphics
• System Administration Scripting

Course Outcomes:

This course brings together major programming idioms and shows how they can be used to solve
different problems. The emphasis is on creating an understanding of these idioms through
carefully chosen problems and developing solutions in the Python language.
By the end of the course, the student will know:
a. How imperative and declarative programming are related
b. How to reason logically about program control and data structures
c. Informal introduction to program semantics
d. How types are related to values and operations on data
e. Appreciate the pros and cons of mutability in data structures
f. Recursion in control and data structures
g. Understand Modularity Object oriented-ness of programs
h. Have familiarity with lightweight software analysis tools

Unit Content Teaching


Scheme
(Hours / Unit)
I Imperative vs Declarative Programming - Why we need both views
5
Introduction to formal reasoning - Predicates and Invariants
Reasoning about control
Developing a program from its intended goal (or
postcondition)
Reasoning about data
Data is organized around types which may be concrete –
defined by its values, or abstract – defined by its operations
II
‘Typeful’ Thinking - Type systems: background and examples, 6
Type calculus, Tools for 'typeful' thinking
III Value vs Object Orientation - State: essential vs incidental
10
Value and object oriented data structures
Data driven programming
Functional programming
IV Recursion - Recursive functions (the usual recursion), Recursive
4
data (lazy data structures), Code mirrors data, Structural induction
V Object Oriented Programming - Abstract data types, Type
10
definition and extension in a typeless world,
Coroutines/generators/iterators, Properties,
Metaprogramming, Scripting: system management
principles, techniques, do's and don't's
VI
Modular Programming 5
- Namespaces: concepts, language features, tools; dicionaries,
modules, packages
- Installation, deployment, version management
Text Books:

1. Learning Python by Mark Lutz; O Reilly


2. Core Python Programming by Chun; Pearson LPE

Reference Books:

1. Python in a Nutshell by Alex Martelli; O Reilly


2. Python Language and Library manuals: https://docs.python.org
3. Types and programming languages by Pierce; MIT Press

You might also like