Subsections of Previous Versions

Course Introduction

Web Only

This textbook was authored for the CIS 526 - Web Application Development course at Kansas State University. This front matter is specific to that course. If you are not enrolled in the course, please disregard this section.

YouTube Video

Course Resources

Welcome Message

Hello students, and welcome to CIS 526 – Web App Design. My name is Nathan Bean, and I will be your instructor for this course. I wanted to briefly discuss the structure and delivery of the course here, and you can find more detail in the sections to come.

Of important note is that we are packing a lot of content into an eight-week summer course. This will be a significant amount of work, and you will need to stay on top of it. I recommend putting aside 10 to 20 hours every week to work on the class. Remember, whomever does the work does the learning - so you’ll need to put in the work.

Canvas

First, we will be using K-State Online (canvas) more heavily than you probably are used to. I’ve also stripped out a lot of the Canvas tools that we simply aren’t using to focus on those we are. I am dividing the course into weeks, each of which is contained in a module in Canvas, and listed in the order I would suggest you explore the content. Thus, you can look at each week’s module to see what you need to accomplish. Additionally, all authoritative due dates will appear in Canvas. You can see them in the sidebar, and also under the assignment listings.

Codio

A second tool we’ll be making heavy use of is the Codio platform. Codio is also an online learning tool, but one meant specifically for programmers. It combines content delivery with an online IDE (Integrated Development Environment), and each unit in Codio runs on a virtual machine running Linux that you have full root level access to. This is an inordinately powerful tool for learning web development, especially when you consider the vast majority of web applications are hosted on Linux servers. Another great benefit is that if you have a question about an error you’re encountering in your code, and you’d like me to take a look – you don’t have to send me code snippets or screenshots in an email. Just a description of your problem, because I can open your project in Codio and have direct access to your work. This also means I can give you faster and more accurate feedback – not a bad thing when we’re trying to cover as much as we are.

Discord

We’ll also be using the departmental Discord server heavily for communications. Our first assignment is an icebreaker – introducing ourselves in the #cis526 channel. Why, you wonder? Am I a sadist? Well, no. One of the biggest differences in online courses is that it is often just you interacting with the course content the instructor has developed. It can be almost as if you were taking the class by yourself. That’s great in some ways, but it can also suck in others. So by introducing ourselves, we have an idea of who else is in the course – the same way you could look across the classroom and see your fellow students.

Videos

You may have had online courses where the professor recorded their regular in-class lectures and uploaded them as one-hour videos. I hated that as a student, and I think it is a poor pedagogical strategy. When I give you video materials, I will strive to keep them short, succinct, and do enough post-processing that they flow reasonably well. I’ll also post them through YouTube, so you can speed them up if you like.

Readings

But most of the topics I would normally cover in a lecture will be done through an interactive online textbook delivered through canvas. This allows me to embed hands-on examples tied to the subjects we are discussing and gives you some opportunity to move through the material at your own pace and choice of time. There are also micro-assessments sprinkled throughout the text. These are not meant to be tricky or difficult, but rather to encourage you to reflect on what you just read and apply it. These assessments can be taken as many times as it takes to reach the right answer without penalty. My goal with the micro-assessments is just to help you engage with the material.

Tutorials

Additionally, I will be making a number of step-by-step tutorials working through a particular challenge related to the week’s content. The tutorials will often directly relate to some aspect of the week’s project, so there is some real value to working through them, especially if you are uncomfortable with the assignment requirements. I will offer help if you get stuck on a tutorial, just as I will for assignments. So don’t hesitate to ask. And, just like the readings, you can submit a tutorial as many times as you need. Each tutorial will offer automated feedback letting you know if you’ve missed anything.

Projects

Throughout the semester we will be creating a full-stack web application for “Community Chest”. This is a burgeoning non-profit organization looking to place “exchange” bins around Manhattan where people can donate small items to benefit the needy. Our web application will provide locations for the bins, and guidance for what people need and have to share.

Office Hours

I will be holding office hours virtually over Zoom, by appointment and possibly at a pre-scheduled time. Your first chat assignment includes a prompt for what time(s) would be best to meet for you - if there is a consensus I may have a regularly scheduled weekly session.

Tea Time Office Hours

The CS Faculty and Support staff are also holding bi-weekly virtual tea time meetings this summer, where we talk about any subjects except the course. This is a good chance to meet more of your faculty in an informal setting and ask questions you may have about the industry, field, etc. Tea time hours will be posted in Discord and as a Canvas announcement.

Course Introduction

Web Only

This textbook was authored for the CIS 526 - Web Application Development course at Kansas State University. This front matter is specific to that course. If you are not enrolled in the course, please disregard this section.

YouTube Video

Course Resources

Video Script

Hello, and welcome to CIS 526 - Web Application Development, and also CC 515 - Full Stack Web Development. Even though these are two different courses in the catalog, they teach the same content and will use the same Canvas course. So, anywhere you see CIS 526 in this course, you can also mentally substitute CC 515 in its place.

My name is Russell Feldhausen, and I’ll be your instructor for this course. My contact information is shown here, and is also listed on the syllabus, and on the home page of the course on K-State Online. My email address is russfeld@ksu.edu , and it is the official method of communication for matters outside of this course, since it allows me to have a record of our conversations and respond when I’m available. However, I’ll also be available via the K-State CS Discord server, so you can easily chat with me there. There is a channel already created for this course that I encourage you to make use of throughout this course.

For communication in this course, there are two basic methods that I recommend. For general questions about the course, content, getting help with labs, and any other items relevant to the course, I encourage you to use the course channel on Discord. This allows all of us to communicate in a single space, and it also means that any questions I answer will immediately be available for the whole class. For personal issues, grading questions, or if you have something that is a “to-do” item for me, please email me directly. While I will strive to check Discord often, I’ve found that sometimes tasks can get lost in the discussion, so having an email in my inbox to prompt me to follow up is very helpful.

I am working remotely out of my home in Kansas City, so I won’t be available on campus regularly during the Summer 2022 semester. I do have an office, and I will be there from time to time when I can during the summer to meet with folks on campus and hold office hours. I’ll be sure to announce those times as they are scheduled.

Before we begin, I must give all the credit to Dr. Nathan Bean for developing nearly all of the content in this course. Nearly everything you’ll see during this course was originally written and constructed by Dr. Bean, and I’m simply the person teaching it this semester. I’m working on adding a few parts based on my own expertise, so you may see some new things toward the end of the semester.

For a brief overview of the course, there are a total of 8 modules of content, containing textbook pages, activities, tutorials, and more that you’ll complete. In addition, throughout the semester you’ll be working on a large-scale web application project which consists of 6 milestones. The modules are configured in K-State Canvas as gated modules, meaning that you must complete each item in the module in order before continuing. There will be one module due each week, and you may work ahead at your own pace. Finally, all work in this course must be completed and all labs graded by no later than July 29th, 2022.

Looking ahead to the rest of this first module, you’ll see that there are a few more items to be completed before you can move on. In the next video, I’ll discuss a bit more information about navigating through this course on Canvas, using Codio, and using the videos posted on YouTube.

One thing I highly encourage each of you to do is read the syllabus for this course in its entirety, and let me know if you have any questions. My view is that the syllabus is a contact between me as your teacher and you as a student, defining how each of us should treat each other and what we should expect from each other. I have made a few changes to my standard syllabus template for this course, and those changes are clearly highlighted. Finally, the syllabus itself is subject to change as needed as we adapt to this new course layout and format, and all changes will be clearly communicated to everyone before they take effect.

The grading in this course is very simple. First, 15% of your grade consists of completing the short activities and quizzes scattered throughout the course. Another 35% of your grade consists of completing the interactive tutorials. Finally, 50% of your grade comes from completing the 6 project milestones throughout the semester. Also, notice that the final milestone is worth double the amount of points, so it is very important that you get to the end of the course and complete that milestone. There will be some extra credit points available, mainly through the Bug Bounty assignment, which you will review as part of this module. Lastly, the standard “90-80-70-60” grading scale will apply, though I reserve the right to curve grades up to a higher grade level at my discretion. Therefore, you will never be required to get higher than 90% for an A, but you may get an A if you score slightly below 90% if I choose to curve the grades.

Since this is a completely online course, you may be asking yourself what is different about this course. First off, you can work ahead at your own pace, and turn in work whenever you like before the due date. However, as discussed before, you must do all the readings and assignments in order before moving on, so you cannot skip ahead.

In addition, due to the flexible online format of this class, there won’t be any long lecture videos to watch. Instead, each module will consist of several short lessons and tutorials, each focused on a particular topic or task. Likewise, there won’t be any textbooks formally used, but you’ll be directed to a bevy of online resources for additional information.

What hasn’t changed, though, is the basic concept of a college course. You’ll still be expected to watch or read about 6 hours of content to complete each module. In addition to that, each lab assignment may require anywhere from 1 to 6 hours of work to complete. If you plan on doing a module every week, that roughly equates to 6 hours of content and 6 hours of homework each week, which is the expected workload from a 3 credit hour college course during the summer.

Also, while some of the activities will be graded automatically, much of the grading will still be done directly by me. This includes the project milestones. For each milestone, I’ll try to give you timely feedback so you can improve on your design before the next milestone is due.

For this class, each student is required to have access to a modern web browser and a high-speed internet connection. If you have any concerns about meeting these requirements, please contact me ASAP! We may have options available through some on-campus resources to help you out.

This summer, I’ll be working on a few updates to this course. These updates will mainly affect the second half of the course, and focus on updating a few of the items and introducing some newer technologies and libraries you may come across.

Finally, as you are aware, this course is always subject to change. While we have taught this class several times before, there may be a few hiccups as we get started due to new software and situations. The best advice I have is to look upon this graphic with the words “Don’t Panic” written in large, friendly letters, and remember that it’ll all work out in the end as long as you know where your towel is.

So, to complete this module, there are a few other things that you’ll need to do. The next step is to watch the video on navigating Canvas and using the YouTube videos, which will give you a good idea of how to most effectively work through the content in this course.

To get to that video, click the “Next” button at the bottom right of this page.