These slides were used to teach the module "Introduction to Agile Software Development & Python" as a sub-section of the major course "Software Engineering" for the 3rd year undergraduates of the Department of Computer Engineering, University of Peradeniya in 2010.
These PPT presentation help to understand waterfall model in SDLC. The Waterfall model is the earliest SDLC approach that was used for software development. There are five steps in the waterfall model.
Hotel Management System project provides all features of
security. Detail of any particular record can be searched easily by
providing its id or name. New records can be easily added in the
database, existing record can be easily modified later on too. If any
record is found useless it can be deleted easily by the authorized user of
the system. So in short we can say that ‘Hotel management system’ is a
very efficient project, which helps in daily basis work of hotel
management process. Reduces work load on employees, provide data
security. Only permitted users can view, modify or delete its data, no
other person can access hotel database.
These PPT presentation help to understand waterfall model in SDLC. The Waterfall model is the earliest SDLC approach that was used for software development. There are five steps in the waterfall model.
Hotel Management System project provides all features of
security. Detail of any particular record can be searched easily by
providing its id or name. New records can be easily added in the
database, existing record can be easily modified later on too. If any
record is found useless it can be deleted easily by the authorized user of
the system. So in short we can say that ‘Hotel management system’ is a
very efficient project, which helps in daily basis work of hotel
management process. Reduces work load on employees, provide data
security. Only permitted users can view, modify or delete its data, no
other person can access hotel database.
Indian Climatic Conditions and their impact on building designSaransh Gupta
This presentation describes the different weathers of India, factors affecting climate, Indian climatic zones and the building design criteria with respect to these climatic zones of India.
complete information of SDLC modal and all steps and process we have to follow during the software development and information about waterfall model etc.
A waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards( like a waterfall) through the phrases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance.
The waterfall development model originates in the manufacturing and construction industries which are highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.
These slides were used to teach the above subject for the 3rd year undergrads of the Departement of Computer Engineering, University of Peradeniya in 2009, under IFS-PERADENIYA industry -university collaboration.
Agile development and open development practices share a great deal of features. But the distributed nature of open development can make some common Agile practices difficult, or even impossible to adopt. This presentation is an initial exploration of how the two may mesh together.
Indian Climatic Conditions and their impact on building designSaransh Gupta
This presentation describes the different weathers of India, factors affecting climate, Indian climatic zones and the building design criteria with respect to these climatic zones of India.
complete information of SDLC modal and all steps and process we have to follow during the software development and information about waterfall model etc.
A waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards( like a waterfall) through the phrases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance.
The waterfall development model originates in the manufacturing and construction industries which are highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.
These slides were used to teach the above subject for the 3rd year undergrads of the Departement of Computer Engineering, University of Peradeniya in 2009, under IFS-PERADENIYA industry -university collaboration.
Agile development and open development practices share a great deal of features. But the distributed nature of open development can make some common Agile practices difficult, or even impossible to adopt. This presentation is an initial exploration of how the two may mesh together.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
DevOps is a one-stop solution for all software engineering. From creating the software to implementing it in real-time, DevOps does all. This creates an infinite demand for excellent DevOps developers in the market. Since the platform is quite fast and effective, it is attracting the attention of many organizations that are looking to develop a software solution for their own business. Thus, here are a few DevOps interview questions that can help you crack an interview.
This is the English version of my talk about agile software development practices at Agile Talks seminars in Ankara, Turkey. I tried to focus on the nature of software development and figure out the development practices that let us build software in natural way.
Software Development Simplified - A Beginner's Guide.pdfSeasiaInfotech2
Software development isn't a haphazard process. It adheres to a methodical process called the Software Development Life Cycle. The SDLC is a roadmap that outlines the various stages a software project goes through, starting from conception to include deployment and maintenance.
Wikki Verma Suggest Before opening an IT consultancy, I did my homework. I interviewed lifelong consultants. I read books. I even took personality tests to confirm that my psychological constitution matched the challenges I did face as an entrepreneur owning and operating my own business.
DevOps is a concept that includes, among other things, software development, operations, and services. DevOps is a blend of “development” and “operations.” It focuses on interaction, coordination, and integration between software developers and IT operations staff. If you are among the companies having requirements for hire DevOps engineer, Here is a detailed guide to hire DevOps engineer.
Skills and Responsibilities of a Python Developer.pdfuncodemy
Python developers are in high demand in various industries due to the versatility of the language. They play a crucial role in building software applications, web services, and data analysis tools.
Series of articles written by me for Vidusara Science Magazine, Sri Lanka [2009 - 2010]; sharing for all those who like to learn the basics of C Programming in Sinhala.
Series of articles written by me for Vidusara Science Magazine, Sri Lanka [2008 – 2010]; sharing for all those who like to learn the basics of Computer Networks in Sinhala.
Series of articles written by me for Vidusara Science Magazine, Sri Lanka [2012]; sharing for all those who like to learn the basics of Data Structures and Algorithms in Sinhala.
Series of articles written by me for Vidusara Science Magazine, Sri Lanka [2011 – 2012]; sharing for all those who like to learn the basics of OOP in Sinhala.
These were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
These slides were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
These were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
These slides were used for the module "Introduction to EJB" which was taught as a part of the course "Software Engineering" for the 3rd year computer enigneering undergraduates of the University of Peradeniya in 2010.
These slides were used to teach the module "Introduction to Enterprise Applications and Tools" for the 3rd year undergraduates of the Department of Computer Engineering, University of Peradeniya in 2010.
Things to ponder before you start building [cooperate] softwareTharindu Weerasinghe
This particular PPT was prepared for the session I carried out on 28th Jan 2022,for the 3rd year computer engineering udergrads of the Faculty of Engineering, University of Peradeniya, 20400, Peradeniya, SRI LANKA.
This is the presentation of the invited speech by me on " How to make screens and the internet safe for Children ".
The webinar was organized by the Sri Lanka Medical Association on 7th Sep 2021
A Survey Study on Higher Education Trends among Sri Lankan IT ProfessionalsTharindu Weerasinghe
This is a presentation I did at IEEE TALE Conference 2019, held in Yogyakarta, Indonesia. This is about Higher Education Trends amoung Sri Lanka IT Professionals
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Introduction to Agile Software Development & Python
1. 1
Introduction to
Agile Software Development
And
Python
By Tharindu Weerasinghe
BSc.Eng(Hons.), AMIESL
Software Engineer
Representing IFS R&D International | 2009
2. 2
IFS-UoP Collaboration – Software Enginee
Later part of the Software Engineering course
conducted
for the
Computer Engineering Undergraduates
of the
Faculty of Engineering, University of Peradeniya.
4. 4
What is meant by a Software Development Meth
A software development methodology or system development
methodology in software engineering is a framework that is used to structure,
plan, and control the process of developing an information system.
(Hope you know these things….)
5. 5
So, What is meant by Agile Software
Development?
Agile software development is a group of software development methodologies
that are based on similar principles.
Agile methodologies generally promote,
a project management process that encourages frequent inspection and
adaptation,
a leadership philosophy that encourages teamwork,
self-organization and accountability,
a set of engineering best practices that allow for rapid delivery of high-quality
software,
a business approach that aligns development with customer needs and company
goals.
7. 7
So, Agile Development is not 100%
technical...?
•YES! The concepts behind Agile software development is not
purely based on technical aspects. It blends with technical,
management, personal aspects of a software developing team or
persons!
•Agile methods are a family of development processes, not a
single approach to software development.
•Initially, agile methods were called "lightweight methods." In
2001, prominent members of the community met at Snowbird,
Utah, and adopted the name "agile methods." Later, some of
these people formed The Agile Alliance, a non-profit organization
that promotes agile development.
8. 8
Why Agile…?
Agile software enables you to build the right
software at the right time.
Agile is not about in-depth analysis and design that leads to a detailed
work breakdown structure that predicts on what day of the year eighteen
months in the future a team will deliver a certain set of features.
Agile is about continuous prioritization and customer review to insure
that meaningful features are delivered when they are ready and when
they are needed.
9. 9
Agile(Adaptive) Vs Plan-Driven(Predictive):
Agile home ground: Plan-driven home ground:
Low criticality High criticality
Senior developers Junior developers
Requirements change very often Requirements don't change too often
Small number of developers Large number of developers
Culture that thrives on chaos Culture that demands order
10. 10
Some features behind Agile Software
Development
Customer satisfaction by rapid, continuous delivery of useful software
Working software is delivered frequently (weeks rather than months)
Working software is the principal measure of progress
Even late changes in requirements are welcome
Close, daily cooperation between business people and developers
Face-to-face conversation is the best form of communication (Co-location)
Projects are built around motivated individuals, who should be trusted
Continuous attention to technical excellence and good design
Simplicity
Self-organizing teams
Regular adaptation to changing circumstances
11. 11
Agile methods
Some of the well-known agile software development methods:
Agile Modeling
Agile Unified Process (AUP)
Agile Data Method
Crystal
Essential Unified Process (EssUP)
Extreme programming (XP)
Feature Driven Development (FDD)
Getting Real
Open Unified Process (OpenUP)
Scrum
12. 12
Agile practices
Some of the well-known agile software development practices:
Test Driven Development (TDD)
Behavior Driven Development (BDD)
Continuous Integration
Pair Programming
Planning poker
13. 13
Agile Languages
What’s an agile language?
An agile programming language is a language that helps to fulfill the agile values
and principles better than other languages, in the same sense as we think of agile
methods and agile modeling.
But can a language be agile?
YES! Why not? Well.., if a language can fulfill the concepts of agile software
development, then it can be called as an agile language.
Just like C++, Java, C#, .Net support Object Oriented concepts, languages that
can supports Agile concepts are called Agile Languages.
Note: Java and C# are NOT agile languages.
What are the examples?
Python, Perl, Ruby
We Will Learn some preliminary features of Python in this class…..
14. 14
Features of Agile Languages
excellent for beginners, yet superb for experts
highly scalable, suitable for large projects as well as small ones
rapid development
portable, cross-platform
embeddable
easily extensible
object-oriented
you can get the job done
simple yet elegant
stable and mature
powerful standard libs
wealth of 3rd party packages
16. 16
Software Prototyping
What are software prototypes?
Incomplete versions of the software program being developed.
e.g.: If you develop a simple software package for a customer for the first
time, you build a model of the product, which is NOT the final product; that is the
prototype)
What is software prototyping?
...of curse making the software prototypes…
Software prototyping is an activity during a certain software development, is the
creation of prototypes, i.e., incomplete versions of the software program being developed.
A prototype typically simulates only a few aspects of the features of the eventual
program, and may be completely different from the eventual implementation.
17. 17
Software Prototyping
A prototype can be used in:
• The requirements engineering process to help with requirements elicitation &
validation.
• In design processes to explore options and develop a UI design.
• In the testing process to run back-to-back tests.
Prototyping Process:
18. 18
Software Prototyping
Advantages of Prototyping
Reduced time and costs
Improved and increased user involvement
Improved system usability
A closer match to users’ real needs
Improved design quality
Improved maintainability
Disadvantages of Prototyping
Insufficient analysis
User confusion of prototype and finished system
Developer misunderstanding of user objectives
Developer attachment to prototype
Excessive development time of the prototype
Expense of implementing prototyping
19. 19
Software Prototyping
Categories of Prototyping
Software prototyping has many variants. However, all the methods are in
some way based on two major types of prototyping:
Evolutionary Prototyping
Throwaway(Rapid) Prototyping
This lecture series focus on Rapid Prototyping (Throwaway) But before we
go into Rapid Prototyping in detail, let me brief you both of them.
22. 22
Rapid prototyping (Further…)
Rapid prototyping techniques:
Various techniques may be used for rapid development.
Dynamic high-level language development
Database programming
Component and application assembly
These techniques are often used together.
Visual programming is an inherent part of most prototype development
systems.
23. 23
Rapid prototyping (Further…)
Rapid prototyping RISKS…
Mistaken concepts of rapid prototyping concerning definitions, objectives and correct
application of the technique.
Disagreements with users and customers regarding methodology, standards, tools and so
on.
Out-of-control users who want to iterate and evolve a prototype into a system that does
everything for everyone all of the time
Budget slashes and effort shortcuts - temptations brought about by use of the word ‘rapid’
Premature delivery of a prototype instead of a final (thoroughly documented and tuned)
product
Over-evolved prototypes - substituting elegance and efficiency for flexibility
24. 24
Python for Rapid Prototyping
Python is an agile language which supports Agile Methodologies. Agile
methodologies helps Rapid Prototyping a lot!
A Japanese Software Engineer KOICHI TAMURA says in his blog:-
“As you know in a project where multiple people are working on, it's quite common that there are
tasks that can be done only after some other tasks is completed, and if you have made a schedule you'll
know for that reason it's difficult to make a schedule. At the last project I often used Python for rapid
prototyping to complete a task to make the team working efficiently, not making a member bored by just
waiting for his workmate finish a task. We could rewrite the script in c++ for better performance later when
there was enough time. If we had been coding only in c++, the project might have been ended up in failure.
Python worked so nice.”
25. 25
Shall we learn Python Basics?
What is Python...?
Python is a dynamic object-oriented programming language that can be
used for many kinds of software development.
It offers strong support for integration with other languages and tools,
comes with extensive standard libraries, and can be learned in a few days.
Many Python programmers report substantial productivity gains and feel
the language encourages the development of higher quality, more
maintainable code.
Python's core syntax and semantics are minimalistic, while the standard library
is large and comprehensive. Its use of whitespace as block delimiters is unusual
among popular programming languages.
26. 26
Little bit from History…
Python was conceived in the late 1980s by Guido van Rossum at CWI [National Research Institute
for Mathematics and Computer Science (Dutch: Centrum voor Wiskunde en Informatica or CWI)]
in the Netherlands as a successor to the ABC programming language (itself inspired by SETL- a high-
level programming language) capable of exception handling and interfacing with the Amoeba
operating system.
Van Rossum is Python's principal author, and his continuing central role in deciding the direction
of Python is reflected in the title given to him by the Python community, Benevolent Dictator for Life
(BDFL).
Python 2.0 was released on 16 October 2000, with many major new features including a full
garbage collector and support for Unicode. However, the most important change was to the
development process itself, with a shift to a more transparent and community-backed process.
Python 3.0, a major, backwards-incompatible release, was released on 3 December 2008 after a
long period of testing. Many of its major features have been back ported to the backwards-
compatible Python 2.6.
27. 27
Python Applications used in..,
Web and Internet Development
Database Access
Desktop GUIs
Scientific and Numeric
Education
Network Programming
Software Development
Game and 3D Graphics
29. 29
Shall we learn some syntaxes via simple examples
I will give some sample codes to show you the syntaxes of Python Coding.
We can use Python 3.0 in Windows environment which has a good GUI (IDE)
as well. So it is easy to code…
In the following examples, input and output are distinguished by the
presence or absence of prompts (>>> and ...): to repeat the example, you
must type everything after the prompt, when the prompt appears; lines that do
not begin with a prompt are output from the interpreter. Note that a secondary
prompt on a line by itself in an example means you must type a blank line; this
is used to end a multi-line command.
30. 30
Shall we learn some syntaxes via simple examples
Comments in Python:
Start with the hash character, #, and extend to the end of the physical
line. A comment may appear at the start of a line or following whitespace or
code, but not within a string literal. A hash character within a string literal is
just a hash character. Since comments are to clarify code and are not
interpreted by Python, they may be omitted when typing in examples.
Some examples:
# this is the first comment
SPAM = 1 # and this is the second comment
# ... and now a third!
STRING = "# This is not a comment."
31. 31
Shall we learn some syntaxes via simple examples
Using Python as a Calculator:
Let’s try some simple Python commands. Start the interpreter and wait for the primary prompt, >>>. (It shouldn’t take
long.)
Numbers:
The interpreter acts as a simple calculator: you can type an expression at it and it will write the value. Expression syntax is
straightforward: the operators +, -, * and / work just like in most other languages (for example, Pascal or C); parentheses can be used
for grouping. For example:
>>> 2+2
4
>>> # This is a comment
... 2+2
4
>>> 2+2 # and a comment on the same line as code
4
>>> (50-5*6)/4
5
>>> # Integer division returns the floor:
... 7/3
2
>>> 7/-3
-3
32. 32
Shall we learn some syntaxes via simple examples
The equal sign ('=') is used to assign a value to a variable.
Afterwards, no result is displayed before the next interactive prompt:
>>> width = 10
>>> height = 5*4
>>> width * height
200
A value can be assigned to several variables simultaneously:
>>> x = y = z = 0 # Zero x, y and z
>>> x
0
>>> y
0
>>> z
0
33. 33
Shall we learn some syntaxes via simple examples
Variables must be “defined” (assigned a value) before they can be used,
or an error will occur:
>>> # try to access an undefined variable
... n
This is the error Message you get:-
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
NameError: name 'n' is not defined
There is full support for floating point;
operators with mixed type operands convert the integer operand to floating point:
>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5
34. 34
Shall we learn some syntaxes via simple examples
Complex numbers are also supported;
Imaginary numbers are written with a suffix of j or J.
Complex numbers with a nonzero real component are written as (real+imagj), or can be created with the
complex(real, imag) function.
>>> 1j * 1J
(-1+0j) This is the output you get
>>> 1j * complex(0,1)
(-1+0j) This is the output you get
>>> 3+1j*3
(3+3j) This is the output you get
>>> (3+1j)*3
(9+3j) This is the output you get
>>> (1+2j)/(1+1j)
(1.5+0.5j) This is the output you get
35. 35
Shall we learn some syntaxes via simple examples
Complex numbers are always represented as two floating point numbers, the real and imaginary part. To
extract these parts from a complex number z, use z.real and z.imag.
>>> a=1.5+0.5j
>>> a.real
1.5 This is the output you get
>>> a.imag
0.5 This is the output you get
The conversion functions to floating point and integer (float(), int() and long()) don’t work for complex
numbers — there is no one correct way to convert a complex number to a real number. Use abs(z) to get its
magnitude (as a float) or z.real to get its real part.
>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a) # sqrt(a.real**2 + a.imag**2)
5.0
36. 36
Shall we learn some syntaxes via simple examples
Strings:
Besides numbers, Python can also manipulate strings, which can be expressed in several ways. They can
be enclosed in single quotes or double quotes:
>>> 'spam eggs'
'spam eggs' This is the output you get
>>> 'doesn't'
"doesn't" This is the output you get
>>> "doesn't"
"doesn't" This is the output you get
>>> '"Yes," he said.'
'"Yes," he said.' This is the output you get
>>> ""Yes," he said."
'"Yes," he said.' This is the output you get
>>> '"Isn't," she said.'
'"Isn't," she said.' This is the output you get
37. 37
Shall we learn some syntaxes via simple examples
String literals can span multiple lines in several ways. Continuation lines can be used, with a
backslash as the last character on the line indicating that the next line is a logical continuation of the
line:
>>>hello = "This is a rather long string containingnseveral
lines of text just as you would do in C.nNote that whitespace at
the beginning of the line is significant.“
Note that newlines still need to be embedded in the string using n; the newline following the
trailing backslash is discarded. This example would print the following:
This is a rather long string containing
several lines of text just as you would do in C.
Note that whitespace at the beginning of the line is
significant.
38. 38
Shall we learn some syntaxes via simple examples
Strings can be concatenated (glued together) with the + operator, and repeated with *:
>>> word = 'Help' + 'A'
>>> word 'HelpA'
>>> '<' + word*5 + '>'
'<HelpAHelpAHelpAHelpAHelpA>‘
Two string literals next to each other are automatically concatenated; the first line above could also have
been written word = 'Help' 'A'; this only works with two literals, not with arbitrary string expressions:
>>> 'str' 'ing' # <- This is ok
'string'
>>> 'str'.strip() + 'ing' # <- This is ok
'string'
>>> 'str'.strip() 'ing' # <- This is invalid File
"<stdin>", line 1, in ? 'str'.strip() 'ing' ^
SyntaxError: invalid syntax
39. 39
Shall we learn some syntaxes via simple examples
Input & Output:
>>> s = 'Hello, world.’
>>> str(s)
‘Hello, world.’ This is the output you get
>>> repr(s)
“‘Hello, world.’” This is the output you get
>>> str(0.1)
‘0.1’ This is the output you get
>>> repr(0.1)
‘0.10000000000000001’ This is the output you get
40. 40
Shall we learn some syntaxes via simple examples
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '... '
>>> s
The value of x is 32.5, and y is 40000... This is the output you
get
>>> # The repr() of a string adds string quotes and backslashes:...
>>> hello = 'hello, worldn‘
>>> hellos = repr(hello)
>>> hellos
‘hello, worldn’ This is the output you get
>>> # The argument to repr() may be any Python object:
... repr((x, y, ('spam', 'eggs')))
"(32.5, 40000, ('spam', 'eggs'))" This is the output you get
41. That’s it from me…You can learn Python by trying it out by your self!
Wish you all the best for your future!
THANK YOU!
Evolutionary prototyping:
An initial prototype is produced and refined through a number of stages to the final system
The objective of evolutionary prototyping is to deliver a working system to end-users:
The development starts with those requirements which are best understood.
Must be used for systems where the specification cannot be developed in advance.
E.g., AI systems and user interface systems
Based on techniques which allow rapid system iterations.
Verification is impossible as there is no specification.
Validation means demonstrating the adequacy of the system.
Evolutionary prototyping advantages:
* Accelerated delivery of the system:
Rapid delivery and deployment are sometimes more important than functionality or long-term software maintainability.
* User engagement with the system:
Not only is the system more likely to meet user requirements, they are more likely to commit to the use of the system.
Used to reduce requirements risk.
The prototype is developed from an initial specification, delivered for experiment then discarded.
The throw-away prototype should NOT be considered as a final system
Some system characteristics may have been left out
There is no specification for long-term maintenance
The system will be poorly structured and difficult to maintain
Various techniques may be used for rapid development
Dynamic high-level language development
Database programming
Component and application assembly
These techniques are often used together
Visual programming is an inherent part of most prototype development systems
Used to reduce requirements risk.
The prototype is developed from an initial specification, delivered for experiment then discarded.
The throw-away prototype should NOT be considered as a final system
Some system characteristics may have been left out
There is no specification for long-term maintenance
The system will be poorly structured and difficult to maintain
Various techniques may be used for rapid development
Dynamic high-level language development
Database programming
Component and application assembly
These techniques are often used together
Visual programming is an inherent part of most prototype development systems
Used to reduce requirements risk.
The prototype is developed from an initial specification, delivered for experiment then discarded.
The throw-away prototype should NOT be considered as a final system
Some system characteristics may have been left out
There is no specification for long-term maintenance
The system will be poorly structured and difficult to maintain
Various techniques may be used for rapid development
Dynamic high-level language development
Database programming
Component and application assembly
These techniques are often used together
Visual programming is an inherent part of most prototype development systems