There is a new section on Brilliant's page, yes, about computer science that focusing in Data Structure and Algorithms. I just want to start the discussion, how start about this new section? Suggestions about books, opinion, experiences, etc.? Or Programming Languages required for this section?
Anyone response, thanks very much :)
Easy Math Editor
This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.
When posting on Brilliant:
*italics*
or_italics_
**bold**
or__bold__
paragraph 1
paragraph 2
[example link](https://brilliant.org)
> This is a quote
\(
...\)
or\[
...\]
to ensure proper formatting.2 \times 3
2^{34}
a_{i-1}
\frac{2}{3}
\sqrt{2}
\sum_{i=1}^3
\sin \theta
\boxed{123}
Comments
It seems to have been developed with Python in mind. Codecademy.com is a good resource to learn programming.
Log in to reply
But it seems to me as someone who has been programming for about a year that for a programmer it is quite easy to do, so the levels only really chart the first few months of learning. anyone else think that? As to your' question, project Euler provides good questions on all levels from beginner to genius to show your progress, stack overflow is a forum where not only can you ask questions but if you type your syntax error into google it will normally have a question related. http://www.python.org/ also has some stuff about lists and dictionaries that i've found useful.
Log in to reply
True, the levels are quite basic as of now. Based on the current problems however I'd say that your best bet is to actually learn competitive programming via sites like USACO training gate and the sorts. You don't even have to focus on python; such pseudocodes are quite easy to read once you've familiarized yourself on a language. Project Euler does contain similar problems, but I don't think you'll be able to cover the harder problems (such as my last diagnostic problem, an LIS) by practicing through PE only.
@Andrias: About books, try "Competitive Programming" (and the 2nd edition too) by Steven and Felix Halim if you're interested more about it, or perhaps the "Introduction to Algorithms" if you want to understand more about computer science. Both should show up at the top of google searches, if you're interested
Log in to reply
Thank you all for the response (Ricky E. and Catherine W.), yes, now, I am still learning both of Python and C Programming Language. I am not experienced more about programming, right now, I have a problem about logically to solve (algorithm) and the syntax (it can be learned forward). Maybe anyone may share the experiences about this? Thanks again
Log in to reply
It doesn't take to much knowledge of the language to know how to solve the problems. The questions are basic computer science problems. The only way to get used to them is to solve harder problems on other sites,the forums on www.projecteuler.net are a good place to start. On algorithms,I think most of the harder problems are bruteforcable so you don't necessarily need to devise the optimal algorithm,you can just read about it when the solutions are posted in the next week.You then gradually expand your knowledge on advanced techniques and algorithms but for the time being you can just make up your own.
Log in to reply
I recommend Learn Python the Hard Way. The entire book is available online for free, and is a good introduction.
If you don't feel like figuring out how to get Python working on your computer, I recommend CodeSkulptor for programming in Python in your web browser. Just type in some code and then click the "play" button to run it and see the output.
Log in to reply
Thank you very much, Suyeon K. Thanks and thanks again for suggestion.. :)) Let's go for the practice and practice..
i want the brilliant staff to post questions with c++ programing
Log in to reply
This section is not Computer Programming rather Data Structures and Algorithms, one must be concerned with logic and that can be implemented in any programming language. And also python is easy to learn, as it is good for quick and dirty algo implementation.
As Greendragons says, you are welcome to solve the programming problems using any language you wish.
We will sometimes use python in our questions and example solutions, because Python is easy to read and learn for CS students with a variety of backgrounds.
I think study C++ or JAVA might help you~
Log in to reply
Right now, I am still studying both of Python and C.. I just want to focus about my weakness in logically and syntaxly on programming (means algorithms).. But, thank you Qing Y. :)
For algorithms Introduction to Algorithms by CLRS is good reference book. But if you want to get into details of analysis and programming aspects refer Art of Computer Programming Series by Knuth.
Log in to reply
thanks for suggestions, Greendragon X. Maybe what about the logic skill that train our algorithm?
Log in to reply
Well for logic skills all i say is Practice! Being a good programmer is not about being skilled with programming language syntax or able to write big codes rather writing it efficiently, and that is the trickiest thing. For that one must be familiar with Designing of Algorithms. One problem can be solved in many ways, but ones aim must be to solve problem quickly and correctly. Those skills can be acquired by studying books i mentioned. I don't see much of difference between mathematics and Writing good algorithm, but requires some tools and most important <strong>CREATIVITY</strong> to create your own ways. For example consider a problem: You are given two list of numbers one list has n numbers in some order and other list has n+1 numbers but in different order. You are asked to find out this extra number in second list. How would you proceed to solve it. <br /> ex: <br /> list1 = {4,1,5,2} <br /> list2 = {1,5,2,4,3} -- here 3 is extra element. <br /> Naive way would be to select each element of list1 and search for it in list2. <br /> But clever way is to add all numbers of list1 and list2 and extra number is list2 - list1. <br /> That was simple example i gave, problems can be very tricky and there are tools to solve it efficiently like Dynamic Programming, Divide and Conquer, Greedy Algorithms etc. <br /> If you go through the problems of the books you will certainly develop the logic part. :)
Log in to reply
Thank you again, Greendragons X for give an example too.. Nice to share..
I love the section! I have some questions though: Are we allowed to submit programming problems through the website like we would math/physics problems?
Also, are students elected to submit solutions like in the other sections? If so, what would constitute a solution - algorithm, code, etc.?
-Michael
Log in to reply
Glad to hear you are enjoying it! As of right now, we aren't accepting user-submitted problems and solutions for Computer Science, but we will in the future.
the Staff of Brilliant, please :) same the discussion also discussed in this thread.
Honestly you can use any programming language you want (that's what I like about this set of brilliant questions).. I have been using JavaScript :D
Perhaps pseudo-code will be a good way to share solutions?
Log in to reply
I agree as the Sam L said. You can choose many of programming language what you like to solve your problems in Computer Science section. Nice, the pseudocode :)) the implementation depends on programming language..
For c++ book,c++prime plus is a good one.
Log in to reply
thank for suggestion :)
it is not bad
Log in to reply
how?