Learning Pascal FC - pascal

I'm looking for tutorials and examples on Pascal FC's channels and rendesvouz mechanisms.

There is a nice introductory tutorial, but unluckily it is in Spanish.
You may also take a look at the language's reference manual and user guide, but they are not suitable for learning the language from scratch.
I have not found any digital, freely accessible, introductory material in English yet.
I've been learning with a Spanish book on Concurrent Programming and there may be a bunch of books that explain topics on Concurrent Programming with Pascal-FC, but I have not checked them.
However, you might find the bibliographies of this papers useful:
Teaching concurrent programming with Pascal-FC
Pascal-FC: a language for teaching concurrent programming
You do not need to download the papers to see the bibliography, the list is shown on the webpage. However, there are some explanations and examples in the papers that might be useful to you, it would thus be nice if you could access those papers.
There is also another thorough list of books on Concurrent Programming which you may want to have a look at if you are realy looking forward to learning Pascal-FC.

Related

Modelica style guide

For many programming languages there are style guides available,
e.g. PEP8 for Python, this Matlab style guide or the style guides by Google.
For Modelica I found the conventions described in the Users Guide,
but is there something more comprehensive available?
And, ideally, a tool that helps with the re-formatting, indentation etc.?
The guidelines in the Modelica User's Guide are the only ones I am aware of. The topic has been discussed several times at the design meetings and I've written one paper that discussed the topic but didn't really propose concrete guidelines.
Part of the issue is that while the Modelica Association might have their guidelines (as your've seen), they don't represent any particular business or industries guidelines which might be different. In other words, I could envision having many different guidelines floating around that are tailored to specific types of models or specific industry conventions. But the Modelica ones are the only ones I am specifically aware of (although it would not surprise me if large organizations using did have their own formal style guidelines).

Tutorials For Natural Language Processing [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I recently attended a class on coursera about "Natural Language Processing" and I learnt a lot about parsing, IR and other interesting aspects like Q&A etc. though I grasped the concepts well but I did not actually get any practical knowledge of it. Can anyone suggest me good online tutorials or books for Natural Language Processing?
Thanks
You could read Jurafsky and Martin's Speech and Language Processing (2008 edition), which is the standard textbook in the field. It's long, and has a variety of topics, so I'd suggest reading just the chapters that really apply to your interests.
Further, the best way to learn is almost certainly to actually implement NLP algorithms from scratch. You could pick some standard tasks (language modeling, text classification, POS-tagging, NER, parsing) and implement various algorithms from the ground up (ngram models, HMMs, Naive Bayes, MaxEnt, CKY) to really understand what makes them work. It also shouldn't be too hard to find some free dataset to test your implementations on.
Finally, there are lots of tutorials out there for specific NLP algorithms that are excellent. For example, if you want to build an HMM, I suggest Jason Eisner's tutorial which also covers smoothing and unsupervised training with EM. If you want to implement Gibbs sampling for unsupervised Naive Bayes training, I suggest Philip Resnik's tutorial.
Aside from Jurafsky and Martin's book, Christopher D. Manning and Hinrich Schütze's Foundations of Statistical Natural Language Processing is also widely used. For IR, Manning et al. also wrote Introduction to Information Retrieval which can be read or downloaded online at their site.
If you want practical knowledge on how can you work on Natural language you should start implementing it.
I suggest to use NLTK(Natural Language Proecessing Toolkit) with Python. Its easy to implement NLP in python.
You can refer to this link
http://nltk.org/
Or you can try it online on
http://cst.dk/online/pos_tagger/uk/
Instead of reading a specific book, diving into the sea of papers might be an as good idea. http://www.aclweb.org, for example, contains many topics on NLP. Through those papers, you get references to more papers, some of which are the foundations of a certain branch of NLP. And because they were written by different authors, you are unlikely to be influenced too much by one point of view.
If you are a Java developer there is an extensive list of tutorials for how to build components of NLP systems using LingPipe at http://alias-i.com/lingpipe/demos/tutorial/read-me.html. Full disclosure I wrote some of those tutorials and one of the books below.
There are a few books that are more industrially oriented:
1) Natural Language Processing with Java by Richard M Reese
This covers how to do some common tasks with a range of open source toolkits (including LingPipe).
2) Natural Language Processing with Java and LingPipe Cookbook Paperback
by Breck Baldwin, Krishna Dayanidhi
This book is task driven at the level of "get the component built" and covers the major technologies driving most NLP systems that are text driven. It does not cover translation. It goes into more detail than the first book and has broader coverage than the LingPipe tutorials but is sometimes less detailed than the tutorials.
Breck
There is a hub for teaching and learning materials called TeLeMaCo. You can find resources for many aspects of NLP, and you can easily add more materials that you have found on the web.

Resources on declarative/logic programming?

Hi does anyone have any resources on declaritive programming languages, the more and the newer the better.
I find Krzysztof Apt's book on constraint programming very clear, if maybe a little on the theoretical side if you're looking specifically for "programming languages". The author's page links to reviews.
There are also a few related questions I can recommend:
https://stackoverflow.com/questions/1082121/what-are-the-best-introductory-logic-programming-books
https://stackoverflow.com/questions/401635/good-beginners-material-on-prolog

PLT-Scheme learning reference

After having got through the two Schemer books, I'm about to embark on HtDP but also discovered the http://docs.plt-scheme.org/guide material.
The previously mentioned books are more particular to Scheme, it seems, and the latter being more geared towards PLT specific extensions (modules, require, bracket syntax, etc...). The online manual is excellent but I was hoping there might be a book form that I could purchase?
If not, I'm certainly grateful for the in-depth online manual - was just curious!
No, I don't believe so. The only other PLT-specific book that's in print right know (AFAIK) is the excellent "Semantics Engineering with PLT Redex", but I don't think that's what you're looking for. You might also be interested in Krishnamurthi's Programming Languages: Application and Interpretation. Both of these are targeted at programming languages folks.
HTH
How to Design Worlds
How to Design Programs
Programming Languages: Application and Interpretation
There is a pdf version of the guide which might be easier for you to use than the html document:
http://download.plt-scheme.org/doc/4.0.2/pdf/guide.pdf
I assume this is legit, feel free to edit my post if it isn't.

How to learn the necessary anthropology to create social software?

Joel Spolsky repeats over and over that today, knowing a bit of anthropology can be very useful for a programer because much of what's being created is social software.
How can someone that already knows the computer science learn the anthropology needed to know how human beings works? Any books? Any recorded lectures?
I agree that knowing a bit about how we think is more important now for a developer then ever. The book Consciousness Explained by Dan Dennett was a real eye opener for me in understanding that we don't think the way we think we think.
I would suggest Clay Shirky's site is a good place to start. It's social anthropology set in a context of the internet, so it's more accessible (to programmers) than purely academic anthropology.
There is a book I've heard is good, but didn't have a chance to dig through it yet: Programming collective intelligence. It gives you some algorithms to quantify human behavior in social software. Sounds interesting.
Mathew Podwysocki wrote a post some time ago about implementing these ideas in Haskell.
I'm not sure that approaching contemporary anthropology is a whole is
the absolute best way to develop the knowledge that you
seek. Anthropologists study a bunch of different things, and while
knowing this stuff will help you be able to develop better designs and
products, this is a case where being a generalist is probably not an
effective use of time.
Anthropologists study culture, the superstructural stuff that
happens when you put a bunch of people in close proximity and let the
situation stew for a while. Apologies for the rough
definition. Knowing about culture, how cultures and societies
function, what causes them to break, what causes them to flourish is
fascinating and useful. Reading the "anthropological cannon" will help
you begin to understand this, but again long road, and I think the
questions you need answered are more easily addressed with some
specific projects.
First I'd like to just characterize Anthropology for a moment:
Although Anthropology isn't an experimental field, it's incredibly
empirical. Anthropologists collect a lot of data, and attempt to
describe what they see as totally as possible. This methodology, and
approach is--I think--extremely useful to software developers. It's
very easy to say "people want this," or "users feel this way," about a
feature or aspect of your software based on your experiences. It's
terribly difficult to figure out how users actually feel and interact
with your software in a precise way. If you had to take one
Anthropology class as a software developer, I'd recommend something
with a methodological emphasis.
In terms of specific resources, the following directions spring to mind
Dona Harroway's "The Cyborg Manifesto," springs instantly to mind as
the foundational work in a field of study that explores the
interaction between people, and machines as a social phenomena. It's
short. Good read. Amber Case, a young "cyborg anthropologist" does
work in Harroway's tradition, and I'd follow up on both of these
folks.
Secondly, I'd explore studies of cities and small communities. Except
in some very extreme cases (i.e. Twitter, Facebook, etc.), whole
cultures aren't using your software. Groups are. Learn about them. I
think urban studies and work that gets called "urban sociology" might
begin to provide you the kinds of answer that you'd be interested
in. I think that would be a good place to start.
The only rule to know about social software is that "people will do anything to make money or get laid" :)
But on a serious note, I don't think anthropology is what matters, but rather an understanding of the motivation that people have to contribute to social software or to expose themselves on social software. There have been quite a few recent books that explain a lot of these concepts in good terms. A good start could be "Here comes everybody" by Clay Shriky.
The Design of Everyday Things
The Humane Interface
Many of the answers here are pointing towards texts on how consciousness works or how people interact with devices. This is a great start, since it shows where you would want to go. Beyond that, you could consider understanding fundamental social and experiential aspects of how humans work. This way, you can develop software with an understanding of how humans could experience your software, as well as how it could be part of a social world.
To this I recommend The Ethical Primate from Mary Midgley. The text is about philosophy, ethics, freedom, and evolution, but it is firmly grounded in empirical knowledge. It will also give you tools to be able to critically examine the language and knowledge that—in my experience as a computer science major—STEM usually uses when discussing people. If you want to read a shorter text regarding this last point on the dangers of STEM language when describing humans, you could read Mary Midgley's Biotechnology and Monstruosity.
A text that deals less with the ethical and social implications of theorizing about humans is The Tangled Wing.
There are many ethnographies that describe how people interact with technologies such as social media. These are more specific to the kind of technology that you're working on.

Resources