This document discusses various programming languages and concepts. It begins by looking at the popularity of languages like Java, C/C++, and Python. It then examines different language features and paradigms, including dynamic vs static typing, closures, metaprogramming, and more. The document also profiles several important languages such as Lisp, Scala, Haskell, Erlang, JavaScript, Ruby, and Groovy. It emphasizes that no single language can satisfy all needs and that the appropriate language depends on the task.
Machine Learning and Data Mining: 19 Mining Text And Web DataPier Luca Lanzi
Course "Machine Learning and Data Mining" for the degree of Computer Engineering at the Politecnico di Milano. In this lecture we overview text and web mining. The slides are mainly taken from Jiawei Han textbook.
6 Programming Languages under investigationHosam Aly
An in-depth comparison of 6 different programming languages, namely C++, C#, Java, Scala, Ruby and JavaScript.
I presented this session in the Java Developers Conference in Egypt, 2013.
Machine Learning and Data Mining: 19 Mining Text And Web DataPier Luca Lanzi
Course "Machine Learning and Data Mining" for the degree of Computer Engineering at the Politecnico di Milano. In this lecture we overview text and web mining. The slides are mainly taken from Jiawei Han textbook.
6 Programming Languages under investigationHosam Aly
An in-depth comparison of 6 different programming languages, namely C++, C#, Java, Scala, Ruby and JavaScript.
I presented this session in the Java Developers Conference in Egypt, 2013.
Natural Language Processing (NLP) is often taught at the academic level from the perspective of computational linguists. However, as data scientists, we have a richer view of the world of natural language - unstructured data that by its very nature has important latent information for humans. NLP practitioners have benefitted from machine learning techniques to unlock meaning from large corpora, and in this class we’ll explore how to do that particularly with Python, the Natural Language Toolkit (NLTK), and to a lesser extent, the Gensim Library.
NLTK is an excellent library for machine learning-based NLP, written in Python by experts from both academia and industry. Python allows you to create rich data applications rapidly, iterating on hypotheses. Gensim provides vector-based topic modeling, which is currently absent in both NLTK and Scikit-Learn. The combination of Python + NLTK means that you can easily add language-aware data products to your larger analytical workflows and applications.
Inheritance Versus Roles - The In-Depth VersionCurtis Poe
This is the paper to accompany my slides explaining what's wrong with inheritance and how traits (roles) help to solve these issues: http://www.slideshare.net/Ovid/inheritance-versus-roles
Jarrar: Introduction to Natural Language ProcessingMustafa Jarrar
Lecture slides by Mustafa Jarrar at Birzeit University, Palestine.
See the course webpage at: http://jarrar-courses.blogspot.com/2012/04/aai-spring-jan-may-2012.html
and http://www.jarrar.info
and on Youtube:
http://www.youtube.com/watch?v=aNpLekq6-oA&list=PL44443F36733EF123
Big Data and Natural Language ProcessingMichel Bruley
Natural Language Processing (NLP) is the branch of computer science focused on developing systems that allow computers to communicate with people using everyday language.
Internet of Things (IoT) two-factor authentication using blockchainDavid Wood
Presented at the Ethereum Engineering Group Meetup in Brisbane, Australia, on 13 Nov 2019. We report on research to use an Ethereum blockchain as an MFA and/or MPA device to secure command channels on IoT networks, even when the underlying network may be compromised.
Natural Language Processing (NLP) is often taught at the academic level from the perspective of computational linguists. However, as data scientists, we have a richer view of the world of natural language - unstructured data that by its very nature has important latent information for humans. NLP practitioners have benefitted from machine learning techniques to unlock meaning from large corpora, and in this class we’ll explore how to do that particularly with Python, the Natural Language Toolkit (NLTK), and to a lesser extent, the Gensim Library.
NLTK is an excellent library for machine learning-based NLP, written in Python by experts from both academia and industry. Python allows you to create rich data applications rapidly, iterating on hypotheses. Gensim provides vector-based topic modeling, which is currently absent in both NLTK and Scikit-Learn. The combination of Python + NLTK means that you can easily add language-aware data products to your larger analytical workflows and applications.
Inheritance Versus Roles - The In-Depth VersionCurtis Poe
This is the paper to accompany my slides explaining what's wrong with inheritance and how traits (roles) help to solve these issues: http://www.slideshare.net/Ovid/inheritance-versus-roles
Jarrar: Introduction to Natural Language ProcessingMustafa Jarrar
Lecture slides by Mustafa Jarrar at Birzeit University, Palestine.
See the course webpage at: http://jarrar-courses.blogspot.com/2012/04/aai-spring-jan-may-2012.html
and http://www.jarrar.info
and on Youtube:
http://www.youtube.com/watch?v=aNpLekq6-oA&list=PL44443F36733EF123
Big Data and Natural Language ProcessingMichel Bruley
Natural Language Processing (NLP) is the branch of computer science focused on developing systems that allow computers to communicate with people using everyday language.
Internet of Things (IoT) two-factor authentication using blockchainDavid Wood
Presented at the Ethereum Engineering Group Meetup in Brisbane, Australia, on 13 Nov 2019. We report on research to use an Ethereum blockchain as an MFA and/or MPA device to secure command channels on IoT networks, even when the underlying network may be compromised.
Methods for Securing Spacecraft Tasking and Control via an Enterprise Ethereu...David Wood
Presentation at ICSSC 2019 (see http://www.kaconf.org) associated with the following academic paper:
David Hyland-Wood, Peter Robinson, Roberto Saltini, Sandra Johnson, Christopher Hare. Method for Securing Spacecraft Tasking and Control via an Enterprise Ethereum Blockchain. Proc. 37th International Communications Satellite Systems Conference (ICSSC), 29 October - 1 November 2019.
Implementing the Verifiable Claims data modelDavid Wood
The W3C Verifiable Claims data model arguably requires a decentralised, distributed database controllable by three types of parties; issuers, inspectors, and holders. This presentation explores the benefits of implementing the Verifiable Claims data model using the RDF and Linked Data technology stack.
Metaphors define civilized life. They are all around us in the stories that we teach our children and tell each other to justify our actions. But social metaphors have a dark side. They can cause entire civilizations to self destruct. Metaphors can kill. This presentation explores the power, and danger, of metaphors as social memes.
These slides are from a talk given to the Fredericksburg Secular Humanists (FSH) in Fredericksburg, Virginia, on 8 November 2015. FSH is sub-chapter of the United Coalition of Reason (unitedcor.org). The talk compared the secular societies of the United States and Australia.
Building a writer's platform with social mediaDavid Wood
This presentation reports on my progress in trying to build my writer's platform using social media. It focuses on Twitter, but the advice is generally applicable. Kudos to my mentors @DanCitizen and @RayneHall.
A summary of the Hero's Journey, Joseph Campbell's formulation of the "monomyth" in mythology and literature. Originally presented to the Fredericksburg Writing as a Business Meetup, 24 January 2015.
Open Data is the idea that "certain data should be freely available to everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control”. Open Data follows similar “open” concepts that have proven to be valuable in the information economy such as Open Standards, Open Source Software, Open Content and has been followed more recently by variations on the theme such as Open Science and Open Government.
Open Data allows information of common value to be reused without needing to be recreated. The economic benefits of Open Data include cost reduction, organizational efficiencies and the facilitation of commonly held understanding. The costs of implementing Open Data deployment strategies tend to be iterative on top of existing information infrastructure.
This presentation will describe Open Data and its place in the ecosystem of economic and governmental discourse.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
1. One Ring to Rule Them All?
Why Programming Languages Matter
1
2. 2
Some people think, and act, like Java is the One Programming Language to Rule Them All. Is it
really? Is it possible to have everything you need in a single language?
3. TIOBE Programming Community Index
1 Java 19.002%
2 C 15.931%
3 C++ 10.116%
4 (Visual) Basic 9.161%
5 PHP 8.882%
6 C# 5.609%
7 Python 4.731%
8 Perl 4.303%
9 JavaScript 3.360%
10 Delphi 3.303%
January 2009
3
Interestingly, Ruby is #11 and is the only other language with greater than 3% reporting.
4. 4
From a Cadbury chocolate label. Simple things, like this list of ingredients, are relatively easy to
translate. Concepts, logic and emotions are much harder.
5. 5
Sandburg reminds us that language, like culture, is always changing. What we mean when we use a
particular word evolves and changes. Consider the word “flour”, for example. In the Middle English
of the Canterbury Tales, it means a flower. Nowadays it typically means ground wheat.
6. “if something can't be said, then it
can't be thought”
-- Orwell
6
In George Orwell’s 1984, NewSpeak was an attempt to control what people could think by
controlling what they could say. Can you think of analogies to computer programming languages
that you use?
7. 7
These are obviously shoes. They have dierent shapes, colors, sizes and styles, yet we immediately
recognize them as shoes. Some languages insist on attaching implicit metadata about objects, such
as gender (e.g. German, Italian) or even general shape (e.g. Japanese, -mai, -hon forms as in “kutsu
ni-hon”). Consider also the dierence between material types in English (“some sand” vs. “a sand”).
8. 8
When does an object become a shoe? Or stop being a shoe? We often pretend that our words have
hard, Boolean meanings, but they are really quite flexible. This strongly dierentiates human
languages from programming languages.
9. quot;The limits of my language mean the limits
of my world.quot;
-- Wittgenstein
9
Ludwig Wittgenstein (1889–1951) was “an Austrian-British philosopher who worked primarily in
logic, the philosophy of mathematics, the philosophy of mind, and the philosophy of language”.
[Wikipedia]
10. quot;About what one can not speak, one must
remain silent.quot;
-- Wittgenstein
10
11. quot;The structures of your language shape the
way you think and perceive the world.quot;
- Sapir-Whorf Hypothesis
11
Cognitive research has proven a link from language to perception, but it seems to be weaker in
adults. The “strength” of the Sapir-Whorf is an area of controversy [http://scienceblogs.com/
cognitivedaily/2005/05/does_our_language_aect_our_t.php]
12. Language is innate and universal
- Chomsky
12
Noam Chomsky (1928-) is an American linguist, philosopher, cognitive scientist, political activist,
author, and lecturer. [Wikipedia]
13. quot;Some people argue that language just
changes what you attend to, but what
you attend to changes what you encode
and remember.quot;
-- Lera Boroditsky
13
Lera Boroditsky is an Assistant Professor of Psychology at Stanford University doing research in
cognitive science with a specific focus on cognitive linguistics. [Wikipedia]
14. 14
Perhaps there is no “one ring”. Perhaps the ring is made of many possible components, or maybe
even fractal...
15. Chimeric Programming
15
Chimeric programming; like the mythical Chimera which was a beast made of parts of many animals
(related to the Hydra and Cerberus).
Chimera on a red-figure Apulian plate, ca 350-340 BCE (Musée du Louvre) -- Wikipedia
Use many languages to say the right thing at the right time.
16. Kinnersley’s Categories
Constraint
Procedural
Object-Oriented
Imperative
Concurrent
Declarative
Fourth Generation
Applicative
Query
Functional
Specification
Definitional
Assembly
Single Assignment
Intermediate
Dataflow
Metalanguage
Logic
16
Bill Kinnersley, husband of a University of Kansas EE prof and coder. He maintains the list of
computer languages at http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
17. Kinnersley’s Categories
Java, Javascript
Object-Oriented BeanShell
Procedural
Constraint
Imperative
Declarative HTML, CSS Concurrent
Fourth Generation
Applicative
Functional XSL, RelaxNG Query SQL
Specification
Definitional
Assembly
Single Assignment
Dataflow DPML Intermediate
Metalanguage XML, BNF
Logic
17
Languages used for the PURL project, notionally written in Java.
18. Kinnersley’s Categories
Java
Object-Oriented Javascript
Procedural
Constraint
Imperative
Declarative HTML, CSS Concurrent
Fourth Generation
Applicative
XSL, XPath Query SPARQL
Functional
XQuery
Specification
Definitional
Assembly
Single Assignment
Dataflow Drools, DPML Intermediate
Logic OWL, SKOS Metalanguage RDF, XML
18
Languages used for the ICFS project, also notionally a Java project.
20. Typing
Dynamic Static
Strong Ruby/Groovy Java/C#
Weak JavaScript/Perl C/C++
From Venkat Subramaniam’s “Programming Groovy”
20
We used to snub our noses over dynamic languages over features like weak typing. The situation
has changed and we should acknowledge that.
21. Dynamic/Strong
Ruby
$ irb
i = 10
= 10
s = quot;stringquot;
= quot;stringquot;
s + i
TypeError: can't convert Fixnum into String
from (irb):3:in `+'
from (irb):3
from :0
From Nate Schutta’s “JavaScript : The Good, The Bad and the Ugly”
21
22. Dynamic/Weak
JavaScript
var i = 12;
var j = quot;helloquot;;
out(i + j)
Yields:
“12 hello”
From Nate Schutta’s “JavaScript : The Good, The Bad and the Ugly”
22
23. Closures
• Functions that are evaluated in an environment
containing one or more bound variables.
• Associated with functional languages.
• Some OO languages now exposing closures for
use by programmers - they appear as closed
anonymous functions.
23
Closures may be used to implement OO (because state can be hidden and variables maintain state
across calls).
Example later.
24. Metaprogramming
• Code that writes code at runtime to perform
operations traditionally performed at compile time.
• Typically via dynamic execution of string
expressions that contain programming commands.
24
Example later.
25. Expando Metaclass
Dynamically add
• methods
• constructors
• properties
• static methods
to classes using closures.
25
Example later.
26. 26
The language market is crowded; roughly 2,000 programming languages created in the last four
decades (some 13 of which have “stuck”). Here are some you should know.
27. Lisp (is back!)
Functional
• Conditionals • Program as expression
• Functions as data • Symbol type
• Recursion • Code as tree of symbols
• Dynamic typing • Read/Run/Compile
• Garbage collection
http://www.paulgraham.com/icad.html
27
Also, LISP-variant Clojure for concurrent programming. Clojure runs on the JVM.
31. Ericsson AXD 301
HA ATM Switch
1,000,000 Erlang LOC
Used Not Used
Message-passing Inheritance
Isolation Methods
Concurrency Classes
Higher-Order Programming UML
31
Written in Erlang, now FLOSS.
No traditionally OO structures used!
32. JavaScript
Dynamic OO
• Prototype Inheritance
• Closures
• Function as a data type
32
Web 2.0 engine - dynamic language of choice in the Web browser, also on a JVM via Rhino.
33. Ruby
Dynamic OO/Functional
• Metaprogramming
• Rails engine!
• Mixins
33
Runs on JVM
“Metaprogramming is the writing of computer programs that write or manipulate other programs
(or themselves) as their data, or that do part of the work at runtime that would otherwise be done at
compile time.” [Wikipedia]
34. Groovy
Dynamic OO - The next Java syntax?
• Closures
• Metaprogramming
• Grails engine!
• Builder Syntax (XML, Swing, Data)
• Access to legacy Java code
34
Runs on JVM
35. // By Scott Davis, Brian Sletten
class FoafPerson {
Map facts = [:]
Object invokeMethod(String predicate, Object value) {
if(facts.containsKey(predicate)) {
value.each{ obj -
facts.get(predicate).add(obj)
}
} else {
facts.put(predicate, value as List)
}
}
}
35
Invoking the method that wasn’t there.
36. brian = new FoafPerson()
brian.'foaf:name' 'Brian Sletten'
brian.'foaf:knows' quot;Ericquot;, quot;Davidquot;,quot;Uchequot;
brian.'foaf:dateOfBirth' '1972-05-26'
brian.'foaf:interest' quot;http://www.w3.org/RDF/quot;, quot;http://
www.w3.org/2000/01/sw/quot;
36
Using the method that wasn’t there.
38. 38
Don’t be an angry monkey (in the learned behavior study sense) - question group think inherent in
language choice.
39. Photos
Title Ring http://www.flickr.com/photos/mk1971/1348204498/
One Ring http://www.flickr.com/photos/generalnoir/391009102/
Language http://www.flickr.com/photos/margolove/1526032187/
Cadbury http://www.flickr.com/photos/nofrills/10895361/
Fractal http://www.flickr.com/photos/swaymedia/84294191/
Monkey http://www.flickr.com/photos/oskarn/122047239/
1984 http://www.newspeakdictionary.com/go-movie.html
http://www.flickr.com/photos/visualgrammar/
Shoes 114831391/
http://www.flickr.com/photos/undercover_surrealist/
Bottles 2405406526/
39
40. Photos
Crowd http://www.flickr.com/photos/vividbreeze/480057824/
Bells http://www.flickr.com/photos/hirsuteursus/637705224/
Quotes
Orwell 1984
On Language Collected by Brian Sletten
Others as noted inline
40