Design of Computer Programs
Learn how to model problems, and how to optimize performance by using some of the advanced features of Python.
Reddacity may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Udacity. Thank you for using these buttons to support Reddacity.
Reddit Posts and Comments
0 posts • 88 mentions • top 15 shown below
78 points • vittore29
https://www.udacity.com/course/design-of-computer-programs--cs212 is really good. It is taught by Peter Norvig, and pretty much any educational content by Norvig is well worth the time and efforts.
8 points • karlpoppery
Design of Computer Programs on udacity
3 points • bfafggofwrs
There's a course at Udacity too that he did
3 points • Dracunos
has anyone tried these two tutorials?
I recently came across these two tutorials that seem perfect for my skill level (on reddit of course).
newcoder.io - five lifejackers
https://www.udacity.com/course/design-of-computer-programs--cs212 - udacity's design of computer programs
I've been looking for something like this for a while, the problem is they both look like very long courses to work through, and I don't want to jump around.
If anyone has gone through both, which would you advise someone to take first? (after a basic python tutorial like lpthw).
3 points • Kavignon
I love the book from Scott! I’m currently designing business services and my domain model for an internal web application I’m leading and developing at work with F#.
What precisely would be hard for me to grok in chapter 7? Is there anything I can do and tKe a look at to make it less hard? 😄
Oh and btw, your book has been bookmark on my list for things I was keeping a close look at. The abstract I found for it a couple months ago looked great and it felt right for me since I desire to grow as a developer.
I want to learn more and more tools and come up with better designs for my solutions and your book falls perfectly into what I’m looking for along with this course from Udacity:
Finally, concerning the F# repository, thanks a lot! It sounds like a good way to follow along and apply what I’m learning through my language of choice. There are things I guess might be complicated for me and in those cases, I could join reach towards the F# community to solve those hardships. I’ll send you a link to it if you’re interested to see how it evolves
2 points • briang_
Peter Norvig did an excellent Udacity (free) course on the Design of Computer Programs that used Python. It certainly boosted my Python skills, as well as being very interesting.
18 points • TextOnScreen
Is Udacity a good place to start learning?
I'm new to this sub (I hope I'm in the right place!), so hi everyone!
I've decided to learn Python, mainly cause I'd like to use it to further my data analysis skills. I already have beginner's knowledge of Java because I took an intro CS course in college.
I've never used Udacity, but discovered it recently and it seemed like a good starting point. I'm mainly looking at these classes:
[Intro to CS] (https://www.udacity.com/course/intro-to-computer-science--cs101)
[Programming Foundations] (https://www.udacity.com/course/programming-foundations-with-python--ud036)
[Design of Computer Programs] (https://www.udacity.com/course/design-of-computer-programs--cs212)
After having a Python foundation I'd take these courses:
[Intro to Data Analysis] (https://www.udacity.com/course/intro-to-data-analysis--ud170)
[Intro to Data Science] (https://www.udacity.com/course/intro-to-data-science--ud359)
[Model Building and Validation] (https://www.udacity.com/course/model-building-and-validation--ud919)
Do you think this is a decent curriculum?
Or perhaps I should dive right in to the [Intro to Python for Data Science] (https://www.datacamp.com/courses/intro-to-python-for-data-science) course that's linked on the Wiki?? I'm scared all the Udacity courses might take forever to complete and I'll lose steam...
Thanks for any help and advice!
3 points • bellamira
trying to transition from Udacity's CS101 to CS212
The transition here is too hard for me. I am pretty confident in my beginner abilities and I am a good learner, but this is too big of a jump for me to make. I am almost "done" with unit 2 and I am having a hard time trying to learn all the stuff that CS212 is throwing at me at once - new expressions, new modules, new syntax, AND how to make sure your run times are as small as possible. It's just too much for me, even with researching on my own.
Does anyone know of a good intermediate course to kind of bridge the gap here? I really want to be able to write more efficiently before I jump into web development or something else like that. But maybe that's the only way to grasp some of these concepts?
Here's where I am:
I know the basics - loops, variables, dictionaries, etc.
I get list comprehension.
I kinda get lambda functions.
Regular Expressions and Generator Expressions are a mystery.
I don't understand how to know if your program is "efficient" or not in terms of run time, in practice.
Confused on some ways of writing: like I have seen in CS212 the teacher putting the return statement in line with the if statements, instead of tabbed in on a new line. I guess that's just... a thing that you can do in certain situations?
And that's about where I am giving up in CS212. Any recommendations are appreciated. Thank you!
1 points • carlovski99
I manage the database and server teams for an NHS trust. Still fairly hands on with database stuff and have done all kinds of roles over the last 20 years.
Programming is a craft, not an art. You get good by doing it. Some people are more suited to it than others, and you get the occasional natural genius but it in the main it's by putting in the time.
The online courses are a good idea, as long as you put the time in for the exercises. I don't think CS50 has that much maths? Can I also recommend https://www.udacity.com/course/design-of-computer-programs--cs212 ? Focusses a lot more on design and problem solving than syntax and the mechanics.
If looking for 1st line support jobs, try and make sure there is either a decent amount of technical work involved in the role or a defined path from first level into other roles. Some first level jobs are nothing but logging calls and password resets. Though appreciate you might just need to take whatever you can to get on the ladder.
From the point of view of a recruiter, for entry level what to like to see is a programmer/engineers mindset. If you have a support task to do for instance, I'd expect you to be thinking how you can improve/automate the process. Not just do it.
2 points • atsidi
I really liked working through Peter Norvig's free Udacity's class Design of Computer Programs. It's in Python (and you'll have to submit Python answers to progress), but you can also work through it implementing the code in C++ and checking your output against the Python output. Peter's thought process through the development of a poker game is really very engaging and interesting and it's like getting a class from one of the true masters of programming.
1 points • mathnp
Nai, ma afai sikdai chu https://www.udacity.com/course/design-of-computer-programs--cs212
1 points • lowerthansound
Not something that I do everyday, but your question reminds me of pytudes...
From the repo:
"An étude (a French word meaning study) is an instrumental musical composition, usually short, of considerable difficulty, and designed to provide practice material for perfecting a particular musical skill."
So, doing these sort of projects, big and small, can help you perfect your skills :)
Also, Peter Norvig is a world-class programmer and he made a course that, oh boy, it's good, really good!
3 points • create_a_new-account
I haven't taken any of these
1 points • gtboy1994
Ok. My question is do I use a book/mooc that's more math/proof oriented or one that's more hands on coding? Which of these counts as "Design"?
Here's some example courses and Books. Tell me your thoughts please.
https://cs170.org/ basically all math
https://www.amazon.com/Python-Algorithms-Mastering-Basic-Language/dp/148420056X/ref=dp_ob_title_bk exercises are mainly proofs with some implementations in python
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/ mainly implementations and mathematical analysis about efficiency
1 points • fluff12321
Sure, here's a few I'd recommend that were a good combination of fun/interesting & well explained:
Intro to Python: I took several short/interactive tutorials to get the basics down: - https://www.codecademy.com/learn/learn-python - https://www.codeschool.com/learn/python
Introductory CS: - https://www.udacity.com/course/intro-to-computer-science--cs101 - https://www.udacity.com/course/intro-to-relational-databases--ud197
AI: - https://www.udacity.com/course/intro-to-artificial-intelligence--cs271
Machine Learning: - https://www.coursera.org/learn/machine-learning
Algorithms: - https://www.coursera.org/learn/algorithms-part1 - https://www.coursera.org/learn/algorithms-part2
More intermediate/advanced, but really excellent: https://www.udacity.com/course/design-of-computer-programs--cs212
After the introductory stuff, you can take AI, ML, or Algorithms in any order you find appealing. Enjoy!