"You should take this class if: 1. You write code well OR (you don't yet write code well AND have a lot of time to devote to the class); 2. AND you find these systems topics interesting.
The people that found the class valuable in the past were entirely drawn from this demographic. (In particular: I would not take this course if you were looking for an easier way to satisfy a cs140 requirement.) We are trying to go as far as possible as quickly as possible with a group interested in doing so." [emphasis mine]
Also of note is that it seems to be in Rust now.
I would assume not
Genesereth and Kochenderfer also have books on the subject; Kochenderfer's is extremely good (I haven't read all of Genesereth's).
[2] https://web.stanford.edu/class/aa228/cgi-bin/wp/ and https://web.stanford.edu/class/aa229/cgi-bin/wp/
0. A function A(s) to generate actions (moves) A given a state s:
1. The state evaluation function v(s) to distinguish good from bad states. I would start by using only piece value, then add mobility, piece-field values, ... You can find a few simple elements of such a function here: http://manual.freeshell.org/gnuchess4/HEURISTICS
With this you can generate s'=as (Successor state is action a applied to state s) and choose the action a=argmax(v(s))
2. A simple minimax implementation that searches the possible moves https://en.wikipedia.org/wiki/Minimax
From there you start optimizing your both by adding additional features to the evaluation function and improving your search using pruning and caching
Now finding heuristics there given only the game description is a completely different set of problem but for quite a few Chess-like games it boils down to valuing pieces (proving that something is a piece is a problem by itself), positions and combinations thereof which again all are derived of "mobility", i.e., the number of possible moves in a given situation.
In that sense, piece value is a mere "maximum mobility" indicator per piece. Positioning is a "real mobility indicator" but not only affecting your own mobility but also reducing your opponents. Check is then a mere reduction of your opponents mobility, promotion is a great enhancement of your piece value and castling a way of reducing the chance of "immobilizing your position" via check.
TLDR: Machine Learning aside, you could also deduce all Chess heuristics from first principles.
There's no perfect textbook for this class, but there are some relevant books:
Data Structures and Network Algorithms by Robert E. Tarjan (covers BSTs, splay trees, link-cut trees)
Open Data Structures by Pat Morin (covers BSTs, B-trees, hashing, and some integer data structures)
These are fantastic programs that cost only $7-10k. https://omscentral.com has reviews of the classes, for the curious. My personal favorites are:
- Reverse Engineering and Binary Exploitation
- Reinforcement Learning and Decision-Making
- Bayesian Statistics
Favorites so far for me were AI4R (Ariticial Intelligence for Robotics) which is a more rigorous version of Udacity's Self-Driving Car course, ML4T (Machine Learning for Trading) where you implement various algorithms to optimize trading strategies, and ISYE 6501 (Intro to Analysis), which is a survey of various analysis techniques and ML algorithms.
Still have to take the reputed hardest course in the program, the General Algorithms course, the ML course, and an elective.
Worth the money, though I have had to skip a couple of semesters due to burnout. Work and this program are hard (for me).
Pandemic has been hell for me, too.
For me, this semester, I finished a group project where we coordinated over slack/google hangouts. After that project, I didn't have anything left to finish the semester. I felt like I was done because the reinforcement loops I get from work (virtual back-clapping) were done and I had a hard time separating that from the "here's the next task. Also no one is talking to you about what needs to be done."
It was certainly nothing like just hanging out with colleagues in the cafe between classes, but for those (like me) who just can't go to a school like GT in-person, I'm glad the opportunity is available even though I'd say it's probably the hard-mode version of the program given the limited course catalog (not all courses are integrated into the program yet) and lack of in-person interaction.
- Build an 8-bit computer from scratch video series - https://eater.net/8bit
- CPython internals: A ten-hour codewalk through the Python interpreter source code - https://www.youtube.com/playlist?list=PLzV58Zm8FuBL6OAv1Yu6A...
Videos: https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62...
Book: http://www.mmds.org/
The map reduce stuff hasn't aged well but the model for thinking about complexity in distributed systems is worth the price of the book alone.
- MIT 6.824 Distributed Systems also on Youtube
https://ocw.mit.edu/courses/electrical-engineering-and-compu...
OpenCourseware was historically one of the first offerings of its kind. I remember using it almost 20 years ago, and it's still a great offering.
Pretend I want to learn web development. I have been doing desktop programming and data analysis for many years, so I know all about programming but nothing about how a web-app works.
I would be looking for something that explained web apps assuming I know little to nothing about them, but not "how to program" because I don't want to sit through learning about loops or variables.
And pretend I'm also the type of person that wants concepts and not just tutorials.
Anything like that?
I'm going back to physical university and the driving factor was the inability to get help when I needed it. I tried a few coursera courses and many of my questions sat unanswered on forums for days and even weeks. I'd be happy to pay a reasonable premium for timely access to experts on the subject like you get at a real university.
I already have a Cs master but I would like to work in the US for a couple of years instead of Europe.
Also, I would like to be challenged again as web dev isn’t challenging, not where I work that is.
I applied for the CSI program and really hope I get to do it this coming year. I got a ton of value out of the above course ($1800).
The CSI course is 10-20 hours a week for the year.
Lastly, up to this point I've been self-taught through Udemy. The problem with that is, sometimes, if you're stuck on something, it might take you 8 hours or more to figure it out. Where if you have someone knowledgeable, they can explain it in 15 minutes. Bradfield seems to do the best at that.
I've tried hiring a tutor outside of a MOOC and asking them for help, but it wasn't quite the same as a teacher who is actively engaged with the material.
That general cynicism about paid education notwithstanding...
Having looked over Bradfield's curriculum, I think they've made some very savvy choices, that would definitely benefit students. Also I know two Bradfield alumni, who were both quite pleased with their experience there (though neither went for long enough to spend 20k USD). I think you can probably do a lot worse than Bradfield.
Let's see the options:
- A masters degree outside USA, it is probably way cheaper and extremely more prestigious, with better job prospects connections.
- A masters degree in America, it more expensive, but gigantically superior in all the other points.
- An online masters degree like Georgia Tech. Better, cheaper, more prestigious.
- A CS degree online at OSU: https://ecampus.oregonstate.edu/services/tuition/?p=computer.... 1.5 X as expensive but you will get a real degree (No ABET accredited).
- Coursera/Udacity/Edx. 10% of the cost, courses taught by first-rate universities.
- OCW: Totally free.
- FreeCodecamp: Totally free.
So this program has the cost of Ivy-League universities program with 0 of the benefits. If you think this is a good proposition for your career, I as a hypothetical recruiter, would highly question your common sense as a prospective employee.
He also released his source for Value Oriented Data structures
Juan Pedro is a next level programmer who I think has pushed the craft forward through his work on bringing Value Oriented Design into the C++ world.
Talk I https://youtu.be/sPhpelUfu8Q
Talk II https://youtu.be/SAMR5GJ_GqA
Data Structures: https://github.com/arximboldi/immer
Application Structure: https://github.com/arximboldi/lager
Text Editor: https://github.com/arximboldi/ewig
Good luck.
There are other patterns but this one works fairly well for simple time-travel undue / redo operations.
It's a (organised) dump of advanced courses from some of the best researchers in the field.
It covers foundational topics like asymptotic notation. However there is some reading required if you a C in high school calculus like me.
So if you're going to play the lottery understand that the EROI is actually lower on patterns that humans may follow (like 5-10, birthdays etc) .
Specifically I'm working on an advanced algorithms course (think CS 3XXX in university). Should be out in a few weeks
It feels like this site is pushing me very hard to "sign up". I immediately feel that I'm being conned in some way and feel an irresistable urge to close the tab. Bad vibes.
Can you point me to what I'm missing?
Specifically I'm working on an advanced algorithms course (think CS 3XXX) in university. Should be out in a few weeks
So an advanced course would be about data science, cryptography, machine learning, vector calculus, autonomous vehicles, object recognition or some other “vertical.”
Do you know which direction you want to go in and what you want to learn? Depending on that answer you might get a different recommendation.
Having said all that, the answer is Udacity.
Reddit has also this pretty great list of advanced courses in ML: https://www.reddit.com/r/MachineLearning/comments/fdw0ax/d_a...
There is this from MIT (Graph Analysis) https://people.csail.mit.edu/jshun/6886-s18/
I like the distributed systems class too (The assignments are in Golang) : https://pdos.csail.mit.edu/6.824/
My "loose" definition of advanced: "If you follow the class and do the work you will be able to implement something not trivial"