×

# Computer Science - Data Structure and Algorithms

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

Note by Andrias Yuwantoko
4 years, 7 months ago

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold
- bulleted- list
• bulleted
• list
1. numbered2. list
1. numbered
2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in $$...$$ or $...$ to ensure proper formatting.
2 \times 3 $$2 \times 3$$
2^{34} $$2^{34}$$
a_{i-1} $$a_{i-1}$$
\frac{2}{3} $$\frac{2}{3}$$
\sqrt{2} $$\sqrt{2}$$
\sum_{i=1}^3 $$\sum_{i=1}^3$$
\sin \theta $$\sin \theta$$
\boxed{123} $$\boxed{123}$$

Sort by:

It seems to have been developed with Python in mind. Codecademy.com is a good resource to learn programming.

- 4 years, 7 months 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.

- 4 years, 7 months ago

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

- 4 years, 7 months ago

wow, Thanks Joshua A. Thanks again for recommendation. What is LIS?

- 4 years, 7 months 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 again

- 4 years, 7 months 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.

- 4 years, 7 months ago

Thanks for the answer, Thaddeus A. I am new on Computer Science. Your explanation is clear, understood, thanks again for your sharing :)

- 4 years, 7 months ago

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.

Staff - 4 years, 7 months ago

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

- 4 years, 7 months ago

i want the brilliant staff to post questions with c++ programing

- 4 years, 7 months 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.

- 4 years, 7 months ago

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.

- 4 years, 7 months ago

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

- 4 years, 7 months 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.

- 4 years, 7 months ago

the Staff of Brilliant, please :) same the discussion also discussed in this thread.

- 4 years, 7 months ago

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.

- 4 years, 7 months ago

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

- 4 years, 7 months 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. :)

- 4 years, 7 months ago

Greendragons X, this is clear explanation :). Yes, you're right, Practice! more and Creative! Is mean that the programmer should solve the problems efficiently instead of effectively?

Thank you again, Greendragons X for give an example too.. Nice to share..

- 4 years, 7 months ago

- 4 years, 7 months 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. :)

- 4 years, 7 months ago

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?

- 4 years, 7 months 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..

- 4 years, 7 months ago

- 4 years, 7 months ago

how?

- 4 years, 7 months ago

For c++ book,c++prime plus is a good one.

- 4 years, 7 months ago

thank for suggestion :)

- 4 years, 7 months ago