CSP701: Design Practices in Computer Science

Objective(s) and plan

To get familiar with methods for doing (large?) projects in collaborative mode with special emphasis on software development.

 

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:

1.         Standard Unix utilities.

2.         Latex

3.         gcc/g++ - the C pre-processor, header files, #defines; object files, linking, static and run-time libraries; Makefile.

4.         Using and creating libraries, ar and ranlib.

5.         Object oriented style, classes, namespaces etc.

6.         CVS and version control.

7.         debugging and profiling tools

8.         macros and in-line code, loop transformations and un-rolling, speed-up issues.

9.         Documentation tools like Doxygen.

10.           auto-configuration, Makefile generation and porting issues.

 

We will do 4 common assignments and one project.

All reports will be created using latex and submitted as pdf.

Grading Policy

Assignments: 65%

Project: 35%

Graceful degradation as announced in class.

Any departure from the signed Honor Code will result in either an automatic D/F in the course.

 

Class timings for Lectures

Wednesday and Friday: 11-12

Teaching Assistants:

 

Your first point of contact are the TAs. Please send them an email  regarding any doubts.

 

á       Rajeswari : drajeswari@cse.ac.in

á       Anand : anand@cse.iitd.ac.in

á       Deepak Ravi : csz118087@cse.iitd.ac.in

á       Anuj Gupta: csz118089@cse.iitd.ac.in

á       Peeyush : mcs103469@cse.iitd.ac.in

á       Chandrakishore: mcs102096@cse.iitd.ac.in

á       Naveen: mcs103485@cse.iitd.ac.in

 

Assignments

 

 

Sl #

Title

Weight

Date Posted

Due Date

Remarks

1

Parser for Digital Circuits

15

1/08/2011

20/08/2011

 

2

Makefiles

15

24/08/2011

12/09/2011

 

3

 

15

 

 

 

4

 

20