NTU Course

Software Development Methods

Offered in 112-2
  • Serial Number

    40052

  • Course Number

    IM5027

  • Course Identifier

    725 U3340

  • No Class

  • 3 Credits
  • Elective

    DEPARTMENT OF INFORMATION MANAGEMENT / GRADUATE INSTITUTE OF INFORMATION MANAGEMENT

      Elective
    • DEPARTMENT OF INFORMATION MANAGEMENT

    • GRADUATE INSTITUTE OF INFORMATION MANAGEMENT

  • YIH-KUEN TSAY
  • Wed 7, 8, 9
  • 管二302

  • Type 2

  • 50 Student Quota

    NTU 48 + non-NTU 2

  • No Specialization Program

  • Chinese
  • NTU COOL
  • Core Capabilities and Curriculum Planning
  • Notes

    部份週次之週三6有實習課,地點同上課教室。

  • Limits on Course Adding / Dropping
    • Restriction: juniors and beyond

  • NTU Enrollment Status

    Enrolled
    0/48
    Other Depts
    0/4
    Remaining
    0
    Registered
    0
  • Course Description
    This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project.
  • Course Objective
    The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development.
  • Course Requirement
    The students are assumed to have taken Object-Oriented Programming and Database Management.
  • Expected weekly study hours before and/or after class
  • Office Hour
    Tue13:30 - 14:00
    Wed13:30 - 14:00
    Or by appointment using email.
  • Designated Reading
    Class notes and selected readings.
  • References
    See the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main
  • Grading
    30%

    Final Exam

    50%

    Term Project

    Details will be provided on the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main

    10%

    Participation

    10%

    Homework

    There are five homework assignments.


    1. NTU has not set an upper limit on the percentage of A+ grades.
    2. NTU uses a letter grade system for assessment. The grade percentage ranges and the single-subject grade conversion table in the NATIONAL TAIWAN UNIVERSITY Regulations Governing Academic Grading are for reference only. Instructors may adjust the percentage ranges according to the grade definitions. For more information, see the Assessment for Learning Section
  • Adjustment methods for students
    Adjustment MethodDescription
    A1

    以錄音輔助

    Assisted by recording

    B1

    延長作業繳交期限

    Extension of the deadline for submitting assignments

    C1

    延後期末考試日期(時間)

    Final exam date postponement

    D1

    由師生雙方議定

    Negotiated by both teachers and students

  • Make-up Class Information
  • Course Schedule
    Week 1Introduction; Productivity Tools: Version Control with Git
    Week 2Software Modeling: An Overview of UML; Term Project: Initial Discussions
    Week 3Software Modeling: UML Diagrams; Productivity Tools: Chrome DevTools
    Week 4Software Implementation: Web Programming Pearls
    Week 5Term Project: Proposal Presentations; Software Development Practice: Design Document
    Week 6Software Modeling: Domain Modeling
    Week 7Holiday
    Week 8Term Project: First Preliminary Demos; Software Security: Web Application Security
    Week 9Productivity Tools: Debuggers; Software Design: Design Patterns
    Week 10Software Design: Design Patterns
    Week 11Software Development Practice: Agile Development in Practice
    Week 12Term Project: Second Preliminary Demos; Midterm Discussions
    Week 13Software Verification: Testing
    Week 14Formal Specification: Formal Logic and Correctness Requirements; Formal Verification: Verification of Programs with Frama-C and ACS
    Week 15Term Project: Final Presentations
    Week 16Final Exam