se-edu / se-book Goto Github PK
View Code? Open in Web Editor NEW:book: Online Book: Software Engineering for Self-Directed Learners
Home Page: https://se-edu.github.io/se-book/
:book: Online Book: Software Engineering for Self-Directed Learners
Home Page: https://se-edu.github.io/se-book/
Typo in <include src="./aimforComprehensibility/topicPanel.md" />
Should be <include src="./aimForComprehensibility/topicPanel.md" />
Change lowercase f
to uppercase F
.
This section is missing from this page
/errorHandling/assertions/exceptionsVsAssertions
I noticed that the format of the conditional operator is broken on the CS2113 website (https://nus-cs2113-ay2223s2.github.io/website/se-book-adapted/chapters/cppToJava.html#operators).
I suspect that the |
character is being read as a table. We could follow the suggestion from https://stackoverflow.com/questions/17319940/how-to-escape-a-pipe-char-in-a-code-statement-in-a-markdown-table to rectify it.
<code>||</code> | or | <code>true || false</code> %%{{ icon_output_right }}%% `true` | <code>false || false</code> %%{{ icon_output_right }}%% `false`
In the full printable textbook, the java
does not link to any of the sections. Perhaps it should link to the c++ to java
content instead? If that is the case, the c++ to java
chapter should be under supplementary.
Also, should the Principles
chapter be under a Principles
to match with the siteNav as shown on the left?
The answer can contain just the a
, b
, c
etc. like so:
<panel header=":lock::key: What are the advantages of using use cases (the textual form) for requirements modelling?">
<question>
What are the advantages of using use cases (the textual form) for requirements modelling?
- [ ] a. They can be fairly detailed but still natural enough for users for users to understand and give feedback.
- [ ] b. The UI-independent nature of use case specification allows the system designers more freedom to decide how a functionality is provided to a user.
- [ ] c. Extensions encourage us to consider all situations a software product might face during its operations.
- [ ] d. They encourage us to identify and optimize the typical scenario of usage over exceptional usage scenarios.
- [ ] e. All of the above.
- [ ] f. First three only.
<div slot="answer">
e
</div>
</question>
</panel>
TopicToc.md at lower level topics don't seem to be used
In the textbook, it is stated that SLAP stands for:
Single Level of Abstraction Per method
However, the source material, The Productive Programmer by Neal Ford, states the following instead:
Single Level of Abstraction Principle
Not sure if this is an intentional deviation from the source material since the textbook's version is more descriptive.
Link to the relevant section in the CS2103T AY20/21 S1 textbook.
Able to search content via the search box on the top right corner
On typing and pressing Enter, nothing happens. As seen from the console:
There seems to be a problem with initializing Algolia.
btw prof: is this book still accepting contributions? If yes I am interested to take on some issues and add exercises/content to it over the summer;)
OOP Implementation
chapter is missing the Overriding
section and there is a duplicate of the Classes
section.
In specifyingRequirements/userStories/usage/tools.md
, the video on GitHub Project Boards is no longer available on YouTube.
While working on #97, I realised that the section header Guideline: Maximise readability
under Implementation > Code quality
does not adhere to the American English spelling of maximize
. This is inconsistent with the rest of the textbook which uses the American English spelling of words.
Link to the relevant section in the CS2103T AY20/21 S1 textbook.
Not making this change in #97 because I am unsure of whether it will break all of the relative links to this section in the repo, as well as the module-specific textbooks. If this change is too much effort, feel free to close this issue.
Let's sort sit.json in alphabetical order. Otherwise it's hard to find things.
This can be added just below the one about alpha and beta testing.
Screenshot from https://nus-cs2103.github.io/website-base/se-book-adapted/
Hi there! I was looking through your online book, and I wanted to point out that there's a design issue in the section on inheritance. From the text:
However, the two classes cannot be simply replaced with a more general class
Person
because of the need to distinguish betweenMan
andWoman
for the ‘marriage’ association. A solution is to add thePerson
class as a super class and letMan
andWoman
inherit fromPerson
.
Given that same-sex marriage is legal in most of the developed world, distinguishing between Man
and Woman
in the class Marriage
makes the implementation fragile to changes in requirements. A more robust solution is to use the type Person
.
This is actually a really good example of how untested assumptions that we as software engineers make can come back to haunt us later. This could be a good object lesson on the need for requirements analysis.
Minimally, can be similar to this:
Search box is the important thing. Configure to search up to level 5 headings.
See https://nus-cs2103.github.io/website-base/se-book-adapted/
As recommended by Google documentation guidelines
The attribute "title" used for popovers and modals is deprecated. It may not be used in the future. Better to replace "title" with "header"
Typo in <include src="q-tick-associationCLasses.md" />
Should be <include src="q-tick-associationClasses.md" />
Change uppercase L
to lowercase l
.
There is only one topic here. Only the java coding standard has multiple levels.
Hello, I spotted some typos and have linked the relevant code
In W1.1e exercise, checqueJohnGave
should be chequeJohnGave
In W1.3d the subclass should provides implementations
should be the subclass should provide implementations
In W1.3h, calcuateGrade
should be calculateGrade
In Week 3 Project A-Jar, In the page where you fill the details of th release
should be In the page where you fill the details of the release
In W4.5a allows writing a methods
should be allows writing a method
In W5.3e Step 4: List the user stories to supports the scenarios:
should be Step 4: List the user stories to support the scenarios:
In UML minimal notation diagram get minefiled info
should be get minefield info
In W7.2n designing a variations
should be either designing a variation
or designing variations
In W7.5C on the website (stubs
) does not show tooltip when hovering over the text. Relevant code found here
In W7.7c Centralized RCS (CRCS for short)uses
should be Centralized RCS (CRCS for short) uses
(missing whitespace)
The List of definitions
, Learning outcomes
and Home
pages don't follow sentence case. Do we need to make them follow sentence case too?
Under Design > Modeling > Modeling structures > Object Oriented Domain Models
, the example of the OODM for the snakes and ladders game states:
The above OO domain model omits the ladder class for simplicity. It can be included in a similar fashion to the Snake class.
However, the Ladder
class is not omitted from the OODM.
Link to the relevant section in the CS2103T AY20/21 S1 textbook.
https://markbind.github.io/cs2103-website/book/oopDesign/
Also rename FAQ
to Misc
Method overriding is when a sub-class changes the behavior inherited from the parent class by re-implementing the method. Overridden methods have the same name, same type signature, and same return type.
Actually, Java supports covariant return type. https://stackoverflow.com/a/14694885 (since Java 5, as pointed out in the answer)
reason: in some cases pull requests need to be covered in a separate week from push/pull etc.
Some of the full.md files are missing the <include src="prereq.md"/><p/>
at top.
Also, some of them have
%%**<include src="../../path.md" inline />**%%
instead of
%%**<include src="../path.md" inline />**%%
(path should come from parent folder, not grand parent folder)
<include src="prereq.md"/><p/>
%%**<include src="../path.md" inline />**%%
<include src="text.md#title" />
<div id="main">
<include src="text.md#body" />
<include src="text.md#extras" />
</div>
Currently Gathering Requirements
and Specifying Requirements
are in the Requirements
section. We can extract them as separate documents.
Hi Prof, noted your reply on adding exercises and will not be doing it then.
As there are limited issues listed in this repo, I am wondering if there are potential tasks/content that could be done to supplement this textbook further?
Besides the two issues I saw ( #48 microservices architecture and #47 serverless architecture) which I lacked the ability to include,
I am wondering if it is welcomed to add the following content:
Just some thoughts that I hope will be helpful for students taking 2103T in the future iterations. Please forgive me for intruding and close this issue if it is not in line with the goals of this book.
Should be: Can explain Liskov Substitution Principle
(also note the capitalization)
Use 'you' instead.
tools/java/javaFXBasics:
part 1: adjust image sizes (some are too big)
part 2 (still in basic markdown format): adjust similar to part 1 using markbind syntax
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.