Any (and every) computer science / programming curriculum covers at least these basic data structures and algoritms. It should be good to have them in FCC, as I think, it would give a more serious and solid curriculae build up.
Perhaps adding these in a “Advanced DS and Algs” module…?
They are in the FCC curriculum, in the Coding interview prep section. https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/
When the basics are sound, and the budding coder is ready for further challenges beyond the core tracks, that’s when the Coding Interview Prep questions come in REALLY handy.
Sorry for the delay, had login issues. They’re not in the FCC curriculum. The curriculum covers 6 modules, and “Coding Interview Prep” is not one of them, you can’t get a certification for that module.
Array and Objects are indeed data structures, but not the data structures you will learn in computer science or programming course. Saying that an Object is a data structure is like saying we live in the universe, it’s true, but misses the point by a wide margin. The same goes for an Array, a Binary Search Tree when is complete, has an easy and efficient representation using an array, will you say a BST is an Array? Of course not.
Sorry for the delay, had login issues.
I agree that that JS’s data types aren’t the same sort of data structures, which is why I would call it a programming course like the others, not a CS course. I’m not a fan of any “practical” language for teaching CS: I agree Python would be slightly better choice in many respects, JS could be made to work too, I suppose. Still, I’d prefer a mythical language with a rich type system and comprehensible error messages, BUT…
Arguments over the specifics like choice of languages can be bandied about til the cows come home. What it boils down to is that someone does have to write the curriculum, and a CS course would without a doubt be the most challenging one to write.
I don’t dispute that there are very good reasons to consider more advanced data structures, simply that the lesson you’re pointing to is very introductory.
Everybody talks about the weather, sounds to me like you might have both the skills and the desire to do something about it.
I too prefer a mythical language. In fact that’s my backround, C/C++/C#. But, considering the fact that people in fCC exclusively work with JS, then maybe something JS-like could be the right choice in order to lower the learning curve. Perhaps a pseudo-code language with much simpler semantics than JS (no
var with matched scope visibility, and fixing the unintuitive
unshift, and several other minor changes…)
I would be most pleased to write down the curriculum for peer reviewing by the community, any ideas who I need to contact?
Of course the lesson I’m pointing to is very introductory, I thought that was the point in fCC: to have 2-minute long lessons that build on each past one. Besides, it would be an “Introduction to Agorithms and Data Structures”, which would be followed by “Intermediate…”, “Advanced…” and (perhaps) “Expert…”, in those levels you can throw in the rest: Ukkonen’s, Graph search, Skiplist, Brodal lists, and many many other concepts out there…
I’m definetely not a person that just sits and talks (about the weather or anything else ), I like to get involved, and in this particular case I’d love to get involved head on, hands on. Do you know who do I need to contact for that?
I’d like to add that in many of the coding interview prep (specially in the Project Euler section) you need to know your algs and DSs because the point is to tame computational complexity.
Hey @jsilvao, fcc is an open source project - you can fork fcc on github, add module locally and then do a pull request. Submitting github issue that explains the reason for your contribution would definitely help with approval of your PR.
Will do @iiiked, thank you.
I’d love to be part of curriculum design, and while I don’t exactly have a hectic schedule, I’ve been recovering from a year of “life happening” and just haven’t had the spare attention that such an undertaking would deserve. So for now I throw out opinions from the peanut gallery, but don’t want to otherwise put myself in anyone else’s way.
I do have a web-based teaching project percolating in my head lately (on teaching HTML5, not computer science), one I hope I soon get the spare mental cycles to start working on. Basically it’s a combination of “minimalist” and “continuous”, hard to otherwise describe. I imagine one could possibly use the same approach for teaching CS too.
Naturally I’ll contribute whatever part of it I can to FCC, so I can be a bit less “all hat, no cattle”
The Coding Interview Prep section has some of these CS topics, but still lack a lot. Plus, it only provides a shallow treatment. I’ve sucessfully set up fCC locally for developing and contributing. I’m currently mid-way on an “Introduction to Algorithms and Data Structures” proposal for the curriculum. Let’s see how it’s received. Cheers!
We are not accepting any new challenges to the current curriculum. Anything brand new would need to be introduced in the new curriculum repo.
Will do, thanks for the info!