Programming Languages, Part C

share ›
‹ links

Below are the top discussions from Reddit that mention this online Coursera course from University of Washington.

[As described below, this is Part C of a 3-part course.

Ruby (Programming Language) Programming Language Object-Oriented Programming (OOP) Subtyping

Reddsera may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Coursera. Thank you for using these buttons to support Reddsera.

Taught by
Dan Grossman
Professor
and 8 more instructors

Offered by
University of Washington

Reddit Posts and Comments

0 posts • 11 mentions • top 8 shown below

r/compsci • post
66 points • daredevildas
Coursera - Programming Languages by University of Washington

Would you consider the 3 part Programming Languages course on Coursera(linked below) a prerequisite or a building block for studies in Programming Language Theory?

https://www.coursera.org/learn/programming-languages

https://www.coursera.org/learn/programming-languages-part-b

https://www.coursera.org/learn/programming-languages-part-c

r/programming • comment
1 points • Freyr90

Well, I do recall this course where the exercises for ruby were given in 2 or 3 versions for 2.6, 2.7 different ruby versions, but the funniest thing was that they didn't work due to the graphics library being broken on any Ruby implementation but JRuby.

There were no such problems with the other languages of the course, SML and Racket.

https://www.coursera.org/learn/programming-languages-part-c

r/C_Programming • comment
5 points • TheAwdacityOfSoap

What do you want to do? Knowing what you want to do with the language would help to narrow the choices down. If you're just interested in learning a language for its own sake, you could try:

  • Taking a course online that covers multiple languages, such as Programming Languages on Coursera: Part A (ML), Part B (Racket), Part C (Ruby).
  • Scheme (a lisp). I've heard great things about SICP, but I haven't read it, regretfully.
  • Python, as others have suggested, is very different from C and also very practical. It's a top language right now in industry, especially in data science and machine learning. I think it's still a major contender in server development as well.
  • Java. Lots of people hate it for some reason. I love Java. It's got its quirks, sure, but I get the warm and fuzzies every time I use it, and it's one of the top languages in use today. Lots of practical stuff you can do with Java. Write servers. Program robots. Create a Minecraft plugin or write your own game.
  • Rust. A very exciting up and coming languages. Has a lot of really nice features like compile time memory/thread safety guarantees, traits and an official package manager. It's a tough nut to crack at first (I'm still working on it myself), but it's really nice.
  • JavaScript. Say what you will, but JavaScript is one of the top languages in use today. Learning JavaScript opens up frontend web development as an option for you. If you want to make a website that doesn't just sit there looking pretty, you'll have to go down this road eventually. Like Java, JavaScript has its quirks too, but is overall an enjoyable experience to use if you ignore some features (like double equals, unless you really know what you're doing). Paired with TypeScript, it's actually a joy.

If you're feeling analysis paralysis, I'd go with Java if you want something practical, or Scheme if you want your mind blown.

r/programming • comment
1 points • AnAirMagic

When I took a course on programming language theory (https://www.coursera.org/learn/programming-languages-part-c) one of the things they explained is that it is really up to language semantics how generics behave. It's a design choice. Losing type information at run time is a valid strategy for implementing generics. And like all design choices, there are consequences. You gain a few advantages and a few disadvantages. https://www.quora.com/What-are-the-pros-and-cons-of-having-Generics-as-erasure-or-reifiable has some details on the pros and cons (better than what I can type up at the moment).

I really think there is no right or wrong choice. Whatever you pick - reifiction or type-erasure - your language will have to live with the consequences. Do you want to let the developers implement List<int> and List<object> differently? Or do you want everyone to understand that all List objects share an implementation? Do you prefer having a more complicated compiler/optimizer to deal with the consequences of reification? It's not a simple reifiction > type-erasure IMO.

r/learnprogramming • comment
11 points • Lesabotsy

Here is mine, might get your interest. Note that my plan is to learn programming in general and not just web dev thing or one specific language, which should suit you well, I will focus on specialization later. Main language to learn will be java and python. Most of the courses are taken from OSSU https://github.com/ossu/computer-science minus the hardware, physics and all ...

Part 1: Intro

  • https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x#!

  • https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11

Important, add some maths if you feel shaky about it - https://www.edx.org/course/precalculus-asux-mat170x

  • https://www.coursera.org/learn/calculus1

  • https://www.coursera.org/learn/advanced-calculus)

Part 2: Corse CS

  • https://www.edx.org/micromasters/software-development (the whole MicroMaster)

  • https://www.edx.org/professional-certificate/microsoft-introduction-to-code-objects-and-algorithms

  • https://www.coursera.org/learn/programming-languages

  • https://www.coursera.org/learn/programming-languages-part-b

  • https://www.coursera.org/learn/programming-languages-part-c

Part 3: Algorithms and Databases

  • https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about

  • https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms2+SelfPaced/about

  • https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about

Part 4: Specialize on whatever you want ...

r/learnprogramming • comment
1 points • cristianobaptista

There is also the Open Source Society University, which is an self-learning guide from beginner to very advanced: https://github.com/ossu/computer-science/blob/dev/README.md

Before you start trying to get some money out of programming, I believe you should really understand some basics from these courses:

  • https://www.coursera.org/specializations/python
  • https://www.coursera.org/specializations/computer-fundamentals
  • https://www.edx.org/course/introduction-to-computer-science-and-programming-7
  • https://www.coursera.org/learn/programming-languages
  • https://www.coursera.org/learn/programming-languages-part-b
  • https://www.coursera.org/learn/programming-languages-part-c
  • https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

After this you should be able to start learning most programming languages with some level of confidence that you kinda know what you are doing, and my advice is that you should start learning by doing before going through more advanced topics, using any of the other resources other people have shared with you.

If you want any more advice regarding how to start, feel free to message me directly.

r/nus • comment
1 points • chuabingquan

If you do want a head start for CS1101S, you can take the following Coursera courses:

https://www.coursera.org/learn/programming-languages

https://www.coursera.org/learn/programming-languages-part-b

They are based on the same materials taught in CS1101S, but with more rigour in their definitions, more emphasis on the benefits and trade-offs of functional programming, and also share the same goal of communicating computational process concisely as opposed to just strewing a bunch of code together and producing something that works. I took those courses during NS and CS1101S was more of a recap with more additional practices.

Do take note that the languages taught are certainly different; the Coursera courses use Standard ML and Racket while CS1101S uses Source, a subset of the better parts of JavaScript with a largely functional-style standard library. However, the language is not the key here and the goal is to establish a framework in your mind on how to reason and write programs that that communicates your ideas concisely.

There are also additional topics like Order of Growth, which you can refer to u/wild-berry-berry's fantastic reference to Abdul Bari.

If you want to clear your CS1101S requirements earlier, NUS has a programme called iBLOC; if you're an NSF, you can take CS1010X near the end of your service and transfer the credits earned in place of CS1101S when the semester starts. This way, you can fast track and take certain modules such as CS2030S as early as your first semester. Do take note however that CS1010X favours Object-Oriented Programming (OOP) much more over its functional counterpart. If you do want to dive into OOP too, you can follow up from the Coursera course mentioned earlier and attempt the next part:

https://www.coursera.org/learn/programming-languages-part-c

Lastly, do study discrete math if you're not familiar with proving; it is the backbone of CS.

Hope it helps.

r/learnprogramming • post
3 points • Woadray
My plan to learn programming, looking for criticism ...

At the start of 2018 I decided to learn programming, web development especially. But the more I learned, the more I found it to be enjoyable and that it is something that I really like, too bad I'm so late, I wish I had figured it out earlier. So I decided to learn more and not just dive into specialization in web development. I want to be a "good programmer" first, not just good with JavaScript. So I did some research and found a bunch of MOOCs and guides, I took them, mixed them up and made a plan to fit my goal. Here it is then:

March:

  • https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x#!
  • https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11

April:

  • https://www.edx.org/course/how-code-simple-data-ubcx-htc1x
  • https://www.edx.org/course/how-code-complex-data-ubcx-htc2x

May:

  • https://www.edx.org/course/software-construction-data-abstraction-ubcx-softconst1x
  • https://www.edx.org/course/software-construction-object-oriented-ubcx-softconst2x
  • https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about

June:

  • https://www.coursera.org/learn/programming-languages
  • https://www.coursera.org/learn/programming-languages-part-b
  • https://www.coursera.org/learn/programming-languages-part-c

July:

  • http://mooc.fi/courses/2013/programming-part-1/
  • http://mooc.fi/courses/2013/programming-part-2/

August:

  • https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about
  • https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms2+SelfPaced/about

September:

  • https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x
  • https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx

Oct/Nov/Dec:

  • https://www.udemy.com/the-web-developer-bootcamp/?siteID=EXclnL5BfX4-y_h6hFc_gg3Ot8FKUGLISg&LSNPUBID=EXclnL5BfX4
  • https://www.udemy.com/the-advanced-web-developer-bootcamp/
  • https://www.udemy.com/the-ultimate-mysql-bootcamp-go-from-sql-beginner-to-expert/

On top of all of this I'll maybe add some maths if needed. I have no idea if my time estimation is accurate, but I will only know by doing so we'll see ... I do this full time by the way. Feel free to criticize, any input is valuable, beside this month every other one ca be tweaked.

Thanks for reading.