COSC 335A
Web Applications

Spring 2021

Syllabus

Instructor

David A. Sykes, Ph.D.

Class sessions

TR 1:00-2:20 P.M. in Olin 118

Office hours

MWF 2:00-3:30 P.M.
TR 9:00-10:45 A.M., 2:30-3:30 P.M.
Or by appointment. Or happenstance.

Telephone / e-mail

(864) 597-4524 / sykesda@wofford.edu

An introduction to the design and coding of web applications. Client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security. Prerequisite: COSC 350 with a minimum grade of C.

We will study full stack development.

By the end of the course, you should be able to:

  1. Use HTML5 to structure content and CSS3 to style and lay out web pages and understand the distinction between structure and presentation.
  2. Use JavaScript to manipulate the DOM to add behavior to a web page.
  3. Use Ajax to update page content.
  4. Use cookies to maintain state across HTTP requests.
  5. Understand the general capabilities of a content management system (CMS) to manage a website.
  6. Use server-side scripting to implement content-driven websites that process form inputs and pull data from a database.
  7. Understand how to use a REST API Framework.
Required textbooks

None. We will rely on web tutorials and other API documentation sites. A few of the sites we use might require you to create a free account.

Websites

We will use Piazza, Mimir, and Moodle regularly. We will use others for tutorials and such as we need them. Some sites might require you to create a free account.

  • Mimir Classroom. Homework exercises, some projects, some quizzes, and the final exam will be administered from within Mimir Classroom.
  • Piazza will host announcements, descriptions of homework assignments, handouts, and discussions about class topics and projects. If you have a question that comes up outside of class time, post it at Piazza.
  • Moodle. You will submit some project files in Moodle. Your scores for graded work (quizzes and projects) will be recorded in the Moodle gradebook, too.

    Note: The cumulative grade shown in Moodle should reflect your final weighted score. Occasionally, the complexity of the Moodle grade book setup will confound me and I might set it up incorrectly. If you notice a problem, please let me know and I will correct it.

Software

We will use the applications listed below and possibly others. All of the applications are available for free.

  • Visual Studio Code
  • WebStorm as our IDE for JavaScript. You will need to get a student account at JetBrains to get a license for that will last all semester. If you already have a student license for PyCharm or some other JetBrains product, then your account should authorize you to use WebStorm.
  • An FTP client to transfer files to and from a cloud server.

Your grade for the course will be based on a weighted average of scores for homework, exams, projects, and a final exam. The usual grading scale applies: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.

A final average will be calculated using two methods using weightings shown in the table. The higher of the two values will be mapped to a letter grade. Under Method #2, neither homework scores nor exam scores factor into the calculation.

Component Score Weight
Weekly quizzes 50%
Coding projects 35%
Final exam 15%
TOTAL 100%
Weekly quizzes

There will be twelve 5-point quizzes, one given each Tuesday, except for the day of classes. A weekly quiz encourages you to keep up with the work and helps both you and me assess how well you understand the topics we are covering.

Quizzes will be conducted as follows.

  1. A quiz will start toward the end of class on Tuesday. All papers must be turned in when time is called at 14:15. (If you have an accommodation that calls for extra time, you may continue after time is called.)
  2. Each quiz will be worth 5 points. Each of five problems is worth one point. An answer to a problem must be completely correct to be awarded a point. No partial credit will be given. You must show your work for any problem that requires a sequence of steps to answer in order to receive a point for that problem.
  3. A “rework” copy of the quiz will be made available. You have an option to rework the problems on the quiz and then submit your answers by the start of the next class meeting. If all of the answers on your reworked quiz are correct, then you will earn back half of the points that you missed on the Tuesday quiz—for example, if you got 2 on Tuesday quiz and 5 on the rework quiz, then 3.5 will be recorded as the score for that quiz. Note: You may get all of the help you need on the rework, including help from me, except you may not post questions about the quiz at Piazza or other web forum.

Cell phones, calculators, computer applications, web resources, or other people may not be used during a quiz except for ones you are directed to use.

Coding projects

Coding projects give you practical experience with what we are covering in class. Coding projects will comprise 35% of your final grade.

Point values for projects will vary and will reflect the level of challenge. More challenging projects will have higher point values. Your coding projects score will be computed as the percentage of points earned times 35. That is, I will add up all of the points you earned for coding projects and divide that by the number of points that you could have earned and then multiply that ratio by 35.

To get a perfect score on a project, your submission must satisfy all of the requirements set forth in the project’s description and be submitted before the deadline. Often there will be a rubric available in Moodle. If you’d like to incorporate more than the required features in your code, then please do!

Final exam

The final exam will assess what you have learned over the semester. It comprises 15% of your grade. Part will focus on key concepts that were covered by the weekly quizzes and part will focus on your ability to apply the concepts to “real” problem situations—for example, how would you design a web application given a description of requirements for it.

Homework

Homework will be assigned regularly, but will not be collected and graded. Bring your written answers to class with you. I encourage you to work on homework assignments with other students in the class. You may use any resources that are useful to you.

Class meetings

Evaluate your own health regularly. Do not attend class or other on-campus events if you are not feeling well. Seek appropriate medical attention for treatment of illness. A doctor's note concerning absences is not required.

We are fortunate to be meeting in a classroom that can accommodate all of us even with appropriate social distancing. Consequently, all of us can attend class meetings in person starting with the second week of classes. The first week classes will meet remotely using Zoom.

You are expected to attend class meetings in person if you are well. You must wear a mask covering nose and mouth in the classroom and sit at least six feet from others.

If you are not well, you are expected to attend class meetings remotely via Zoom if you can. The General Policy Regarding Attendance in the Wofford College Student Handbook makes you responsible for catching up on any missed classes.

If necessary, we will move to a synchronous, blended or a synchronous, remote model. Under those models, class meetings will be held using Zoom and you will be expected to be in each of those Zoom meetings.

Computer usage during class meetings

Bring a charged laptop to each class meeting if you can. We will often work in-class exercises using a laptop. However, I will expect your laptop to be closed unless I direct you to use it. Take notes on paper. Your open laptop is usually a distraction not only for you, but for other students near you.

If you are remote and using your laptop for a Zoom connection, try to get access to a second monitor. That will facilitate your being able to see what is being done via screen sharing and what you will do as part of an in-class exercise.

Office hours

I will make every effort to keep the office hours listed at the top of this syllabus. If I must cancel or move office hours, I will announce the change in Piazza.

You do not need to make an appointment to meet with me during office hours. Just drop in via Zoom. I am usually working in my office and you can meet with me there as long as we observe social distancing. I will look at your computer screen by either connecting your computer to my external monitor or by having you share your screen using Zoom.

I appreciate your contacting me during my office hours since it is time I have set aside and cannot easily use for another purpose. However, I realize that you might have conflicts. You are welcome to contact me to set up an appointment. If you do, list some times that you are available. Please do not ask me when I am available. Or you are welcome to drop by my office if you think I might be there.

Late work

You must meet project deadlines. You may be able to submit a project late if both of these conditions are met:

  1. You contact me at least a day before the deadline to request an extension. In the request, include:
    1. a description of the problems you are facing
    2. how much more time you need
  2. You submit by the deadline the work you have completed so far even if you receive an extension.

Communication

Post questions and comments about this course on the Q&A page at Piazza. You are encouraged to respond to a question or to edit a response to a question. We are all learning together. If you send me a question via email or via private Piazza post that should be posted publicly at Piazza, my reply will direct you to post your question publicly.

Do not post working code at Piazza. Do not include in a response either “fixed” code or a detailed description of how to change code to get it to work. It is okay to post non-working code.

I usually respond to email messages sent Sunday through Friday within 24 hours. I will usually respond within 48 hours to messages sent after 4:00 P.M. on a Friday or a Saturday. I usually respond much sooner to Piazza posts since I have the Piazza app on my phone and receive notifications.

You can send me email messages for private matters, such as letting me know you will be absent or that you'd like to schedule a meeting. However, I prefer that you post a private message via Piazza.

Note: Anonymous Piazza posts are anonymous to classmates but not to me.

Academic integrity

The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. Work represented as your own must be your own.

I encourage you to collaborate with others in the class—that is, help or get help from others. However, you may not write code for another student or provide code to copy. Doing any of these things is a violation Honor Code.

What is the distinction between collaboration and cheating?

Collaboration

  • You may discuss a project with another person.
  • You may work together to figure out how to attack a problem or develop an algorithm.
  • You may describe an issue you are having, such as a bug in your code, and get suggestions for resolving it.

Ultimately, you must implement a solution to the problem yourself.

Cheating
  • You are cheating when you copy code from someone else or when you allow someone to copy from you.
  • You are cheating if you let someone else edit your code—or if you edit their code.
  • You are cheating if you are working along with another and decide together what code to write.

For some projects, you might be allowed to work with other students in the class as a part of a team. In this case, you are allowed to share all your work with your teammates. However, you are expected to do all of the work together. One student should not work without the others contributing.

Don’t cheat because you are up against a deadline. Start each assignment as soon as it is given. If you run into a glitch:

  • Seek help from me, either by posting at Piazza or consulting with me.
  • Submit on time the work you have done, even if it is not fully completed. You will likely get partial credit for your work and/or an opportunity to fix any problems and raise the score.

Reasonable accommodations for students with disabilities

If you need accommodations, go to the Student tab in myWofford and investigate the Request Accommodations channel. I’ll make every effort to work with you. Take care of this during the first week of classes and before the first quiz.

I will count on you to complete assigned readings and exercises before class starts. I will address any questions about the readings during the first part of a class meeting and then we will work on problems that involve what you've read.

The schedule is subject to change.

Week(s) Topics
1–5 Client-side:
  • HTML5
  • URLs and website organization
  • CSS3
  • JavaScript and DOM
  • Responsive design
  • jQuery, Ajax, and JSON
  • Vue
6–14 Server-side:
  • Back end scripting and databases
  • Front-end frameworks
  • Content management systems
  • Application frameworks
15 Final exam: Thursday, April 8 between 2:00 P.M. and 5:00 P.M.