+
# Contact
* Suggestions, questions, and bug reports can be posted in
[our issue tracker](https://github.com/nus-oss/learningresources/issues)
-* Alternatively, contact project mentor [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch)
\ No newline at end of file
+* Alternatively, contact project mentor [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch)
+
+
# Guidelines for Contributors
* Our objective is to help SE students learn a relevant topic quickly by locating good learning resources.
@@ -19,3 +24,5 @@
* When contributing, follow the [oss-generics process](https://github.com/oss-generic/process) where applicable.
+
+
diff --git a/README.md b/README.md
index 96cb9e27..47b5cd2e 100644
--- a/README.md
+++ b/README.md
@@ -7,3 +7,5 @@ This repository is a collection of Software Engineering learning resources.
---
[Guidelines for Contributors](GuidelinesForContributors.md) | [Contact](Contact.md) | License: MIT
+
+
diff --git a/_markbind/head/head.md b/_markbind/head/head.md
new file mode 100644
index 00000000..b1b7effb
--- /dev/null
+++ b/_markbind/head/head.md
@@ -0,0 +1 @@
+
diff --git a/_markbind/variables.md b/_markbind/variables.md
index 13baf728..02761a01 100644
--- a/_markbind/variables.md
+++ b/_markbind/variables.md
@@ -1,9 +1,8 @@
-
+
# Introduction to Machine Learning (ML)
Authors: [Alex Fong](https://github.com/alexfjw)
@@ -218,3 +221,5 @@ Popular resources for keeping up with machine learning research
## Footnotes
[1]: No link is provided as MOOC is in unofficial release at time of writing
+
+
+
# Introduction to Android App Development
Authors: [Lee Yan Hwa](https://github.com/leeyh20)
@@ -190,3 +193,5 @@ Going further, it will be useful to know more about:
Other useful links:
* [Android Authority](https://www.androidauthority.com)
* [Android Central](https://www.androidcentral.com/)
+
+
+
# REST Architectural Style
Author: [Wen Xin](https://github.com/wenmogu)
@@ -92,4 +95,5 @@ The server can send a code snippet to the client to let the client execute. One
* Code On Demand
* [a general wikipedia explanation](https://en.wikipedia.org/wiki/Code_on_demand)
* [a stackoverflow explanation](https://stackoverflow.com/questions/32094952/code-demand-constraint-for-restful-apis?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa)
-* [Video explaning REST (easy to get the big picture but not very precise)](https://www.youtube.com/watch?v=YCcAE2SCQ6k)
\ No newline at end of file
+* [Video explaning REST (easy to get the big picture but not very precise)](https://www.youtube.com/watch?v=YCcAE2SCQ6k)
+
+
# Rvalue References and Move Semantics
Authors: [Tan Jun An](https://github.com/yamidark)
@@ -175,3 +178,5 @@ The following resources gives more readings on what was discussed, and a more in
* [C++ Rvalue References Explained in 11 Sections](http://thbecker.net/articles/rvalue_references/section_01.html)
* [Sample examples of using Rvalue References and Move Semantics](http://www.bogotobogo.com/cplusplus/C11/5B_C11_Move_Semantics_Rvalue_Reference.php)
* [The Rvalue Reference Anti-Pattern](http://cpptruths.blogspot.sg/2012/03/rvalue-references-in-constructor-when.html)
+
+
+
# Introduction to Databases & Database Management Systems (DBMS)
Authors: [Syed Abdullah](https://github.com/Skaty)
@@ -168,4 +171,5 @@ Another level of abstraction is the **database abstraction layer**. This is usua
##### Database abstractions
- [PHP Data Objects](https://secure.php.net/manual/en/book.pdo.php)
-- [Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping)
\ No newline at end of file
+- [Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping)
+
+
# DevOps
Authors: [John Yong](https://github.com/whipermr5)
@@ -118,4 +121,5 @@ As a software engineering student, the best way to get started is to gain some p
- [Best Guide to Getting Started In DevOps](https://blog.xebialabs.com/2015/04/23/best-guide-to-getting-started-in-devops/) - recommends various places you can read up more on the topic
- [9½ Simple Steps On How To Start With DevOps Today](https://devops.com/9%C2%BD-simple-steps-start-devops-today/) - includes practical suggestions like using a code static analysis tool
- [A Pragmatic Guide to Getting Started with DevOps](http://www.ca.com/us/lpg/~/media/Files/eBooks/a-pragmatic-guide-to-getting-started-with-devops.pdf) - more of a management point of view but interesting
-- [The DevOps Handbook: How to Create World-Class Speed, Reliability, and Security in Technology Organizations](https://books.google.com.sg/books/about/The_Devops_Handbook.html?id=XrQcrgEACAAJ) - about managing tech organisations, written by a CTO
\ No newline at end of file
+- [The DevOps Handbook: How to Create World-Class Speed, Reliability, and Security in Technology Organizations](https://books.google.com.sg/books/about/The_Devops_Handbook.html?id=XrQcrgEACAAJ) - about managing tech organisations, written by a CTO
+
+
# An Introduction to Functional Programming
Authors: [Phang Chun Rong](https://github.com/crphang)
@@ -138,4 +141,5 @@ Functional programming can be a very different programming paradigm and it defin
- A good [overview of functional programming](https://en.wikipedia.org/wiki/Functional_programming)
- A six-part [introduction to functional programming](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536)
- If you are hungry for more, take the [excellent functional programming principles course](https://www.coursera.org/learn/progfun1)
-- And to help with the mindset shift for functional programming, take a look at a [practical guide on how to translate an imperative to functional style](https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming)
\ No newline at end of file
+- And to help with the mindset shift for functional programming, take a look at a [practical guide on how to translate an imperative to functional style](https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming)
+
diff --git a/contents/go/Go.md b/contents/go/Go.md
index 7e1b6edf..602aa73b 100644
--- a/contents/go/Go.md
+++ b/contents/go/Go.md
@@ -1,10 +1,13 @@
title: Introduction to Go
footer: footer.md
+ head: head.md
{{ navbar | safe }}
+
+
# Introduction to Go
Author(s): [Cara Leong](https://github.com/craaaa)
@@ -278,3 +281,5 @@ Go's development team is heavily involved in documenting and growing the Go lang
- [The Go FAQ](https://golang.org/doc/faq) - answers common questions about the language's history, usage, design and more
- [Go's documentation](https://golang.org/doc/) - a good starting point, contains links to official information about Go
- [The Go Blog](https://blog.golang.org/) - features news and in-depth articles about Go by the Go team and guests
+
+
diff --git a/contents/gpgpu/cuda.md b/contents/gpgpu/cuda.md
index 8c7b0a0e..62a04fe1 100644
--- a/contents/gpgpu/cuda.md
+++ b/contents/gpgpu/cuda.md
@@ -1,10 +1,13 @@
title: An Introduction to CUDA
footer: footer.md
+ head: head.md
{{ navbar | safe }}
+
+
# An Introduction to CUDA
###### Author: [Pierce Anderson Fu](https://github.com/PierceAndy)
@@ -250,3 +253,5 @@ This topic is widely covered. Here are some good references on what the differen
[7]: http://stackoverflow.com/a/5957647 [8]: https://developer.nvidia.com/cuda-faq#Programming [9]: https://www.khronos.org/opencl/
+
+
+
# An Introduction to GPGPU
###### Authors: [Pierce Anderson Fu](https://github.com/PierceAndy), [Nguyen Quoc Bao](https://github.com/bqnguyen94)
@@ -89,3 +92,5 @@ Compatible with a range of components and large ecosystem products[[8]](#fo
[7]: https://en.wikipedia.org/wiki/Tegra#Tegra_X1/ [8]: https://elinux.org/Jetson_TX2#Ecosystem_Products [9]: https://developer.nvidia.com/embedded/learn/success-stories
+
+
+
# Introduction to Haskell
Author: Thenaesh Elango
@@ -1048,3 +1051,5 @@ ad-hoc fashion.
for the major typeclasses contained in the Haskell hierarchical libraries. Use
it to determine which typeclasses are related to which (e.g. every monad is an
applicative functor, which is in turn a functor).
+
+
+
# Java Concurrency
Authors: Vivek Lakshmanan
@@ -224,3 +227,5 @@ The following resources are interesting reads for a deeper understanding.
* [Computer Science Stack Exchange Post on the difference between Concurrency and Parallelism](https://cs.stackexchange.com/questions/19987/difference-between-parallel-and-concurrent-programming)
* [Java Locks and Atomic Variables Tutorial](https://www.callicoder.com/java-locks-and-atomic-variables-tutorial/)
* [A comparison between concurrency in Golang and Java](https://www.quora.com/What-is-the-advantage-of-Googles-Golang-over-Java-and-Scala)
+
+
+
# Advanced Java: Reflections
Authors: [Jeremy Goh](https://github.com/MightyCupcakes), [Yong Zhi Yuan](https://github.com/Zhiyuan-Amos)
@@ -266,3 +269,5 @@ While Java reflections are powerful, you should not immediately jump on the refl
[https://github.com/google/guava/wiki/ReflectionExplained](https://github.com/google/guava/wiki/ReflectionExplained)
+
+
+
# Java Synchronization
Authors: [Boxin](https://github.com/boxin-yang)
@@ -139,3 +142,5 @@ Java Synchronization as demonstrated in this tutorial is easy to learn, and you
[5]: https://en.wikipedia.org/wiki/Thread_safety
[6]: https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
[7]: https://en.wikipedia.org/wiki/Semaphore_(programming)
+
+
+
# Java 8 Streams - An Introduction
Author: Lee Yi Min
@@ -410,3 +413,5 @@ The five-part tutorial by Brian Goetz gives a complete guide on how to work with
#### Common pitfalls
* https://blog.jooq.org/2014/06/13/java-8-friday-10-subtle-mistakes-when-using-the-streams-api/
The article gives a list of other common mistakes one may make when using streams.
+
+
+
# VueJs
Author: [Lu Lechuan](https://github.com/LuLechuan)
@@ -159,3 +162,5 @@ A majority of users of VueJs are the Chinese as VueJs is developed by a Chinese
## References
- [VueJS Official Website](https://vuejs.org/)
+
+
+
# Libraries
Authors: Li Kai
@@ -33,3 +36,5 @@ The general advice is to go for Mocha if you are new, due to its [large communit
Jest, due to its speed, support for React.js, support for asynchronous testing and helpful terminal outputs, seems to be the upcoming major player. The fact that it is being made by Facebook is icing to the cake.
The odd test framework in the list above is QUnit, which is a test framework that runs on the browser instead of node.js like the others. QUnit has been around longer. Unless you are running JQuery and need to test for browser or UI related bugs, it is no longer a conventional choice.
+
+
+
# Javascript: Promises
Author: Daniel Berzin Chua
@@ -205,3 +208,5 @@ You may read more about Promises, and how to use them at the following 2 website
[JavaScript Promises: an Introduction](https://developers.google.com/web/fundamentals/primers/promises)
[JavaScript Promises for Dummies](https://scotch.io/tutorials/javascript-promises-for-dummies)
+
+
+
# Writing Testable Javascript
Authors: Li Kai
@@ -258,3 +261,5 @@ The title says it all. From the most common to obscure patterns, this book cover
[Namespacing in Javascript](https://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/)
[Method Chaining in JavaScript](https://schier.co/blog/2013/11/14/method-chaining-in-javascript.html)
+
+
+
# Null Safety in Kotlin
Author: [Pan Haozhe](https://github.com/Haozhe321)
@@ -149,3 +152,5 @@ The operator converts any value to a non-nullable type and throws an exception i
* [Null Safety in Kotlin](https://kotlinlang.org/docs/reference/null-safety.html)
* [Comprehensive Guide to Null Safety in Kotlin](http://www.baeldung.com/kotlin-null-safety)
* [The Billion Dollar Mistake](https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare)
+
+
+
# Introduction to Kotlin
Author: [Shradheya Thakre](https://github.com/tshradheya)
@@ -107,3 +110,5 @@ The biggest issue is that Java isn’t a modern language, and although Java 8 wa
- [Official Resources by Android](https://developer.android.com/kotlin/resources.html)
- [Kotlin Documentation](https://kotlinlang.org/docs/reference/)
- [Cheatsheet for shifiting from Java to Kotlin](https://github.com/MindorksOpenSource/from-java-to-kotlin)
+
+
+
# Introduction to Node.js
Author: Rachael Sim
@@ -215,3 +218,5 @@ To find out more about when you should or should not use Node.js, checkout these
* A summary and curation of the top-ranked content on Node.js best practices - [Node.js Best Practices](https://github.com/i0natan/nodebestpractices)
* Node.js architecture and features - [All About Node.Js You Wanted To Know](https://codeburst.io/all-about-node-js-you-wanted-to-know-25f3374e0be7)
* More about `package.json` - [npm official documentation on package.json](https://docs.npmjs.com/files/package.json).
+
+
+
# Introduction to Performance Optimization
Author: [Ian Teo](https://github.com/IanTeo), [Phang Chun Rong](https://www.github.com/Crphang)
@@ -126,3 +129,5 @@ In the example above, Row major takes around 100ms, while column major takes aro
If you want to know more about Optimization, especially for that critical 3%, these other resources could be useful:
* Finding the critical path - [Performance Profiling](PerformanceProfiling.md)
+
+
+
# Performance Profiling
Author: [Ong Heng Le](https://github.com/initialshl)
@@ -84,4 +87,5 @@ For Visual Studio 2015:
1. What is a software profiler?: [Profiling Overview](https://msdn.microsoft.com/en-us/library/bb384493(v=vs.110).aspx)
1. Common performance profiling methods: [Understanding Performance Collection Methods](https://msdn.microsoft.com/en-us/library/dd264994.aspx)
1. Learn the best practices in profiling: [Advanced Profiling: Theory in Practice with NetBeans IDE](https://netbeans.org/community/magazine/html/04/profiler.html)
-1. Why do profilers exclude small functions from instrumentation by default?: [Excluding Small Functions From Instrumentation](https://blogs.msdn.microsoft.com/profiler/2008/07/08/excluding-small-functions-from-instrumentation/)
\ No newline at end of file
+1. Why do profilers exclude small functions from instrumentation by default?: [Excluding Small Functions From Instrumentation](https://blogs.msdn.microsoft.com/profiler/2008/07/08/excluding-small-functions-from-instrumentation/)
+
diff --git a/contents/performance/ProfilingDesktopAppVS2015.md b/contents/performance/ProfilingDesktopAppVS2015.md
index c34d1050..6748bc13 100644
--- a/contents/performance/ProfilingDesktopAppVS2015.md
+++ b/contents/performance/ProfilingDesktopAppVS2015.md
@@ -1,10 +1,13 @@
title: Profiling a Desktop Application In Visual Studio 2015
footer: footer.md
+ head: head.md
{{ navbar | safe }}
+
+
# Profiling a Desktop Application In Visual Studio 2015
Author: [Ong Heng Le](https://github.com/initialshl)
@@ -59,3 +62,5 @@ function body. But before that, here's a final tip: It is sometimes easier
1. The general steps in profiling your program: [Beginners Guide to Performance Profiling](https://msdn.microsoft.com/en-us/library/ms182372.aspx)
1. Read my chapter on performance profiling for more advanced topics: [Performance Profiling](PerformanceProfiling.md)
+
+
+
# Agile Development
Author: [Joanne Ong](https://github.com/joanneong)
@@ -138,3 +141,5 @@ Here is a compilation of other resources on agile development for your further e
- [Scrum vs Kanban vs Scrumban](http://www.eylean.com/blog/2013/05/scrum-vs-kanban-vs-scrumban-planning-estimation-and-performance-metrics/)
- [Scrum vs Kanban vs Lean vs XP](https://dzone.com/articles/agile-framework-comparison-scrum-vs-kanban-vs-lean)
- [XP vs FDD vs FDSM](https://project-management.com/xp-fdd-dsdm-and-crystal-methods-of-agile-development/)
+
+
+
# Documentation
Authors: [Chua Ka Yi Ong](https://github.com/kychua)
@@ -167,4 +170,5 @@ In addition to the links mentioned above, here are the links used in the writing
* https://arialdomartini.wordpress.com/2012/09/03/pre-emptive-commit-comments/
* https://spin.atomicobject.com/2015/04/24/source-control-documentation/
* https://wiki.openstack.org/wiki/GitCommitMessages
-* https://github.com/matiassingers/awesome-readme
\ No newline at end of file
+* https://github.com/matiassingers/awesome-readme
+
+
# An Introduction to Python
Authors: [Samson Tan Min Rong](https://www.linkedin.com/in/samsontmr/), [Phang Chun Rong](https://www.github.com/Crphang)
@@ -95,4 +98,5 @@ Looking at the above example, one might think that `my_other_list` will be `[42]
Learning how to avoid such pitfalls is one huge step towards being a productive Python programmer. Here are some other guides that state some common gotchas and how to avoid them:
* [Top 10 Common Mistakes of Python Programmers](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make)
-* [Common Python Gotchas](https://sopython.com/wiki/Common_Gotchas_In_Python)
\ No newline at end of file
+* [Common Python Gotchas](https://sopython.com/wiki/Common_Gotchas_In_Python)
+
+
# Introduction to Regular Expressions
Authors: Jamos Tay
@@ -365,4 +368,5 @@ Since `o` is a suitable match for `.+`, the engine accepts it and tries to match
### Further Reading
* [Regular Expressions Cookbook](https://www.amazon.com/Regular-Expressions-Cookbook-Solutions-Programming/dp/1449319432) - *Jan Goyvaerts, Steven Levithan*
* [Teach Yourself Regular Expressions in 10 Minutes](https://www.amazon.com/exec/obidos/ASIN/0672325667/jgsbookselection) - *Ben Forta*
-* [Mastering Regular Expressions](https://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124) - *Jeffrey Friedl*
\ No newline at end of file
+* [Mastering Regular Expressions](https://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124) - *Jeffrey Friedl*
+
+
# Best Practices with `git`
Author(s): [Darren Wee](https://github.com/darrenwee)
@@ -345,3 +348,5 @@ These are the resources used in the writing of this chapter, as well as any addi
- [Git for Computer Scientists](http://eagain.net/articles/git-for-computer-scientists/) - discusses the underlying implementation of `git` (merkle tree)
- [Pro Git](https://git-scm.com/book/en/v2)
- [The most useful git commands](https://orga.cat/posts/most-useful-git-commands) - a reference sheet of some handy command macros
+
+
+
# Introduction to Ruby
Authors: [Wilson Kurniawan](https://github.com/wkurniawan07)
@@ -152,3 +155,5 @@ As with most other languages, tools and frameworks exist for serious Ruby develo
- **Static Analysis:** [RuboCop](http://batsov.com/rubocop/) is the sole leading static analysis tool for Ruby language.
[This repository](https://github.com/markets/awesome-ruby) lists down a large collection of Ruby libraries, tools, frameworks, and software.
+
+
+
# Rust
Author(s): [Tan Li Hao](https://github.com/LiHaoTan)
@@ -192,3 +195,5 @@ Choosing the right language for the job is important so let's look at a few poss
Some other discussions on why not Rust:
- [How can Rust improve](https://www.reddit.com/r/rust/comments/7p75ab/why_rust_what_i_want_changed_for_rust_to_help_way/)
- [Why not Rust](https://www.reddit.com/r/rust/comments/6hp54n/blog_why_not_to_use_rust/)
+
+
+
# Scalable Development - An Introduction
Authors: Loh Jia Shun Kenneth, Vivek Lakshmanan
@@ -104,4 +107,5 @@ Use the following tips to avoid those pitfalls:
There is a huge gap between theory and practice. What looks well on paper might need tweaking with arbitrary constants and "hacks". As such, more research should be done before you implement any of the solutions.
-However, scalability will still be a crucial part of servers aiming to provide services to an increasingly-growing user base. Learning good scalability practices will help prevent developing a server that will never be able to scale. Take the time to explore the depths of scalability, and you will be able help your server scale to meet its demand.
\ No newline at end of file
+However, scalability will still be a crucial part of servers aiming to provide services to an increasingly-growing user base. Learning good scalability practices will help prevent developing a server that will never be able to scale. Take the time to explore the depths of scalability, and you will be able help your server scale to meet its demand.
+
+
# Security - https
Author: [Boxin][1]
@@ -90,4 +93,5 @@ HTTPS provides security to a web application. If the web application requires s
[21]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack
[22]: https://weakdh.org/
[23]: https://en.wikipedia.org/wiki/Session_hijacking
-[24]: https://www.youtube.com/watch?v=BjTwNzoMUuk
\ No newline at end of file
+[24]: https://www.youtube.com/watch?v=BjTwNzoMUuk
+
+
# Cross Site Request Forgery (CSRF)
Author: [Tran Tien Dat](https://github.com/tran-tien-dat)
@@ -115,3 +118,5 @@ So a valid request by Alice made from the bank's own website will also carry thi
- https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet (In-depth discussion of the various defense approaches, including those that do not work)
- http://www.cgisecurity.com/csrf-faq.html (Short FAQs about CSRF)
- https://docs.djangoproject.com/en/2.0/ref/csrf/ (CSRF Protection in Django)
+
+
+
# Cross Site Scripting
Author: [Tan Wang Leng](https://github.com/nus-oss/cs3281-website/tree/master/students/AY1617S2/tanWangLeng/TanWangLeng-Resume.md)
@@ -116,3 +119,5 @@ Additional Resources:
(Ruby on Rails plugin responsible for escaping String input in Ruby on Rails websites)
1. http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html
(Ruby on Rails HTML sanitization function)
+
+
+
# Introduction to Cryptography
Authors: [Dickson Tan](https://github.com/neurrone)
@@ -123,4 +126,5 @@ The [first article of this 2-part series ](http://doctrina.org/How-RSA-Works-Wi
* [Understanding Cryptography: A Textbook for Students and Practitioners](https://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000) is an outstanding introductory text. Explanations are excellent, and no knowledge of number theory is assumed. It was used as reference material for this document.
* [Awesome Cryptography](https://github.com/sobolevn/awesome-cryptography) is a curated list of resources - articles, blogs, books, libraries and more.
-* [Security Now](https://grc.com/sn) is a weekly podcast on security. Though it does not go into much detail about the underlying mathematics, there are many episodes on cryptography that provide a working knowledge of the subject. It also discusses security headlines, which emphasize the practical aspect of cryptography; while the math may be sound, implementation mistakes or side-channel attacks often cause vulnerabilities in practice.
\ No newline at end of file
+* [Security Now](https://grc.com/sn) is a weekly podcast on security. Though it does not go into much detail about the underlying mathematics, there are many episodes on cryptography that provide a working knowledge of the subject. It also discusses security headlines, which emphasize the practical aspect of cryptography; while the math may be sound, implementation mistakes or side-channel attacks often cause vulnerabilities in practice.
+
+
# SQL Injection
Author: [Lewis Koh](https://github.com/nus-cs3281/2018/blob/master/students/lewisKoh/lewisKoh-Resume.md)
@@ -175,4 +178,5 @@ Additional Resources:
1. https://github.com/sqlmapproject/sqlmap
(Penetration testing tool that detects and exploits SQL injection flaws)
1. https://find-sec-bugs.github.io/
-(Plugin to detect security vulnerabilities in Java web applications, including SQL injection)
\ No newline at end of file
+(Plugin to detect security vulnerabilities in Java web applications, including SQL injection)
+
# ESLint
@@ -137,3 +140,5 @@ A popular plugin would be [eslint-plugin-lodash](https://github.com/wix/eslint-p
* [ESLint Github](https://github.com/eslint/eslint): You can contribute to the project but remember to read their [guidelines](https://eslint.org/docs/developer-guide/contributing/) first
* [npm Developer Guide](https://docs.npmjs.com/misc/developers): If you're writing your own custom rules/configs, you need to know how to publish them on npm.
* [Awesome ESLint](https://github.com/dustinspecker/awesome-eslint): repository for ESLint configs, plugins and other useful links.
+
+
+
# FindBugs
Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html), [Shradheya Thakre](https://github.com/tshradheya)
@@ -142,3 +145,5 @@ The current projects using `FindBugs` can make a shift to `SpotBugs` by followin
- [FindBugs Official Website](http://findbugs.sourceforge.net): Official website of FindBugs. You can find more documentations here.
- [An Evaluation of FindBugs](http://www.cs.cmu.edu/~aldrich/courses/654/tools/Sandcastle-FindBugs-2009.pdf): Analysis of FindBugs in 2009's version, some content may be outdated. Useful for understanding the benefits and drawbacks.
- [Improve the quality of your code](https://www.ibm.com/developerworks/library/j-findbug1/): Some examples showing the bugs reported by FindBugs. You can get a rough idea of how FindBugs will help you in your project.
+
+
+
# PMD
Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html)
@@ -97,4 +100,5 @@ PMD use [JavaCC](http://javacc.org) to parse your code to a [AST(Abstract Syntax
## Resources
- [PMD](https://pmd.github.io/): PMD official website. You can download the latest version, view online documentation there.
- [PMD Github](https://github.com/pmd/pmd): PMD GitHub page. You can contribute to the project or report bugs there.
-- [StackOverflow PMD](https://stackoverflow.com/questions/tagged/pmd): Question/Answer forum in StackOverflow for PMD. You can ask question related to the using of PMD.
\ No newline at end of file
+- [StackOverflow PMD](https://stackoverflow.com/questions/tagged/pmd): Question/Answer forum in StackOverflow for PMD. You can ask question related to the using of PMD.
+
+
# CheckStyle
Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html)
@@ -88,4 +91,5 @@ CheckStyle will use [ANTLR](http://www.antlr.org) to parse your code into a [AST
## Resources
- [CheckStyle](http://checkstyle.sourceforge.net/): CheckStyle official website. You can download the latest version, view online documentation there.
- [CheckStyle Github](https://github.com/checkstyle/checkstyle): CheckStyle GitHub page. You can contribute to the project or report bugs there.
-- [StackOverflow CheckStyle](http://stackoverflow.com/questions/tagged/checkstyle): Question/Answer forum in StackOverflow for CheckStyle. You can ask question related to the using of CheckStyle.
\ No newline at end of file
+- [StackOverflow CheckStyle](http://stackoverflow.com/questions/tagged/checkstyle): Question/Answer forum in StackOverflow for CheckStyle. You can ask question related to the using of CheckStyle.
+
+
# Static Analysis
Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html)
@@ -115,3 +118,5 @@ Here, we will introduce several well-known ones in detail. You can click the hyp
## References
- [Why Static Code Analysis is Important?](http://javarevisited.blogspot.sg/2014/02/why-static-code-analysis-is-important.html)
+
+
+
# Swift
Authors: [Ch'ng Ming Shin](https://github.com/ablyx/cs3281-website/blob/mingshin-week6-progress/students/AY1617S2/ch'ngMingShin/Ch'ngMingShin-Resume.md), [Yong Zhi Yuan](https://github.com/Zhiyuan-Amos)
@@ -309,4 +312,5 @@ Here is an [article](https://krakendev.io/blog/weak-and-unowned-references-in-sw
## CocoaPods
-When you have been working on a Swift project for a while and start to think "Hmm... Someone has probably done something like this before" or "This is a common problem and there should be a library for this", check out [CocoaPods](https://guides.cocoapods.org/using/getting-started.html), THE package/library manager for Swift.
\ No newline at end of file
+When you have been working on a Swift project for a while and start to think "Hmm... Someone has probably done something like this before" or "This is a common problem and there should be a library for this", check out [CocoaPods](https://guides.cocoapods.org/using/getting-started.html), THE package/library manager for Swift.
+
+
# Writing Testable Code
When the project is big enough and needs to be maintainable in the long run, it has to rely on automated tests to keep up its quality. Compared to system testing where you test the program as a whole, unit testing has its benefit for being fast (because it only instantiates a small piece of the program) and stable (because it usually mocks out the unstable dependency, e.g. network connection, database connection). Because of this, having automated unit tests becomes extremely important for Object-Oriented programs.
@@ -171,3 +174,5 @@ This closely follows with [Open Closed Principle](https://en.wikipedia.org/wiki/
# Concluding Notes
This article includes ten rules that can help you understand some key concepts, such as seams, dependency injection, global states, singletons and Singleton. Also, I hope you can apply these rules into practice, like writing a program with these rules in mind or reviewing some code your wrote before and see whether you can improve its testability, so you can benefit from the things you learn in this article.
+
+
+
# Refining UX Design Skills
Author: [Tan Jun Kiat](https://github.com/junkiattan)
@@ -116,3 +119,5 @@ Know that there are many others before you who were new but successfully went in
## Additional Resource(s)
1. [List of Meetups/Conferences/Resources in Singapore](http://interface.sg/)
+
+
+
# UI/UX
Authors: [Ang Shi Ya](https://github.com/AngShiYa), [Tan Jun Kiat](https://github.com/junkiattan)
@@ -116,3 +119,5 @@ After User Testing and the launch of the final product, the next stage is Mainte
### Ending Notes
The clearly-stated objectives and deliverables of each stage culminate in a well-defined target audience and a well-designed prototype needed to match the expectations of that audience. UX Design requires empathy in the users' shoes and effort to address their problems, however all that is worth it in the grand scheme of delighting users when they use your applications.
+
+
+
# Learning Resources for Software Engineering Students
This repository is a collection of Software Engineering learning resources.
@@ -80,3 +83,5 @@ This repository is a collection of Software Engineering learning resources.
[Guidelines for Contributors](GuidelinesForContributors.html) | [Contact](Contact.html) | License: MIT
+
+