NSD Schedule 2025 Autumn NYCU#

NYCU course code 535705 (permanent course number CSDS30003).

Warning

Read carefully before taking the course.

The course introduces the art of building numerical software, i.e., computer programs applying numerical methods for solving mathematical, scientific, or engineering problems. We will be using Python, C++, and other tools (bash, git, make, etc.) to show the development process. You will learn:

  • practical software development by starting an open-source project

  • real-world applications of C++

  • software engineering for scientific and high-performance computing

  • essentials of professional software development

Homework takes 30% of grade, mid-term exam 30%, and term project 40%. You need to submit homework assignments using both GitHub PR (the homework repository https://github.com/yungyuc/nsdhw_25au) and E3.

Your term project is the core of the course. Read the requirements in Practical Project. You need to submit a proposal in the beginning of the course. Your performance will be assessed by using the final presentation. You may work on a standalone project or contribute to an existing open-source project for the presentation. If you are not sure where to start, use SOLVCON modmesh as an entry point.

Discussion#

The lecture meetings are not only for lecturing but also for discussing. Students are required to attend every meeting to discuss ideas and progress of the project. Discussion requires hard-learning skills and students are strongly recommended to also take the course Academic English Writing (course code 562045) if they have not.

You should also bring your term project to the sciwork meetup (on-site) and the sciwork discord #nsd channel (online). (You can reach me with the handle @yyc on the discord server.) Discussing with the open-source community is required.

Should you have any questions about the course, send me an email with the subject line starting with [nsd-course]. For homework grading, send an email to the grader. If the question is about the materials on the homework repository, you may file an issue.

Email is the professional tool for technical discussions. Do follow the email protocol described above.

No Additional Enrollment#

If the enrollment system says the course is full, it is full. I do not accept additional enrollment and you do not need to ask.

If you want to enroll but cannot get it in the beginning, sit in and wait. Not a lot of students want to take a course that requires attendance at 7 am every Monday. You will be able to enroll later.

Time Table#

The lecture hours are 7:00am – 9:50am every Monday. The lecture uses the classroom EC114.

The project proposal is due in the third week. Do not miss it. You may start to write the proposal before the semester. Writing a project proposal helps you learn software development even if you do not take the course. You won’t regret.

Week

Date

Subject

Comments

1

9/1 Mon

hw #1 release
proposal open
start to prototype

2

9/8 Mon

hw #1 due

3

9/15 Mon

hw #2 release
proposal due

4

9/22 Mon

hw #2 due

5

9/29 Mon

No meeting

6

10/6 Mon

No meeting (mid-autumn holiday)

7

10/13 Mon

hw #3 release

8

10/20 Mon

Mid-term examination

9

10/27 Mon

hw #3 due

10

11/3 Mon

hw #4 release

11

11/10 Mon

hw #4 due

12

11/17 Mon

Unit 9: Modern C++
hw #5 release

13

11/24 Mon

hw #5 due

14

12/1 Mon

hw #6 release

15

12/8 Mon

hw #6 due

16

12/15 Mon

Project presentation