This is for a new course on making web apps, taught for the first time in January, 2021. The constraints and goals here will change a little as I create the course.

The course is at https://webapps.skilling.us.

If you have thoughts, please comment.

Constraints

Students are business undergrad and grad students. Students are unlikely to ever be full-time professional programmers. They may:

  • Work with professional programmers, as project managers, business liaisons, system analysts...
  • Create departmental-level IS with tools like Drupal.
  • Write small custom systems from scratch.

Students' technical preparation ranges from a single programming course, to extensive programming experience. They may not have studied any of the tech used in the course.

Students may not have taken an HTML course.

Students may not have taken a database course, but most will have done so.

Students have basic math, business, and OS knowledge (moving files around, etc.).

Students have basic internet connections available.

Students may be working full-time.

Students have to pay for their own materials. Cheap is good. Free is best.

Some students are anxious about their ability to succeed in the course.

Goals

Help students:

  • Understand how web apps work
  • Create simple web apps

Students will be able to explain how the elements of a web app (database, HTML pages, programs...) work together to meet business requirements.

Students will create apps using HTML, CSS, PHP, and a relational database. The apps will be simple transaction processing and reporting systems.

Why PHP? It's widely used in industry, easy to learn, has little setup, and is widely supported on cheap hosting services. Programming patterns implemented in PHP (e.g., reading a record from a database) apply to other languages as well.

Why transaction processing? TP systems are common in every area of business. They are key to cost reduction. They are relatively structured. They are easy for students with little mathematical preparation to understand.

Focus on core concepts only.

  • Omit most HTML tags. Cover only a dozen or so.
  • Omit most CSS properties. Cover only a dozen or so.
  • Omit JavaScript? Probably, though might include a little validation, and simple effects. Not sure yet.
  • Omit responsiveness.
  • Basic a11y only.
  • Basic security only.

Students could include the apps they make in a work portfolio for employers.

Conclusions

  • Limit course to a few technologies.
  • Basic HTML/CSS.
    • Supply page templates, with branding, navbars, etc.
      • Teach students basic customization, e.g., colors, fonts, etc.
    • Exception: basic a11y.
  • Focus on basic concepts central to transaction processing systems.