Computers and Program Design
 
 
Subject Code: ECP1016
Aim of Subject: To introduce the students to computers and teach them some basic programming skills.
Learning Outcome of Subject: At the completion of the subject, students should be able to:
  • appreciate why structural programming provides a foundation for further study of programming languages in general and of object oriented languages.
  • write complete, properly structured, programs.
  • develop good programming habits in preparation for dealing with the more substantial programming subjects in the coming trimesters.
  • define, write and use functions.
  • define and manipulate arrays, pointers, characters and strings, formatted input/output and data structures in their program's language.
  • apply techniques used to process text files with sequential access and random access in their computer programs.
  • use dynamic memory allocation to allocate storage space in order to fulfill the varying demand of computer programs.
Programme Outcomes:
  • Ability to acquire and apply fundamental principles of science and engineering(10%)
  • Capability to communicate effectively(10%)
  • Acquisition of technical competence in specialised areas of engineering discipline(10%)
  • Ability to identify, formulate and model problems and find engineering solutions based on a systems approach(20%)
  • Understanding of the importance of sustainability and cost-effectiveness in design and development of engineering solutions(20%)
  • Ability to work independently as well as with others in a team(10%)
  • Capability and enthusiasm for self-improvement through continuous professional development and life-long learning(20%)
Assessment Scheme:
  • Assignment - group assignment,to enhance understanding of basic concepts in lecture (20%)
  • Test / Quiz - Written test(20%)
  • Exam - written exam (60%)
Teaching and Learning Activities: 55 hours (lectures,tutorials and laboratory experiments)
Credit Hours: 3
Pre-Requisite: None
References:
  • Deitel & Deitel, “C How to program”, 3nd Edition, Prentice Hall, 2004.
  • Kernighan & Ritchie, "The C Language", 2nd Edition, Prentice Hall, 1988 (Reference).
  • Miller & Quilici, “Joy of C”, Wiley, 1993.

Subject Contents

  • Overview of Computers and Software

  • History, computer components, computer software including operating systems and computer languages. Introduction to using LINUX

  • Designing Programs

  • Requirements gathering, Specifications & Design, meaning of algorithm, usage of pseudocode and flowcharts, Coding & Testing, Documentation, Maintenance.
     
  • Variables and Flow Control

  • Simple variables, simple data types including arrays, basic pointers, and records, arithmetic & logical operators, relational operators, conditionals, loops.
     
  • Functions and Procedures

  • Function declarations, definitions, & prototypes, pass-by-value and pass-by-reference parameters, local and global variables, scope, function calls.
     
  • I/O and File Operations

  • I/O with standard input and output, strings, files. Formatting of read & write operations. File manipulation operations.
     
  • System Services

  • Use of libraries, dynamic memory allocation, making system calls from within programs.
     

Laboratory

Supervised tutorials are done in many computer labs. Tutorials are mostly programming tutorials, while a few involve application of theory in paper exercises.

The programming tutorials will be conducted using the GCC compiler in the LINUX operating system.