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 :)

## Comments

Sort by:

TopNewestIt seems to have been developed with Python in mind. Codecademy.com is a good resource to learn programming. – Ricky Escobar · 4 years, 1 month ago

Log in to reply

– Catherine Wooller · 4 years, 1 month ago

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

@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 – Joshua Aristo · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

wow, Thanks Joshua A. Thanks again for recommendation. What is LIS?Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

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 againLog in to reply

– Thaddeus Abiy · 4 years, 1 month ago

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

– Andrias Yuwantoko · 4 years, 1 month ago

Thanks for the answer, Thaddeus A. I am new on Computer Science. Your explanation is clear, understood, thanks again for your sharing :)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. – Suyeon Khim Staff · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

Thank you very much, Suyeon K. Thanks and thanks again for suggestion.. :)) Let's go for the practice and practice..Log in to reply

i want the brilliant staff to post questions with c++ programing – Ayushi Agrawal · 4 years, 1 month ago

Log in to reply

– Greendragons X · 4 years, 1 month ago

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.Log in to reply

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. – Maryann Vellanikaran · 4 years, 1 month ago

Log in to reply

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 – Michael Tang · 4 years, 1 month ago

Log in to reply

– Maryann Vellanikaran · 4 years, 1 month ago

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.Log in to reply

this thread. – Andrias Yuwantoko · 4 years, 1 month ago

the Staff of Brilliant, please :) same the discussion also discussed inLog in to reply

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. – Greendragons X · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

thanks for suggestions, Greendragon X. Maybe what about the logic skill that train our algorithm?Log in to reply

– Greendragons X · 4 years, 1 month ago

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.. – Andrias Yuwantoko · 4 years, 1 month ago

Log in to reply

I think study C++ or JAVA might help you~ – Yunhao King · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

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. :)Log in to reply

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? – Sam Leo · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

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..Log in to reply

it is not bad – Attain k Gupta · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

how?Log in to reply

For c++ book,c++prime plus is a good one. – Yunhao King · 4 years, 1 month ago

Log in to reply

– Andrias Yuwantoko · 4 years, 1 month ago

thank for suggestion :)Log in to reply