Presentation: Introduction to Course

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, performing iterative development in a small team, and process improvement.

“Good code” includes consistently using a coding convention, using best practices, write code that is readable and testable, documenting your code, reviewing, and restructuring (refactoring) 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.

What Does ChatGPT Recommend?

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

Read: ChatGPT’s answer

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.

Topics

Topics are listed on the course index page.
The topics are provided for reference – it’s not in the order we cover them.

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

Please see About page for instructions.

After you join the Google Classroom, there is a video link classroom meet icon on the classroom page to join the Google Meet. Click on that link to join a Meet.

You should have a microphone so you can participate in class meetings.

Coursework

  • Weekly Class Meeting (“Lecture”)
  • Weekly Lab
  • Quiz and Unit Assessments some weeks.
  • Weekly Reading and Problems. Please do before next class.
  • Team Software Project
  • Regular 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 (IntelliJ), PyDev (Eclipse), or VS Code
  • Python 3.9 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
    • The Git tool included in IDEs is useful, 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 much learning requires reading and doing.

Prerequisites

  • Programming ability at 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
    • run programs
    • OK 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.

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 on each learning unit, instead of comprehensive midterm & final exams
  • quizzes
  • participation in class
  • assignments (homework)
  • 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 Average to Pass: average assessments score of at least 50% on both lecture and lab parts 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).