Answers.Body: <p>It seems like the course outline is sort-of (mostly?) object oriented programming.  If you're feeling lost in that, you might want something like chapter 11 in this book: <a href="https://runestone.academy/runestone/books/published/apcsareview/index.html" rel="nofollow noreferrer">https://runestone.academy/runestone/books/published/apcsareview/index.html</a>.  That might help you to feel a little bit more grounded as you proceed in your course.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-19T08:25:47.570Z
Answers.Text: Thanks for the materials. But I know about concepts of chapter 11 in the material shared. I had a basic Java in our high school and as such I know the concepts which are said in chapter 11 about polymorphism, much more related to oops concept. But the place where I am having problem is that I want to know what are "design patterns", "Iterator patterns", "model view controller pattern". I have the Java-Complete Reference- Hebert Schildt, but I have not come across these topics in the text. It would be very helpful for me, if a text book is recommended to me, which deals with these topics.
Answers.UserDisplayName: Ran Mouri
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-19T08:35:23.207Z
Answers.Text: Just googling out the topics is fetching results, but they are not quite explanatory in the sense that they not quite complete or sequential. I am looking for a learning resource which deals with all the topics (possibly) and as well say the pros or cons of an approach with full co-relation between the topics. Ah I see these are too much a demand, but yet I feel a correct textbook should be like this and a reference manual (hebert Schildt) is not supposed to contain these aspects. Rather the text is a bit too dry without creating interest, yet the said is being followed at our place...
Answers.UserDisplayName: Ran Mouri
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-19T07:59:53.973Z
Answers.LastActivityDate: 2020-12-19T07:59:53.973Z
Answers.UserDisplayName: Ben I.
Answers.Body: <p>If this is your first trip to OOP and design patterns
  Look for the text books:</p>
  <p>Head First: Java</p>
  <p>Head First: Design Patterns</p>
  <p>Awesome design pattern resource:
  <a href="https://refactoring.guru/design-patterns/catalog" rel="nofollow noreferrer">https://refactoring.guru/design-patterns/catalog</a></p>
  <p>I also create a simple code base on my repository
  <a href="https://github.com/clarkngo/design-patterns" rel="nofollow noreferrer">https://github.com/clarkngo/design-patterns</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-04-07T16:29:42.253Z
Answers.LastActivityDate: 2021-04-07T16:29:42.253Z
Answers.UserDisplayName: Clark Ngo
Answers.Body: <p>Two books come to mind. Both build a project and you learn about object-oriented program design and testing. However, both assume at least a good grasp of basic Java. Nether will cover all of the topics you mentioned, nor do they have videos, but will give you a good idea of how to develop larger programs. You will learn a lot by code reading and osmosis. Both books use Java for implementation.</p>
  <p>The first book (<a href="https://csis.pace.edu/%7Ebergin/polymorphismBook/index.html" rel="nofollow noreferrer">https://csis.pace.edu/~bergin/polymorphismBook/index.html</a>) builds a simple four-function calculator. It emphasizes test-driven development and assumes at least a simple knowledge of JUnit testing. The book shows how to decompose a problem into small manageable pieces and take advantage of polymorphism (hence the name of the book). I also like the companion book as it takes a further look at the same problem, but with alternative implementations. Both are paperback books available for approx $20. The author's web page (<a href="https://csis.pace.edu/%7Ebergin" rel="nofollow noreferrer">https://csis.pace.edu/~bergin</a>) also has links to a lot of material he has written.</p>
  <p>The second book (<a href="http://craftinginterpreters.com/" rel="nofollow noreferrer">http://craftinginterpreters.com/</a>) builds an interpreter for an object-oriented language. It is a far larger and much more complex project. The author does an excellent job of explaining concepts and demonstrating incremental development. If you just made it through the chapter on Scanning, you will have learned a tremendous amount. You will have a much better idea of how Java takes your source files and breaks them down into pieces. Best of all, the book is free to read.</p>
  <p>Lastly, if you like videos, check out (<a href="https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0" rel="nofollow noreferrer">https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0</a>). It is Harvard's intro to CS course and covers a whole variety of topics and languages. You can enroll for free and actually do the assignments or just watch videos and work on your own. The instructor is wonderful.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-20T22:23:15.483Z
Answers.LastActivityDate: 2021-05-26T13:55:29.597Z
Answers.LastEditDate: 2021-05-26T13:55:29.597Z
Answers.UserDisplayName: Fritz Sieker
Body: <p>I am looking for an elegant textbook to be followed for self-study in an objected oriented programming course at the undergraduate level. Our course is as shown:</p>
  <p><a href="https://i.sstatic.net/N6Uv9.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/N6Uv9.png" alt="course details" /></a></p>
  <p>I humbly request you to suggest to me a book which shall help me in self-studying the concepts which are given above, a book which shall be as an instructor and make me understand the concepts excellently. I know the basics of Java but I am unaware of most of the technical terms used in the curriculum attached above.</p>
  <p>Our course instructor is a bit weird and she is going on just reading the Java reference book by Hebert Schildt in the slide of each class and she does not explain the points given in the curriculum like iterator patterns, Model-view-controller pattern, and others. When I asked her what is iterator pattern, she said that it is a loop, that's all.</p>
  <p>I do not want to study the subject just for name's sake (superficially), I always attempt to master what I learn. Please could you help me out?</p>
  <p>Moreover, if anyone could provide me video lectures to go hand in hand with a textbook, then it shall be helpful for me. I do not like the way I am being taught at our place.</p>
  <p>Thank you. Hope you can understand my trouble... I beg you to help me out.</p>
  <hr />
  <p>[I am not worth criticizing the instructor, but it is my utter frustration that has made me put this question here so that I can get hold of some suitable and good learning resources.]</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-17T19:59:25.147Z
Comments.Text: What courses have you had? Data structures? Algorithms? More?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-17T20:12:36.240Z
Comments.Text: And where did this list of topics come from? Is your instructor learning this stuff along with her students?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-18T06:06:53.340Z
Comments.Text: I had Data Structures, Algorithms, Discrete Mathematics, Digital logic, C programming, Theory of Computation, and Computer Organization and Architecture, till now, and I have know about the basics of Java... These are the courses which I had @Buffy
Comments.UserDisplayName: Ran Mouri
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-18T06:09:33.057Z
Comments.Text: `And where did this list of topics come from?`: It is given in our course curriculum list.
  `Is your instructor learning this stuff along with her students?`: I do not know sir, I feel frustrated, she blindly just reads the Hebert Schildt chapter by chapter selectively as class slides and the topics mentioned in the course curriculum are not explained properly. Please help me. I beg.
Comments.UserDisplayName: Ran Mouri
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-19T05:43:48.267Z
Comments.Text: Please help me out, anyone, if possible...
Comments.UserDisplayName: Ran Mouri
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-19T08:01:21.057Z
Comments.Text: I posted a small answer for you, @RanMouri.  Questions about the material itself are off-topic on our site, but if you have a specific question, like iterators, you could always try your luck in our [chat room](https://chat.stackexchange.com/rooms/59174/the-classroom).  The folks there tend to be very nice.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-19T08:27:19.220Z
Comments.Text: "Questions about the material itself are off-topic on our site": I did not get it @BenI.
Comments.UserDisplayName: Ran Mouri
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-19T16:00:31.693Z
Comments.Text: Given the list of subjects you have already had, I doubt that there is a book other than a highly theoretical one that covers these topics. Big Java (Objects Early) by Cay Horstman covers a lot of it, but it is intended for beginners, so much of it would be boring.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-19T16:04:28.297Z
Comments.Text: I could provide some references that you could use, but it wouldn't be a book for all of it.
Comments.UserDisplayName: Buffy
Tags: <self-learning><resource-request><java><object-oriented-paradigm><textbook>
Title: Best book and video lecture series to follow for an "object oriented programming" course for advanced undergraduates
ThreadText: # Best book and video lecture series to follow for an "object oriented programming" course for advanced undergraduates
  
  (Asked by: username_0 on 2020-12-16)
  
  I am looking for an elegant textbook to be followed for self-study in an objected oriented programming course at the undergraduate level. Our course is as shown:
  
  [![course details](https://i.sstatic.net/N6Uv9.png)](https://i.sstatic.net/N6Uv9.png)
  
  I humbly request you to suggest to me a book which shall help me in self-studying the concepts which are given above, a book which shall be as an instructor and make me understand the concepts excellently. I know the basics of Java but I am unaware of most of the technical terms used in the curriculum attached above.
  
  Our course instructor is a bit weird and she is going on just reading the Java reference book by Hebert Schildt in the slide of each class and she does not explain the points given in the curriculum like iterator patterns, Model-view-controller pattern, and others. When I asked her what is iterator pattern, she said that it is a loop, that's all.
  
  I do not want to study the subject just for name's sake (superficially), I always attempt to master what I learn. Please could you help me out?
  
  Moreover, if anyone could provide me video lectures to go hand in hand with a textbook, then it shall be helpful for me. I do not like the way I am being taught at our place.
  
  Thank you. Hope you can understand my trouble... I beg you to help me out.
  
  ---
  
  [I am not worth criticizing the instructor, but it is my utter frustration that has made me put this question here so that I can get hold of some suitable and good learning resources.]
  
  **Tags:** self-learning, resource-request, java, object-oriented-paradigm, textbook
  
  > **Comments:**
  > **username_1**: What courses have you had? Data structures? Algorithms? More?  
  > **username_1**: And where did this list of topics come from? Is your instructor learning this stuff along with her students?  
  > **username_0**: I had Data Structures, Algorithms, Discrete Mathematics, Digital logic, C programming, Theory of Computation, and Computer Organization and Architecture, till now, and I have know about the basics of Java... These are the courses which I had @username_1  
  > **username_0**: `And where did this list of topics come from?`: It is given in our course curriculum list. `Is your instructor learning this stuff along with her students?`: I do not know sir, I feel frustrated, she blindly just reads the Hebert Schildt chapter by chapter selectively as class slides and the topics mentioned in the course curriculum are not explained properly. Please help me. I beg.  
  > **username_0**: Please help me out, anyone, if possible...  
  > **username_2**: I posted a small answer for you, @username_0.  Questions about the material itself are off-topic on our site, but if you have a specific question, like iterators, you could always try your luck in our [chat room](https://chat.stackexchange.com/rooms/59174/the-classroom).  The folks there tend to be very nice.  
  > **username_0**: "Questions about the material itself are off-topic on our site": I did not get it @BenI.  
  > **username_1**: Given the list of subjects you have already had, I doubt that there is a book other than a highly theoretical one that covers these topics. Big Java (Objects Early) by Cay Horstman covers a lot of it, but it is intended for beginners, so much of it would be boring.  
  > **username_1**: I could provide some references that you could use, but it wouldn't be a book for all of it.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_4 on 2020-12-20. Score: 4
  
  Two books come to mind. Both build a project and you learn about object-oriented program design and testing. However, both assume at least a good grasp of basic Java. Nether will cover all of the topics you mentioned, nor do they have videos, but will give you a good idea of how to develop larger programs. You will learn a lot by code reading and osmosis. Both books use Java for implementation.
  
  The first book ([https://csis.pace.edu/~bergin/polymorphismBook/index.html](https://csis.pace.edu/%7Ebergin/polymorphismBook/index.html)) builds a simple four-function calculator. It emphasizes test-driven development and assumes at least a simple knowledge of JUnit testing. The book shows how to decompose a problem into small manageable pieces and take advantage of polymorphism (hence the name of the book). I also like the companion book as it takes a further look at the same problem, but with alternative implementations. Both are paperback books available for approx $20. The author's web page ([https://csis.pace.edu/~bergin](https://csis.pace.edu/%7Ebergin)) also has links to a lot of material he has written.
  
  The second book (<http://craftinginterpreters.com/>) builds an interpreter for an object-oriented language. It is a far larger and much more complex project. The author does an excellent job of explaining concepts and demonstrating incremental development. If you just made it through the chapter on Scanning, you will have learned a tremendous amount. You will have a much better idea of how Java takes your source files and breaks them down into pieces. Best of all, the book is free to read.
  
  Lastly, if you like videos, check out (<https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0>). It is Harvard's intro to CS course and covers a whole variety of topics and languages. You can enroll for free and actually do the assignments or just watch videos and work on your own. The instructor is wonderful.
  
  
  ---
  
  ### Answer by username_2 on 2020-12-19. Score: 2
  
  It seems like the course outline is sort-of (mostly?) object oriented programming. If you're feeling lost in that, you might want something like chapter 11 in this book: <https://runestone.academy/runestone/books/published/apcsareview/index.html>. That might help you to feel a little bit more grounded as you proceed in your course.
  
  > **Comments:**
  > **username_0**: Thanks for the materials. But I know about concepts of chapter 11 in the material shared. I had a basic Java in our high school and as such I know the concepts which are said in chapter 11 about polymorphism, much more related to oops concept. But the place where I am having problem is that I want to know what are "design patterns", "Iterator patterns", "model view controller pattern". I have the Java-Complete Reference- Hebert Schildt, but I have not come across these topics in the text. It would be very helpful for me, if a text book is recommended to me, which deals with these topics.  
  > **username_0**: Just googling out the topics is fetching results, but they are not quite explanatory in the sense that they not quite complete or sequential. I am looking for a learning resource which deals with all the topics (possibly) and as well say the pros or cons of an approach with full co-relation between the topics. Ah I see these are too much a demand, but yet I feel a correct textbook should be like this and a reference manual (hebert Schildt) is not supposed to contain these aspects. Rather the text is a bit too dry without creating interest, yet the said is being followed at our place...  
  
  ---
  
  ### Answer by username_3 on 2021-04-07. Score: 0
  
  If this is your first trip to OOP and design patterns
  Look for the text books:
  
  Head First: Java
  
  Head First: Design Patterns
  
  Awesome design pattern resource:
  <https://refactoring.guru/design-patterns/catalog>
  
  I also create a simple code base on my repository
  <https://github.com/username_3/design-patterns>
  
  
  ---
  
  