Course Objective: To get familiar with methods for doing (large?) projects in collaborative mode with special emphasis on software development.
Pre-requisite: Data structures and, Computer Organisation and Systems
Coverage:
– Concepts: Design, analysis and modelling; software requirement analysis and detailed specifications; design documentation; standard software development tools; testing; report.
– Tools: Including, but not limited to: Standard Unix utilities, Latex, gcc/g++ - the C pre-processor, header files, #defines; object files, linking, static and run-time libraries; symbol tables; Makefile, Using and creating libraries, ar and ranlib, Object oriented style, classes, namespaces etc., git and version control, debugging and profiling tools, Macros and in-line code, loop transformations and unrolling, speed-up issues, Documentation tools like Doxygen, Auto-configuration, Makefile generation and porting issues