Individual Software Process (ISP) covers the fundamentals of software process, focusing on the knowledge and skills to be an effective software developer, both individually and on a team.

Topics include software process models, writing good quality code, reviewing and testing code, refactoring, using a Git workflow, automation, Agile principles and values, team work, performing iterative development in a small team, and process improvement.

“Good code” includes consistently using a coding convention, following best practices, writing code that is readable and testable, documenting your code, reviewing, and refactoring (restructuring) when needed.

To practice all these skills, you will develop a web application as part of a team, and also learn about HTTP and web frameworks.

01219346 Software Process & Project Management covers software process in more depth.

Presentation: Introduction to Course

What Does ChatGPT Recommend?

I asked ChatGPT: “What is the most important process knowledge for software developers?

Here is ChatGPT’s answer

Course Goals

  1. Gain the knowledge, skills, and habits to be an effective developer – both individually and on a team.
  2. Ability to write good quality, correct, maintainable code.
  3. Understand software process fundamentals and their purpose.
  4. Learn to work effectively as part of a team.

Topics

Topics are listed on the course index page.

The topics are for reference – it’s not in the order we cover them.

Prerequisites

  • Programming ability at the level of Programming 2, including OOP

  • Ability to use Git and Github

  • Know how to use command line interface to:

    • view and modify files
    • navigate the file system on your computer
    • run programs
    • Use one of these shells: Bash, Z-shell, PowerShell, or Windows CMD (deprecated)

Programming 2 is Essential!

If you have not taken Prog 2 yet, please don’t enroll in this course.

How to Join Google Classroom? How to Contact TAs & Instructor?

Please see About page for instructions.

Coursework

  • Weekly Class Meeting (“Lecture”)
  • Weekly Lab
  • Quiz and Assessments some weeks.
  • Weekly Reading and Problems. Please do before next class.
  • Team Software Project
  • Virtual/live meetings with TAs
  • Effort: plan to spend 10-12 hours per week on ISP.

Platform we will use:

  • Google Classroom for announcements, assignments, and discussion.
  • Github Classroom for programming assignments and quizzes.
  • Course Material on https://cpske.github.io/ISP/.
  • Discord for discussion and quiz/exam monitoring.

Software You Need

  • IDE such as PyCharm, PyDev (Eclipse), or VS Code
  • Python 3.11 or newer
  • Good text editor (something better than Notepad).
    • Good editors: Atom, Notepad++, Sublime, VS Code (a bit slow), TextMate (for Mac)
  • Git command line client
    • Your IDE includes a Git tool that makes using git faster, but you still need the command line git and know how to use it!
  • OBS Studio to record your screen during exams.

Why a Team Software Project?

A major challenge in creating software is working effectively as a team. Many skills we study in ISP are intended to improve team work.

Hence, we need a team project to practice both individual and project-related skills.

In the course you will design, implement, and deploy a web application in a team of approx. 4 people. The project is also an opportunity to learn the basics of HTTP, web frameworks, and web application development.

Prior years’ students say that the project is the most valuable part of the course.

Not a Powerpoint Course

“Powerpoint” slides aid presentations, but don’t contain much depth.

You need to read the assigned material and learn from hands-on work for a real understanding.

Not a Video Course, Either

Some videos are provided, but most learning involves reading and doing.

Grading

Your grade is based on your understanding and ability to apply the material in this course.

Grade is about knowledge and ability to apply it – not about points.

Nonetheless, we assess your understanding using:

  • assessments including quizzes and exams
  • participation in class
  • assignments (homework, classwork, lab work)
  • project work and use of good software process

The project score is based on how well you apply a process, the technical quality, and your individual contribution to the project. The final product is only a part of the project score.

Minimum Requirement to Pass:

  • an average exam score of at least 50% to pass.

If you achieve the minimum exam average, then the approximate grading scale based on all your work is:

Overall Score Grade
85 - 100 A
75 - 85 B
65 - 75 C
55 - 65 D
 0 - 55 F

A “+” grade is given to the upper part of the B, C, and D ranges.

Advise from SKE Graduates

8 Recommendations to Developers by Jomzaap Sittipithaya (จอมทรัพย์ สิทธิพิทยา), SKE graduate, entrepreneur, and co-founder of Exzy Corp, from his presentation at KU.
Advise from TaskWorld by SKE grads working at TaskWorld (international software firm in Bangkok).