Skip to content
Henry Chia edited this page Aug 4, 2022 · 8 revisions

NUS CS2030 Wiki Page

Welcome to the Wiki Page of CS2030 Programming Methodology!

Introduction

What do I do here?

Well, the main reason for the creation of this website is to facilitate Peer Learning.

We hope to make CS2030 a more collaborative environment for CS2030 Students to learn from one another.

How can I contribute?

There are 3 parts of the Peer Learning Component, which takes up a certain percentage of your entire CS2030 Grade.

They are:

  • 💭 Discussions done on our Github Forum
  • 📖 Contribution to Github Wikis
  • 💬 Discussions and participations done in Lab

Development Environment

Using Dockers

For this semester, we will be coding with Java 17 and vim, in a unix environment. For the labs, you will be coding in special SOC servers with everything pre-installed. For your personal practice at home, however, we recommend using the docker image provided by the course. It will contain everything you need to get started (you can skip "Setting up Unix", "Setting up Vim", "Setting up Java").

Setting up CheckStyle

In CS2030, we are training you to be professional software programmers, which often includes following a specific coding style as dictated by the company that hires you. The CS2030 style guide is available at our Java Style Guide wiki page, but since we are programmers, why not automate everything to save you time down the line? The .vimrc already configured vim to follow some of these guidelines, but your can more proactively check for style violations with this:

Using the JDB Debugger

Learning to program in a language is not just about knowing the syntax. You will also have to learn about how to debug your programs (because no matter how good you are, you will have bugs in your programs). While the compiler can catch compile errors for you, bugs that can pass compilation checks and run are more insidious.

JDB is the debugging tool for java programs. You should learn how to use it to effectively do the following:

  1. Attach a debugging session to your class.
  2. Set a breakpoint in your code.
  3. Step through a debugging session and inspect variables.

Refer to this site for an in depth tutorial. The workings of JDB will not be covered in lecture, but it will be useful for your project.

On Academic Integrity

Academic integrity is treated very seriously at NUS and any students found to have violated academic integrity will be put up for disciplinary actions. We know that CS2030 is a difficult module, but we hope that the learning gained will be valuable to you for life. Any form of cheating destroys all that learning opportunity for you and your classmates.

  • We encourage you to discuss design and concepts, but do not copy and paste code and submit as your own.
  • Do not test the codecrunch submission system with someone else's code. It will be registered as an official submission of your own work and it violates academic integrity.
  • Do not put your solutions up to github or any public repository that can be indexed by search engine.

Final Note

If you have any questions, be sure to reach out on the github issues page! There will be TAs and classmates to help. With that said, we encourage you to exhaust all the following options before posting a question:

  1. Google for the answer (This is an important skill).
  2. Experiment on your own. Many students ask questions like "Is it possible to do with ?". Well you can fire up Jshell and quickly test it out, or write a short program for it. Don't be afraid to code!

If you are able to help a classmate, be sure to contribute to their learning as well. Explaining something to someone else is the best way to learn.