Course Description
This course will provide students with an introduction to basic concepts of software designing and development through the use of programming languages basically C/C++ and Java. It is for students with little knowledge in programming languages. It covers the basic notions and techniques for algorithm development and the implementation of algorithms in a high-level programming language. The subject provides students with a systematic approach to problem-solving an opportunity to be creative, excellent career prospects, and interesting contents. It introduces students to the use and applications programming languages and the principles of good software engineering.
Course Learning Outcomes
On successful completion of this module, the student will be able to:
- Demonstrate an understanding software designing procedures
- Demonstrate an understanding of how to use programming languages on different environments.
- Demonstrate and understanding of the importance of writing easy to read C code for software development;
- Demonstrate an understanding of writing ; executing and debugging programs;
Course Content
- Principles of programming:
- Fundamentals of Software Design and Development:
- Data types; operators; expressions; control structures; console and file i/o.
- Program structure:
- Functions, recursion, standard libraries.
- Aggregate data types:
- Arrays; pointers; strings; records.
- Dynamic data structures:
- Allocation; deallocation; memory management; list structures
Compulsory reading
- C Programming Language, 2/e, by Brian W. Kernighan and Dennis Ritchie, Publisher: Prentice Hall PTR (Pearson). ISBN: 0131103628
- C How to Program, 4th Edition by Harvey M. Deitel and Paul J. Deitel, Publisher: Prentice Hall (Pearson) 2004. Paper Bound w/CD-ROM format, ISBN: 0131426443
Optional reading materials
- Software Development in C: A Practical Approach to Programming and Design, by David Conger, Publisher: Prentice Hall, Paperback, Published (2002), ISBN 0133701727