19. Data Structures and Algorithm ComplexityIntro C# Book
In this chapter we will compare the data structures we have learned so far by the performance (execution speed) of the basic operations (addition, search, deletion, etc.). We will give specific tips in what situations what data structures to use. We will explain how to choose between data structures like hash-tables, arrays, dynamic arrays and sets implemented by hash-tables or balanced trees. Almost all of these structures are implemented as part of NET Framework, so to be able to write efficient and reliable code we have to learn to apply the most appropriate structures for each situation.
Scala 3 Is Coming: Martin Odersky Shares What To KnowLightbend
Join Dr. Martin Odersky, the creator of Scala and co-founder of Lightbend, on a tour of what is in store and highlight some of his favorite features of Scala 3!
In this chapter we will get familiar with primitive types and variables in Java – what they are and how to work with them. First we will consider the data types – integer types, real types with floating-point, Boolean, character, string and object type. We will continue with the variables, with their characteristics, how to declare them, how they are assigned a value and what is variable initialization.
19. Data Structures and Algorithm ComplexityIntro C# Book
In this chapter we will compare the data structures we have learned so far by the performance (execution speed) of the basic operations (addition, search, deletion, etc.). We will give specific tips in what situations what data structures to use. We will explain how to choose between data structures like hash-tables, arrays, dynamic arrays and sets implemented by hash-tables or balanced trees. Almost all of these structures are implemented as part of NET Framework, so to be able to write efficient and reliable code we have to learn to apply the most appropriate structures for each situation.
Scala 3 Is Coming: Martin Odersky Shares What To KnowLightbend
Join Dr. Martin Odersky, the creator of Scala and co-founder of Lightbend, on a tour of what is in store and highlight some of his favorite features of Scala 3!
In this chapter we will get familiar with primitive types and variables in Java – what they are and how to work with them. First we will consider the data types – integer types, real types with floating-point, Boolean, character, string and object type. We will continue with the variables, with their characteristics, how to declare them, how they are assigned a value and what is variable initialization.
ESOFT Metro Campus - Diploma in Software Engineering - (Module VI) Windows Based Application Development in Java
(Template - Virtusa Corporate)
Contents:
Introduction to Java
Features of Java
What you can create by Java?
Start Java Programming
Creating First Java Program
Java Virtual Machine
Basic Rules to Remember
Keywords in Java
Comments in Java Programs
Printing Statements
Primitive Data Types in Java
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
While Loop
Do While Loop
For Loop
Reading User Input
Arrays
Two Dimensional Arrays
Strings
Objects and Classes
Java Classes
Java Objects
Methods with Return Value
Methods without Return Value
Constructors
Method Overloading
Variable Types
Inheritance
Method Overriding
Abstract Classes
Interfaces
Polymorphism
Packages
Access Modifiers
Encapsulation
Exceptions
JDBC
GUI Applications with Swing
NetBeans IDE
From my November 3, 2011 talk at MNPHP. Regular expressions are a powerful tool available in nearly every programming language or platform, including PHP. I go over the history of POSIX vs. PCRE, examples in PHP, and optimizations on how to write faster expressions.
After the end of lesson you will be able to learn Python basics-What Python is? Its releases. Where we can use Python? Python Features. Tokens, comments variables etc... In out next PPT you will learn how to input and get output in Python
ESOFT Metro Campus - Diploma in Software Engineering - (Module VI) Windows Based Application Development in Java
(Template - Virtusa Corporate)
Contents:
Introduction to Java
Features of Java
What you can create by Java?
Start Java Programming
Creating First Java Program
Java Virtual Machine
Basic Rules to Remember
Keywords in Java
Comments in Java Programs
Printing Statements
Primitive Data Types in Java
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
While Loop
Do While Loop
For Loop
Reading User Input
Arrays
Two Dimensional Arrays
Strings
Objects and Classes
Java Classes
Java Objects
Methods with Return Value
Methods without Return Value
Constructors
Method Overloading
Variable Types
Inheritance
Method Overriding
Abstract Classes
Interfaces
Polymorphism
Packages
Access Modifiers
Encapsulation
Exceptions
JDBC
GUI Applications with Swing
NetBeans IDE
From my November 3, 2011 talk at MNPHP. Regular expressions are a powerful tool available in nearly every programming language or platform, including PHP. I go over the history of POSIX vs. PCRE, examples in PHP, and optimizations on how to write faster expressions.
After the end of lesson you will be able to learn Python basics-What Python is? Its releases. Where we can use Python? Python Features. Tokens, comments variables etc... In out next PPT you will learn how to input and get output in Python
A proposal I wrote for "Lemasr", an organization for supporting development in Egypt. I thought the information contained within might be useful to more people.
Note: Pages 10-15 were taken from a presentation by Jeanette M. Wing, with permission. The original presentation is here: http://exploringcs.org/wp-content/uploads/2010/09/Wing08.ppt
In 2010 we had the idea to have multiple graduation projects with common themes. The themes selected for that year were "Arabic NLP" and "Pen computing". This presentation outlined the two themes and suggested several project ideas for them (and some GP ideas not related to the two themes),
- Basics: BEAM Ecosystem and Erlang Programming Language
- Functional Programming: How Make your code Beautiful
- Concurrency: You need to be concurrent to survive in the parallel world
- Fault Tolerance: Keep calm and let it crash
- Soft Real-time: Accept the reality, be real, be yourself
- Software Architecture: How to look nice in a bigger picture
Python is a high level language focused on readability. The Python community developed the concept of "Pythonic Code", requiring not only semantic correctness, but also conformity to universally acknowledged stylistic criteria.
A pre-requisite to write pythonic code is to write idiomatic code. Using the right idioms is a matter of acquired taste and experience, however, some idioms are quite easy to learn.
This presentation focuses on some of these idioms and other stylistic criteria:
* for vs. while
* iterators, itertools
* code conventions (space invaders)
* avoid default values bugs
* first order functions
* internal/external iterators
* substituting the switch statement
* properties, attributes, read only objects
* named tuples
* duck typings
* bits of metaprogramming
* exception management: LBYL vs. EAFP
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. The need for parallel processing
It has become prohibitive to raise the clock
speeds of current CPUs any further.
The next trend is to increase the number of CPU
cores.
In order to benefit from CPU upgrades, programs
need to make the maximum possible use of
parallelism.
“The free lunch is over“
(http://www.gotw.ca/publications/concurrency-
ddj.htm)
3. Also, distributed processing :)
Not only is the program running on multiple
CPUs, but on multiple computers over the
network.
No shared memory, communication by
message passing.
Google's index, for example.
4. Current languages
Both parallel and distributed applications have
been written in traditional languages like C++,
Java or C#, but...
The problem is these languages depend too
much on shared state.
And they inherently make you think sequentially.
Your programming language influences how you
think about programs, not just how you write
code.
5. Current languages
The problem of shared mutable state (e.g
global variables, object references...)
Loop iterations run in sequence
Assignment is very sequential
Function calls have problems
e.g: If function a( ) calls b( ), it keeps waiting for b( )
to return before resuming operation.
فيه طرق للبرمجة غير كده أصل ؟
6. Erlang
Created in 1986 by Joe Armstrong at Ericsson.
Functional, dynamically typed, uses the actor
model.
Design goals:
Concurrency, distribution, robustness, "soft" real
time, hot code upgrades...and other goals.
Used in Ericsson devices, Facebook chat,
Amazon SimpleDB, now quickly growing.
Now open source
7. Contents
1st session: Sequential Erlang.
2nd session: Concurrency and Actors.
3rd session: A simple web application
8. Objectives of these sessions
Introducing new concepts (Actor model,
functional programming, immutable data).
The importance of parallel programming.
Stressing that there is much more to know
about programming outside of traditional
languages like C++, Java or C#.
Not necessarily from Erlang only.
9. Erlang resources
Download from
http://www.erlang.org/download.html
Lots and lots of documentation are included!
Located in c:Program fileserl5.7.4docindex.html
Especially look at "Getting started with
Erlang" and "Erlang reference manual"
Nice, searchable version of the
documentation at www.erldocs.com
10. The Environment
Commands always end in a dot: .
help( ) to show all options
cd(path) to change working directory
Paths use a forward slash: "c:/examples/test1"
c(file) to load & compile a file.
e.g: c("example1"). % .erl extension is optional
f( ) to forget all variable bindings
Simple autocomplete with the <TAB> key.
Lots and lots of documentation are included!
c:Program fileserl5.7.4docindex.html
Nice, searchable version of the documentation at www.erldocs.com
11. Data types
Numbers: 12, -100, 15.55, $a
Atoms: x, ayman, faculty_of_law
Simple atoms cannot begin with a capital letter or have spaces,
but single quotes can be used to bypass those rules: 'Samy',
'calculus book'
Tuples: { samy, 1979, cairo }, {13, 28}
Lists: [ ], [1, 2, 3], [a, [b, c], {1, 2} ]
Strings: "Hello world"
This actually is the list [$H, $e, $l, $l, $o, $ ,$w, $o, $r, $l, $d ]
All these data types are immutable
12. Data types and variables
More information about these data types in the Erlang
reference.
Other important data types exists (e.g PID).
A piece of data of any data type is called a term.
Variables always start with a capital letter or underscore:
X, Y, _Name, _name
Variables can be bound to a value or still unbound
Erlang has single assignment: a variable cannot be
bound more than once.
13. Pattern matching
A pattern is a term which may contain one or more variables.
A term with no variables at all can be considered a pattern.
Matching syntax is:
Pattern = Term
Each respective component of the term is compared,
matching attempts to find the most general variable binding to
make the match succeed.
Quiz: what is the result of the following matches?
15. More pattern matching quizzes
X=5.
X=5. Y=X+1. Y=3+3.
X=Y. Y=1.
{ X, Y } = { 5, 6 }
{ Y, Y } = { 5, 6 }
(When testing these on Erlang; remember to use f( ) to reset
variable bindings.)
16. Pattern matching on lists
[ H | T ] = [1, 2, 3].
[ H | T ] = [ ].
[ H | T ] = [1, 2].
[ H1, H2 | T ] = [1, 2, 3].
[ H1, H2 | T ] = [1, 2].
[A, B] ++ [ H| T] = "faculty".
"Mustafa" ++ X = "Mustafa Kamel".
17. Some simple I/O
io:format(fmt_str, [arg0,arg1... ])
Examples:
io:format("The results are ~p and ~p", [15, 16]).
io:format("Hello world ~n", [ ]).
io:format("Hello world ~n").
Codes:
~~ : The '~' mark (needs no argument)
~f : Format argument as floating point
~c : Format argument as a character.
~w : Format argument in standard syntax (i.e like terms in the language)
~p : Standard syntax for printing (e.g turns lists of printable characters into strings)
~n : newline character (doesn't need an argument).
Much more detail in the documentation. Erlang has very rich formatting
features.
18. More simple I/O
io:get_line(Prompt) -> Data | eof | {error,Reason}
Gets a line from standard input as a string (includes the newline character).
io:read(Prompt) → {ok, Term} | eof | {error, ErrorInfo}
Reads a term from standard input (user must include ending period).
io:fread(Prompt, Format) -> {ok, Terms} | eof | {error, What}
Reads characters and returns a list of terms, parsed according to the specified format
specification (different from that of io:format).
Examples:
io:read("Enter a point>").
Enter a point>{13, 14}.
{ok, {13, 14}}
io:get_line("Enter your name>").
Enter your name>Captain Majid
“Captain Majidn"
io:format( ), io:read( ) and all the other given i/o functions have additional parameters that can
make them read from I/O devices like files...etc
19. Modules
-module(addition).
-export([add/2, add/3]).
add(X, Y) -> X+Y.
add(X, Y, Z) -> X+Y+Z.
unused_func( ) -> io:format("unused!").
% End of module definition.
Erlang code is divided into modules.
A module has attributes at the top (the begin with the dash character '-') and is followed by
function declarations. Both attributes and declaration end with a dot '.'
Exported function names must include its artiy (number of parameters).
Two functions with the same name but different arities are different functions!
20. Functions
add(A, B) → A+B.
− Return value is the function's expression
add(A, B) →
io:format(“now adding ~p and ~p~n", [A, B]),
A+B.
− In case of multiple expressions, return value is the last
one
21. Functions
absolute(A) when A>0 → 1
;
absolute(A) when A=0 → 0
;
absolute(A) → -1
.
The expressions after when are called guard
sequences. More about them in the Erlang language
reference → Expressions → Guard sequences
22. Pattern matching in functions
distance({X1 Y1}, {X2, Y2}) →
Dx= X1-X2,
Dy= Y1-Y2,
math:sqrt(Dx*Dx + Dy*Dy).
Tuples can be confusing (e.g is a tuple of two
numbers a point, vector or age & salary?).
We can use an atom in the beginning (the tag)
to distinguish between kinds of data...
24. Recursion
factorial(0) ->1 ;
factorial(N) -> N*factorial(N-1).
Function calls, activation records, and why this
works.
We need this; we don't have loops !
The space requirements of naïve recursion.
25. Recursion
Tail calls vs. non tail calls.
Tails calls are not only about recursion, but any
function call.
Tail call elimination. Now recursion can be as
good as loops.
In fact, it's can be compiled to jump instructions.
Sometimes it can be much better than loops!
Example: state machines