COP290: Design Practices in CS
Notice | Objectives | Honour code | Common project I | Common project II | Case study I | Case study II
We plan to cover: design, analysis and modeling; software requirement analysis and detailed specifications; design documentation; standard software development tools; testing; report.
The tools that we plan to cover include:
We may also do case studies of one or two large projects.
Rough specificationDesign and implement a software package for Engineering drawing. The package should have the following functionalities:
Step I: Modeling and analysisWork out a mathematical model for the problem. Figure out how many views are necessary? how many are sufficient? How can one compute projections given the 3D description? How can one compute the 3D description given one or more projections? What interactions are necessary?
Define the problem more precisely and submit a LaTex report by Jan 18.
Step II: Software requirement specificationCapture the functional specification in UML and submit by Feb 14. Be as comprehensive as possible.
Step III: Software design documentSpecify the software architecture for program development using C++ including class diagrams and function prototypes in Doxygen and submit by March 5.
Step IV: Implementation and software documentationPlease study the following tools and commands: C pre-processor, steps in gcc compilation, linking (static and dynamic linking), Makefile, nm, objdump, strip, ldconfig, ldd, ar and ranlib. And, of course, Git and SVN. Please refer to
Please submit a tar ball containing your software implementation and documentation by March 18.
Step V: Testing and fine tuning
Step VI: Report
Common project IICarefully watch the video of starling murmuration. Our next project will be to model and simulate this fascinating phenomenon. We will computationally simulate the phenomenon by modelling each bird as an independent agent communicating and cooperating with other neighbouring agents. Our objective will be to measure from a realistic simulation the average energy spend by each bird, the angular momentum and the force that each bird has to withstand in a typical flight ritual.
The instructor was recently reminded of the starling murmurations by Prof. Narayanan Kurur.
You may read/watch the following resources and start planning your simulation design.
Case study IElections are at the heart of democracy and all in the class (except the intstructor and perhaps some of the TAs) will vote for the first time in the general elections due in 2019. The Election Commission of India has mandated that the voting must be conducted using Electronic Voting Machines (EVMs; also see here). EVM's have been mired in controversies - see here, here, here and here or here> (the last one even talks about a dubious role played by IITD in the controversy, see the technical paper). Prof. Rajat Moona (see here and here), another IITian, however is very confident of the latest design and we may someday invite him to this class. No other country in the world has used electronic voting in as large a scale as India has, and electronic voting is still far from being standradized world-wide.
Case study IIHastily deployed technocratic designs among the under-privileged with poorly analysed and incomplete use cases and without adequate understanding of the social and cultural context can cause distress, as Prof. Reetika Khera has pointed out here and here. Providing food security is a necessary function of the welfare state; and PDS is a crucial part of the NFSA. It also makes a significant proportion of the total subsidy (which, in turn, makes a significant proportion of the union budget). In 2018-2019, the GOI has allocated Rs. 1,69,323 Crore for food subsidy (see here).
Subhashis Banerjee / Dept. Computer Science and Engineering / IIT Delhi / Hauz Khas/ New Delhi 110016