Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I was reading an article earlier that suggests 1/3 of us are scared their job will be taken over by robots at some point. At first I was thinking (as robots have to be programmed as well) that we, as programmers, would be safe from this. That brought me to this question.
Would artificial intelligence be capable of performing (advanced) programming tasks or would they always be limited to the level they where programmed at?
What I mean by level is, for example, a scripting language as opposed to a programming language. (Would it be even possible for a scripting language to write and compile software in a programming language?)
This topic was put on hold because the answers would be based on opinions rather than facts. Just for clarity, I am expecting answers that are based on facts. An answer that simply says yes or no would be an opinion based answer, an answer that explains why is based on facts.
Okay, first of all, since you are dealing with the development of programs, it would be better suited to consider this a question based on Artificial Intelligence, rather than Robotics. It's much more simpler to develop programs to write other programs instead of developing a physical entity to type out a program.
AI has developed to such an extent, that simple games can be played much better than what normal humans can do: Wikipedia: Progress in AI.
As of now, development of complex programs is still out of the reach of AI, though it's not far off. Still, for the most part, AI may be used to assist human developers - since it's still not fully developed - rather than replace them altogether.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I need to know the important of Discrete Mathematics in Artificial Intelligence.
Discrete mathematics will help you to understand fundamental structures in mathematics while all the while training you to develop logic intuitions (writing proofs of induction, introducing you to techniques like the pigeon-hole principle).
To go into Artificial Intelligence there really isn't a straight forward path as AI as an umbrella has widened so much since the term was coined but people just decided to stick to it because it made sense to call every sub discipline -- Machine learning, Decision making, NLP, Question answering, Info retrieval -- as AI.
Once you have a strong grounding in writng proofs and understanding logic you can get started with specific areas by diving into the latest research. If not, you have to strengthen your foundations by working on a discrete mathematics course perhaps.In this way,Discrete mathematics will help you in Artificial Intelligence.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I've been teaching myself a bit about declarative vs imperative programming, and I've come to the (possibly false) understanding that declarative programming is more or less just abstraction.
For example, according to how I understand these concepts, calling a method to do something would be declarative, whereas the implementation of the method is imperative (not necessarily, though? Just not declarative).
Therefore, it seems as if wherever you have declarative code, somewhere down the line it must rely on non-declarative code for implementation. Is this just the nature of it, or are there languages that are 100% declarative (something I can't even begin to conceptualize)?
Please correct me if my understanding of these concepts is off! Although I'm roughly halfway through a B.A. in Computer Science, I feel like I've only been taught so far to "type stuff so that the right stuff happens when you run the code."
Thanks.
Declarative programming expresses the logic of a software component without outlining it's control flow. That methodology of calling functions (which is called functional programming - a sub-paradigm of declarative programming) you are talking about can be a bit confusing, especially when learning programming and probably learning a language like C/C++/Java. There are functional programming languages, such as Lisp and Haskell, that utilize the functional paradigm completely.
When just starting off, I wouldn't try to learn the implementations of those paradigms simultaneously. Instead I find it easiest to think of declarative languages as the highly expressive languages like CSS SQL. They describe WHAT should be done in plain English with the HOW abstracted away.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
How do you get started with competitive programming and get well versed with various topics in it ?
What all things you can do ?
Get started directly or do some concepts first.
This is a very popular question on Quora, but is generally considered off-topic for Stack Overflow. The best way to use SO for competitive programming advice is to ask specific questions about problems you're having when coding a solution. For example, you might ask how a language feature works. Often you'll find that the question has already been asked.
Here are the 108+ Quora answers to your question: https://www.quora.com/How-do-I-become-a-competitive-programmer
The summary answer is: Get started solving problems. If you have any programming background, which I'm sure you do since you're asking this question, you'll get more benefit from just starting rather than reading a lot first. When you get stuck on something, that's the time to read books or online resources.
If you're having trouble deciding what to start on, here's a suggestion from my blog of how I would get started: http://www.redgreencode.com/about-project-462/
My 2 cents...
Best option is to get registered at the following coding sites..
+ topcoder.com
+ codechef.com
+ hackerrank.com
And, while you hack code here, you can build upon your programming foundation by learning more on
+ Data structures
+ Algorithms
+ Operating system concepts
+ Networking concepts and more ...
You could also start looking at the following books in this area...
+ The Algorithm Design Manual
+ Programming Challenges: The Programming Contest Training Manual
+ Competitive Programming 2
My advice would be to get registered with a Competitive Programming site if you know how to write simple codes in a particular programming language and solve the basic problems(the ones which does not require algorithms or require basic ones).
My suggestion on the choice of site is:-
1)HackerRank:-https://www.hackerrank.com/
Problems are well categorized here.Practice the questions marked 'easy' here followed by a few 'medium' ones.Complete the '30 Days of Coding Challenge' that would give you a good basic idea of the Java language.Also, check other's code and the editorial even if your code passes all the test cases.
2)SPOJ:-
Practice the problems categorized under 'ad-hoc' here.Start by solving the problems which are solved by most people...usually they will be easier.
3)Start implementing basic(or standard) algorithms. It is suggested to read them from Topcoder tutorials or Introduction to algorithms.Also, follow a standard book along with it.Now, practice problems based on those algorithms until you get familiar with them.
4)After you get acquainted with the most common algorithms start competing in coding challenges.Practice makes you better. Try to solve problems from previous contests. Solve as many problem A-s as you can until they give you some trouble. Then move on to B, then C etc.
Hope it helps :)
P.S. Also check the following answer on Quora:-
https://www.quora.com/What-is-the-best-strategy-to-improve-my-skills-in-competitive-programming-in-2-3-months/answer/Sachin-Gupta-6?srid=4gZ6
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Wolfram is about to release its "knowledge based programming language" but is it really a true programming language in the same way as C#, Java etc?
To avoid this being too subjective, I'll clarify that by "true programming language" I mean: is it Turing complete?
What qualifies as "true" for you? Do you mean Turing complete?
see From this answer
In general, for an imperative language to be Turing-complete, it needs:
A form of conditional repetition or conditional jump (e.g., while, if+goto)
A way to read and write some form of storage (e.g., variables, tape)
In Venture Beat's coverage of Wolfram's announcement of the language they write:
In other words, “South America” is not a variable to be assigned, or an object or class to be instantiated. It’s a phrase that is known and understood, with significance and meaning and connections that can be pulled into your program with very little effort, and no external data sources. And, that knowledge source is continually updating and growing to match the updating and changing world.
Source
Which makes it sound as if the focus of the language is on the Wolfram Database and various ways of manipulating this data.
Wolfram himself further says of the language
“The level of automation is incredibly higher than people could ever have before – it’s incredibly powerful,” Wolfram says. “Anything that WolframAlpha knows, your app knows.”
Source
Which once again sounds like what we're looking at is a scripting language aimed at harnessing Wolfram Alpha's combination of data + search algorithms.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Suppose I've been recruited to a university study testing a new AI, and we're going to do a traditional Turing test. I will sit at a computer and interact via text-based chat with something that is either a computer or another volunteer, and then have to guess which it is.
Suppose I've been given a particularly nice incentive to get it right. How can I improve my odds? What sort of things should I talk about?
Should I try to teach the chatter a simple new concept I just made up, and then quiz them about it?
Should I try to make jokes and innuendo and see if they "get it"?
Should I ask philosophical questions?
Should I try practical questions that humans tend to "irrationally" answer in a particular way?
Try some l33t speak, that might do it. Then again I dont even understand some of it at times. Maybe I'm a computer. Maybe you're a computer
Realize that the state of the art in chatbots is still abysmal. The biggest mistake you can make is to try to do something bizarre, in which case both a human and an AI might reasonably respond in a bizarre manner. Instead, just engage in a normal conversation and resist any significant deviations proposed by your correspondent. That should easily let you identify anything operating at the current published state of the art.
If you encounter something well beyond state of the art, I think the next threshold would be a directed inquiry into a aesthetic decision: "What's your favorite [movie|book|artist|meal]? Why? So would you say you never like...? Are there aspects of that you dislike...?" etc.
Since computer programs might be very logical and high performing, but have no experience of being a human being, I would suggest questions of type trivial everyday events that wouldn't get adequate answers on Google, likely. As questions about cleaning, small details on outfits, boring and irritating situations ...
And it might be a good idea to communicate in a spoken careless way with lots of words and sentences with clear and controversial statements of the above type only here and there.