<p>We have added a course at Colorado State University called &quot;Software Construction&quot;. It is typically taken by second year students after two semesters of courses taught using Java (intro and data structures). It is a prequel to the &quot;software Engineering&quot; course. Both feature semester long projects of different complexities. The difference is that the first course, all assignments are individual. In the second course, all assignments are done by a group.</p>
<p>We have chosen to use two books &quot;Clean Code&quot; and &quot;Clean Architecture&quot;, both by Robert C Martin, for these courses. We feel that they give a excellent overview of topics we wish to cover. Unfortunately, the books don't contain complete projects.</p>
<p>For a semester long project, we have adapted project ideas from other courses, simplifying structure, and providing some chunks of functionality. We assume a certain level of programming capability for students enrolled in the course.</p>
<p>You might also look at the book &quot;Polymorphism: As It Is Played&quot; by Joseph Bergin. It really details test driven development in the context of writing a calculator program. This would make a nice project having students complete the code, or implement a RPN calculator.</p>

CC BY-SA 4.0
2024-02-21T19:05:17.253Z
That's a fantastic set of books.
Ben I.
CC BY-SA 4.0
2024-02-20T18:28:06.723Z
2024-02-21T21:57:05.047Z
2024-02-21T21:57:05.047Z
Fritz Sieker
<p>The book to learn UML concepts sis by side with software engineering:</p>
<p><a href="https://www.google.co.in/books/edition/The_Elements_of_UML_TM_2_0_Style/s1sIlw83-pQC?hl=en&amp;gbpv=1" rel="nofollow noreferrer">Ambler, S. W. (2005). The Elements of UML 2.0 Style. United Kingdom: Cambridge University Press.</a></p>

CC BY-SA 4.0
2023-01-27T06:05:02.100Z
Thanks! I will also check it out. Do you happen to know any new reference book within 10 years ?
Nerdy Girl
CC BY-SA 4.0
2023-01-28T13:09:53.017Z
@NerdyGirl, as a practising programmer, I would not recommend a textbook on UML, unless it's as a prelude to burning them on a bonfire. As Ambler says in the book introduction, "a lot of the communicative value in a UML diagram, is still due to the layout skill of the modeller". I would be even more emphatic, and say that *all* the communicative value of diagrams arise from their non-systematic aspects and the skill of the diagrammer, which is rather contrary to the basic tenet of UML.
Steve
CC BY-SA 4.0
2023-06-28T05:21:53.567Z
Regarding UML, you may refer to this discussion https://cseducators.stackexchange.com/questions/6862/how-necessary-is-uml-for-a-course-in-object-programming-patterns
Qiulang 邱朗
CC BY-SA 4.0
2023-01-24T15:20:40.947Z
2023-01-24T15:20:40.947Z
Manoov
<p>I am looking for a good textbook to teach freshman (or some sophomores) introductory to software engineering.
Specially, need that the textbook has example labs/projects for the whole semester included in instructor resources. There are many good software engineering books but they do not have labs/project examples.
Since these students might not have adequate programming ability yet, I plan to focus on more abstract level assignments and do not expect them to code the projects.
The main purpose is to teach them how a software product could be developed and designed.</p>
<p>So could anyone suggest a textbook of introductory software engineering that has abstract level level labs/projects ?<br />
Labs/projects at abstract level using UML could be an option but hopefully, it cover only basic UML ideas/concepts since students might not have enough OOP concepts yet.
If so, could anyone also suggest simple UML reference books ? Thanks</p>

CC BY-SA 4.0
2022-10-29T13:16:49.417Z
I don't have an answer, but I second the question!
Ben I.
CC BY-SA 4.0
2022-10-31T16:05:38.093Z
Look up Dijkstra's [Cruelty of teaching CS](https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html) (search for "engineering"). ⚠ not a hope giving article. But describes the problem accurately.
Rushi
CC BY-SA 4.0
2022-11-07T16:05:44.717Z
Regarding "simple UML references books" in the context of Software Engineering, how about books about business modeling with UML like [Business Modeling with UML: Business Patterns at Work](https://books.google.com.mx/books?id=afc6MwAACAAJ)
Rubén
CC BY-SA 4.0
2023-01-27T06:03:44.080Z
Thanks! I will check it out. But I am wondering if there is any new reference book within 10 years.
Nerdy Girl
CC BY-SA 4.0
2023-02-08T08:46:49.767Z
Sorry, this whole question rubs me the wrong way. What's the point of designing without a spec? Should you perhaps start with motivating requirement elicitation followed by carving out a more rigorous specification from the gathered requirements _before_ indulging in drawing diagrams?
Kai
CC BY-SA 4.0
2023-03-05T01:40:23.350Z
@BenI. I have to say book recommendation questions here lack of good answers in general.
Qiulang 邱朗
<project><introductory-lesson><textbook><labs>
Seek for textbook suggestions of introductory software engineering
# Seek for textbook suggestions of introductory software engineering

(Asked by: username_0 on 2022-10-29)

I am looking for a good textbook to teach freshman (or some sophomores) introductory to software engineering.
Specially, need that the textbook has example labs/projects for the whole semester included in instructor resources. There are many good software engineering books but they do not have labs/project examples.
Since these students might not have adequate programming ability yet, I plan to focus on more abstract level assignments and do not expect them to code the projects.
The main purpose is to teach them how a software product could be developed and designed.

So could anyone suggest a textbook of introductory software engineering that has abstract level level labs/projects ?  
Labs/projects at abstract level using UML could be an option but hopefully, it cover only basic UML ideas/concepts since students might not have enough OOP concepts yet.
If so, could anyone also suggest simple UML reference books ? Thanks

**Tags:** project, introductory-lesson, textbook, labs

> **Comments:**
> **username_1**: I don't have an answer, but I second the question!  
> **username_2**: Look up Dijkstra's [Cruelty of teaching CS](https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html) (search for "engineering"). ⚠ not a hope giving article. But describes the problem accurately.  
> **username_3**: Regarding "simple UML references books" in the context of Software Engineering, how about books about business modeling with UML like [Business Modeling with UML: Business Patterns at Work](https://books.google.com.mx/books?id=afc6MwAACAAJ)  
> **username_0**: Thanks! I will check it out. But I am wondering if there is any new reference book within 10 years.  
> **username_4**: Sorry, this whole question rubs me the wrong way. What's the point of designing without a spec? Should you perhaps start with motivating requirement elicitation followed by carving out a more rigorous specification from the gathered requirements _before_ indulging in drawing diagrams?  
> **username_5**: @BenI. I have to say book recommendation questions here lack of good answers in general.  

---

## 2 answers

### Answer by username_6 on 2024-02-20. Score: 2

We have added a course at Colorado State University called "Software Construction". It is typically taken by second year students after two semesters of courses taught using Java (intro and data structures). It is a prequel to the "software Engineering" course. Both feature semester long projects of different complexities. The difference is that the first course, all assignments are individual. In the second course, all assignments are done by a group.

We have chosen to use two books "Clean Code" and "Clean Architecture", both by Robert C Martin, for these courses. We feel that they give a excellent overview of topics we wish to cover. Unfortunately, the books don't contain complete projects.

For a semester long project, we have adapted project ideas from other courses, simplifying structure, and providing some chunks of functionality. We assume a certain level of programming capability for students enrolled in the course.

You might also look at the book "Polymorphism: As It Is Played" by Joseph Bergin. It really details test driven development in the context of writing a calculator program. This would make a nice project having students complete the code, or implement a RPN calculator.

> **Comments:**
> **username_1**: That's a fantastic set of books.  

---

### Answer by username_7 on 2023-01-24. Score: 0

The book to learn UML concepts sis by side with software engineering:

[Ambler, S. W. (2005). The Elements of UML 2.0 Style. United Kingdom: Cambridge University Press.](https://www.google.co.in/books/edition/The_Elements_of_UML_TM_2_0_Style/s1sIlw83-pQC?hl=en&gbpv=1)

> **Comments:**
> **username_0**: Thanks! I will also check it out. Do you happen to know any new reference book within 10 years ?  
> **username_8**: @NerdyGirl, as a practising programmer, I would not recommend a textbook on UML, unless it's as a prelude to burning them on a bonfire. As Ambler says in the book introduction, "a lot of the communicative value in a UML diagram, is still due to the layout skill of the modeller". I would be even more emphatic, and say that *all* the communicative value of diagrams arise from their non-systematic aspects and the skill of the diagrammer, which is rather contrary to the basic tenet of UML.  
> **username_5**: Regarding UML, you may refer to this discussion https://cseducators.stackexchange.com/questions/6862/how-necessary-is-uml-for-a-course-in-object-programming-patterns  

---

