University of Khartoum Program Development Lecture 1 PDF
Document Details
Uploaded by ComfyViolin
University of Khartoum
Dr. Azza Ahmed
Tags
Summary
This document is a lecture on program development at the University of Khartoum, focusing on fundamental aspects of software engineering. It discusses topics like abstractions, algorithms, and object-oriented programming.
Full Transcript
Lecture (1) Dr. Azza Ahmed 1 Postdoctoral Fellow @ SimulaMet 2019-2022 PhD student and researcher @ SimulaMet and OsloMet. 2012-2018 Lecturer at University of Khartoum, Sudan. 2012: Master graduation University of Nottingham, United Kingdom....
Lecture (1) Dr. Azza Ahmed 1 Postdoctoral Fellow @ SimulaMet 2019-2022 PhD student and researcher @ SimulaMet and OsloMet. 2012-2018 Lecturer at University of Khartoum, Sudan. 2012: Master graduation University of Nottingham, United Kingdom. Contact me: Email: [email protected] WhatsApp: +4741378056 Course code: EEE21501 Credit Hours: 2 (8 Lectures) Course Grading(s): Final Exam: 70% Course Work: 30% Course Work: Test Labs 3 Principles of programming & Software Engineering. Structures and Abstract Data Types Pointers Complexity Analysis of Algorithms 4 Programming languages and other forms of software systems evolve to higher level of abstractions: Hide details of hardware/platform interfaces. Reduce development time. Reduce development and maintenance cost. Increase portability. Leave commonly performed tasks to libraries. In computer programming, abstraction can apply to control or to data: Data abstractions manage data items in some meaningful manner (data types). Control abstractions manage order of execution within a program. Problem solving refers to the entire process of taking the statement of a problem and developing a computer program to solve that problem. The solution pass through many phases Computer Program Data Storage + algorithms An algorithm is a step-by-step specification of a method to solve a problem within a finite a mount of time. Algorithms operate on a collection of data, put new data, manipulate data and remove data from a collection. Problem Definition Maintenance Design Coding/ Deployment Implementation Testing The good solution should consider the tangible cost. The cost includes the factors of computer resources: memory and computing time (CPU time). The cost of development, maintenance and expansion. Modularity breaks a solution into modules. Abstraction specifies each module clearly before you implement it in a programming language. We can change one part of the solution without affecting the other parts. Data abstraction focuses on what the operations do in stead of on how you implement them. Encapsulation is the technique for packaging the information in such a way as to hide what should be hidden, and to make visible what is intended to be visible. One way to achieve a modular solution is by identifying components called objects that combine data and operations on data. Principles of Object-Oriented Programming: ◦ Encapsulation: Objects combine data and operations. ◦ Inheritance: Classes can inherit properties from other classes. ◦ Polymorphism: Objects can determine appropriate operations at execution time. 13 One way to achieve a modular solution is by identifying components called objects that combine data and operations on data. Principles of Object-Oriented Programming: ◦ Encapsulation: Objects combine data and operations. ◦ Inheritance: Classes can inherit properties from other classes. ◦ Polymorphism: Objects can determine appropriate operations at execution time. 14 An ADT is a collection of data and a set of associated operations for manipulating that data. ADTs support abstraction, encapsulation, and information hiding. ADTs provide equal attention to data and operations. ADTs are implemented by using data structures. Built-in ADTs: Boolean, integer, real, array. User-defined ADTs: list, stack, queue, tree, linked list. Data structures means the way by which we structurally organize the data in memory to determine the efficiency with which different operations on the information are carried out. We must choose the data structures carefully on the basis of which operation the application will use most frequently.