A friend of mine, who studies game development at an university, is currently learning programming in OpenCL. What would be a simple project that teaches the most important aspects of OpenCL and can be finished within about 50 - 100 hours?
I suggest to your friend to implement a paper related to game development so it be will something he could put on his resume too and help him getting a job in this industry.
E.g. this one is interesting and roughly 100 hours of times:
http://www.unibas.it/erra/Papers/HiBi09.pdf
Related
Note: I tagged this under R because I am an R user, but the topic of this question is general, so I appreciate any input regardless of programing language.
Hello Everyone,
My company is expanding into a data-science/developer field and will be developing codes/scripts in the near future. I want to develop a standard practice for when it comes to sharing and archiving developed codes internally. The main point being would be if we develop a code today, what can we do to that code and around that code so that it can be readily understandable 5 years from now. Essentially, what are the best practices when it comes to code sharing and archiving it?
I did some research for this, so I understand the preference for DRY (Don't repeat yourself) to WET (We enjoy typing), having a top level README, readable and easily to understand comments, as well as having screenshots or examples of the finished product. What are your thoughts on these practices, how could they be improved?
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have studied mathematics, but that was long time ago. I have been a programmer for 8 years but when I started to study concepts in AI and data mining I find it very difficult to understand the theory.
Now I have wasted 2-3 years and I have got nothing. I need to first understand the math concepts required to learn AI and data mining.
I don't know where to start. Which books and tutorials do you recommend I should start with from the AI point of view.
How should I go about obtaining the fundamental requirements to use AI and Data Mining concepts.
EDIT:
I got this list from internet
Matrix algebra: most machine learning models are represented as matrices and vectors. Concepts like eigenvectors and singular value decomposition appear all over the place.
Bayesian statistics: probability, Bayes' rule, common distributions (e.g., beta, Dirichlet, Gaussian), etc.
Multivariable calculus: most learning techniques use gradients and Hessians at their core to fit parameters. (If you want to get fancier, study numerical optimization.)
Information theory: entropy, KL divergence, etc. Just the basics here.
In limited cases, higher-level math can be useful. E.g., to understand manifold learning, you'll want to know some basic notions from geometry and topology. Occasionally abstract algebra is used (e.g., see "expectation semirings" for learning on hyper-graphs). I would learn these as-needed, but if you have a chance to learn them early it can't hurt.
Can anyone recommend some books on those
My resource for studying math : http://www.khanacademy.org/
You will be able to find A LOT on all math fields.
I agree with #Lostdreamer that KhanAcademy.org has great material for learning various math concepts.
For an excellent introductory online course on Machine Learning I highly recommend the Machine Learning course being offered on Coursera.org. It is taught by Stanford Professor Andrew Ng You can watch the videos as many times as you need to understand the concepts.
The exercises and programming assignments help drive home the concepts.
I recommend that you register for it the next time it is offered. Here's a link to the course registration page.
Here's a link to a preview of the material in the course.
The course contains a basic review of linear algebra including basic matrix concepts that help me review this material.
I highly recoment #HeatfanJohn 's course, I've already made it, without any knoledge of AI and it turned out pretty good, the teacher is amazing and the course is extremely clear, try it!
In addition I made this other AI course in the same time as the other. This one is much more general, you will learn a bit about everything in AI and there are not any previous knowledge you should have. If you are not used to do math, this one is easier than the ML one (in ML you need to make exercises in matlab, that are sometimes a little bit tricky) but I found it more interesting for a general overview.
I highly recommend you to do both
https://www.ai-class.com/
One you become addicted to AI (you will for sure if you make this two courses!) I reccomend
Udacity, an amazing computer science free online "university". The best teacher in the world teaching you awesome things for free. If this is not awesome enough I'll tell you that the AI class teachers made this web page. One is Google's research director (Peter Norvig) and other one is the guy that made the first autonomous driving car (Sebastian Thrun). Awesome people
My school has entered into a Robotics Tournament that competes several schools against each other(this is my school's first year). The objective of the robot is to shoot a ball into a hoop. I am a member of the Programming team. Our job as the programmers is to program a robot and a computer to control the robot. The computer has 2 joy sticks attached to it, one for moving the entire robot(spinning the wheels and causing the robot to move) and one is for the "throwing arm". A signal is going to be sent from the computer to the robot using wifi. All of the programming MUST be done in LabView.
I have never heard of LabView before until i joined this club and i have my doubts about it. The reason why we must use LabView is because most of the kids on the programming team have no programming experience whatsoever. LabView has to be able to interface with the joy sticks and then send that information to the robot using wifi. The micro controller on the robot supports LabView.
Now to my question, is LabView dynamic enough to preform this task? Can LabView even support networking? Can LabView even interface with the joy sticks? I have read a lot of the documentation for LabView from this website:
http://www.ni.com/gettingstarted/labviewbasics/environment.htm
My concern is that LabView is not dynamic enough for what we are trying to use it for as a team and we are going to have to program the computer and the micro controller using C. There are only 2 people on the team who can program sufficiently in C so we would have to teach the rest of the members the basics of C.
All relevant answers are welcomed and appreciated.
LabVIEW can totally do this. I am biased: I've written a textbook on it and am teaching classes:-); I also do this for a living. In comparision to C, well, C can do anything, but LabVIEW does hardware on a much higher level. Doesn't mean I don't like bending pointers for a bit; but it's nice to not care about low-level functions for a while.
Interfacing a joystick is pretty simple, it looks like this: http://digital.ni.com/public.nsf/allkb/CA411647F224787B86256DD000669EFE
To interface Wifi, it depends on how the robot should receive the information. TCP/IP would go like this: http://zone.ni.com/devzone/cda/tut/p/id/2710
I'm not sure what you mean by "dynamic enough", but it's certainly possible to create such a system in LabVIEW, and if the users have no experience, they're probably more likely to succeed if they use LV and they're probably going to enjoy it more. There are certainly many groups who use LabVIEW.
There are people who volunteer as mentors for FRC groups, so I would suggest you ask FIRST or your local NI office if they know of anyone (whether C or LV) who can help your group. If you ask NI, they might also be able to help you in other ways.
There's also a similar discussion here - Textual versus Graphical Programming Languages
The web page you provided is very introductory, "Hello world!" like. Just by learning that you can not get an idea about the LabVIEW potential. Sure you can do everithing with C, but with LabVIEW you will make the same task faster and I don't think you will need more than 2 team members working on the program.
LabView is dynamic, especially for the purposes of robotics club. A white paper outlines some of the possibilities. http://www.ni.com/white-paper/14133/en/
A great resource for people participating in robotics club is the Raspberry Pi website and blog. It is an excellent site to discover what others are doing and creating.
Consider studying the potential of robotics arms and reading white papers from companies that develop them for purposes such as laboratory automation. This is information that could help you if you decide to do this as a career. http://www.hudsonrobotics.com/products/microplate-handling/
I want to learn ASP.net 3.5 effectively, but I have no fluent knowledge of any other languages.
Now the scenario is that span of time is very less and in short time I have to be upgraded with ASP.net skills.
So I am interested in fast and effective way to learn ASP.net 3.5.
I have to start from scratch.
Please..please........I want solution as soon as possible.........
And please mention good books and online material.
Thanks.Waiting for reply.
First thing is to drop statements like: "I want solution as soon as possible". To learn something new takes time and you'll need to cool down before getting results.
I strongly recommend you to build something for yourself. This way you can deal with new requirements and schedule pressure. During this process, you'll need to see how other people do same thing, and then to download some sample codes.
EDIT: I think you should start doing that every application does: trying to access a database and changing data. This path will lead you to know more about Entity Data Model and LINQ. So you can go to code your front-end. You can take a look at NerdDinner website for MVC samples.
There are plenty of good tutorials at asp.net/learn.
If you're interested in ASP.NET MVC (Microsoft's latest web UI framework) then there's a good set of tutorials at asp.net/learn/mvc/#MVC_Overview
It might be worth mentioning that you have a choice of programming languages to use; VB.NET or C#. If you are new to programming then you might want to spend some time getting comfortable with one of these initially, as well as familiarising yourself with the underlying .NET Framework.
If you can provide more details about what you need to achieve, as well as your programming background then people will be able to provide advice that is more specific to your situation.
It takes about ten years, as does learning anything worthwhile.
The best way to learn a new set of development skills is total immersion in a project. Build your own website and follow along with a book or two, make some mistakes and fix them, and in general endure all the rough-and-tumble that development involves. Along the way, make sure you're investing good time in writing solid unit tests, so that you understand what they're for and why you should be writing them.
If you've never programmed before, this is going to be rather challenging as a first project. ASP.NET MVC requires understanding, if not fluency, of many different pieces of web development. But dedication, persistence, and curiosity will be enough to win out here.
I think reading a good book while implementing some basic website will be your best approach.
My personal favorite, with good inside examples and good practices is Pro ASP.NET MVC
Get a book like ASP.NET 2.0 Website Programming from Wrox Press and work your way through it from beginning to end. Immerse yourself this this project, follow all the steps and understand every step along the way.
Microsoft offers 2 distinct Web development systems - "Classic" ASP.NET WebForms, and MVC. In my opinion MVC is more "pure" to the web philosophy but is trickier to learn, the controls aren't as rich and varied, and there are fewer resources to help you. WebForms have been around much longer, there are thousands of books and helpful sites, and there are probably more job opportunities.
Good luck. If you're smart and work really hard, you should have no trouble.
Saying you want to learn ASP.NET from scratch is like saying you want to learn to build a house. You can get a book that shows you how to saw lumber or nail boards together -- but there's a lot more to building a house than any book can effectively communicate.
Learning a specific control or a narrow skill can be done in a few days, but really learning ASP.NET from beginning to end is a multi-year project -- particularly if you have to learn the language too. Learning C# well could take a year by itself.
Experience is the best teacher. If you can get a mentor of some kind involved, that's even better (just like how carpenters need to apprentice for some time before they're ready to build a house by themselves).
In all seriousness, start with at least 3 years at university doing a computer science/engineering course of some description.
There is no fast and "effective" way of learning to program and being any good at it. There's a lot, lot more to software development than just the code as anyone who has been doing it for any length of time (and cares about their craft) will attest to.
Can you define what exactly do you mean by "learn effectively"? Do you mean that you want to be able to write code like Jon Skeet at the end? Or do you mean that you should be able to handle the job of a junior developer? There is a lot of room between those, to say nothing of you not stating how you learn best: Do you absorb information best from reading, seeing, doing, or some other format of data? How good are your Google skills? How well do you know of MSDN and the massive amount of information contained within?
Scott Gutherie's blog may not be a bad idea for another resource to consider. Another point to consider is however fast you want to learn 3.5, there will soon be a 4.0 that may be out sometime this year as part of Visual Studio 2010.
I'm a totally blind individual who would like to learn more of the theory aspect of computer science. I've had an intro data structures class and the general intro programming but would like to learn more on things such as software design, advanced data structures, and compiler design. I want to do this as a self study course not as part of college classes.
Unfortunately there aren’t many text books available on computer science from Recordings for the Blind and Dyslexic where I normally get my textbooks. I would appreciate any electronic resources preferably free that could help me get more of a computer science education rather then the newest language or platform that a lot of programming sites appear to focus on.
You might find the Experiences of a Blind Computer Scientist a good read.
MIT's Open Courseware would be a good resource for you with the amount of videos/audio they have.
Really though, for the core computer-science topics I find it pretty hard to beat some of the better textbooks out there. Some offer digital versions of their book with purchase and some don't. For those that don't, I would just purchase the book and then download via a torrent site a digital e-book equivelant. Since you already own the book I don't think this would be a major problem.
UC Berkley has a couple of computer science courses online for free as mp3 and video files (including RSS feed for each course). And if reading PDF files aren't an issue you could check out O'Reilly's Safari.
The text book for Structure and Interpretation of Computer Programs appears to be accessible. Software engineering radio is a good podcast that I listen to but recently has focused a lot on model driven development and UML which doesn't interest me. The UC Berkley
lectures are of varying quality, it's like all other college classes it depends on the professor. I've found I can follow along with the cs162 lectures fine but not so much with the cs61b. Part of this is because of the professor and part is probably because 61b is more math heavy since it's a data structures class. Unfortunately the RSS feeds are useless since the file names are meaningless. I used my podcatcher to download the entire lecture series, then used the converting capability of foobar 2000 to rename the files with there track number so I could listen to them in order. I've used Safari at work before and it is accessible although to expensive for me to get a yearly subscription. Open Courseware appears to have a lot of good stuff. Unfortunately I don't use itunes so instead of downloading each mp3 file individually I used the firefox extension DownThemAll! with a custom filter to grab all the mp3 files at once from the specific course I wanted. Another series of books that looks useful are the data structures books by Bruno R. Preiss several of which are available online at
http://www.brpreiss.com/books/opus5/
Some of the equations are represented as graphics but I can often tell what the general idea is by context.
I wonder would the Structure and Interpretation of Computer Programs video lectures by Hal Abelson and Gerald Jay Sussman be of any use?
If the audio content is enough on its own without the video, they are an excellent digital resource.
The podcast "software engineering radio" is excellent. Though not CS courseware, it is the most academic and intellectually stimulating podcast I have found about software development and computer science.
http://www.se-radio.net/
personally I am just blown away by the questioner. I mean, the challenge alone of programming is too much for most people but being without the primary sense used in the task is amazing to me. What is ironic though is I bet that given this challenge the questioner is still FAR more adept at most CS tasks than the people I work with day to day. Just saying.
I'm also a totally blind programmer, currently working for Microsoft. The most valuable resource for te technical books is Safari (safari.oreilly.com). You can read thousands of computer science texts there. if you're in the USA, you can also get many of those titles for free from BookShare (www.bookshare.org). In both cases graphical images will be an issue, but there's no easy solution for that. Most good books have enough descriptive text that one can manage without the diagrams.
I to am a new blind programmer! I only lost my vision 5 years ago. Anyway, I have been programming in Visual Basic 2008 throughout the past year. It turned out to be more accessible than I had at first suspected.
I start a Java class next semester and the required text is a free online text! It is posted below.
Introduction to Programming Using Java, Fifth Edition
http://math.hws.edu/javanotes/
Can some of you seasoned blind programmers share with us any blogs or websites where other blind programmers can be found??
Check out this Stack Overflow question about podcasts.
A language called Quorum is a lot like Python but optimized across a few more syntactic details, and the corresponding development environment is designed with the blind in mind. https://quorumlanguage.com/ This might fit especially well with the use case where most students are using Python.
A 2016 blog about CSed (actually a response to a blog post) points to
program-l discussion board for blind programmers at https://www.freelists.org/list/program-l
The EPIQ conference for blind and other programmers interested in Quorum
https://quorumlanguage.com/epiq.html
Also, see other ideas in a similar question on another SO site: https://cseducators.stackexchange.com/questions/3441/teaching-a-blind-high-school-student