Skip to content

Syllabus

PDF Version

CS 343: Application Development
James Madison University | Spring 2025 | Dr. Mayfield

Catalog description: Overview of application software development fundamentals and their use in building stand-alone applications, visualizing and interacting with complex data representations, and controlling the Internet of Things. This course provides an introduction to the technologies used to create modern user interfaces (e.g., web technologies), establishing a common foundation for later application-focused courses. 3 credits.

Prerequisites: Fully admitted Computer Science majors or minors only and a grade of "C–" or better in CS 159.

Website: https://w3.cs.jmu.edu/mayfiecs/cs343/

Class Times

  • Section 3: Tu/Th 2:20–3:35pm
  • EnGeo 2209 (Laptop Classroom)

EnGeo

Instructor Info

Dr. Chris Mayfield, Professor of Computer Science
Head shot

Email: mayfiecs@jmu.edu | Office Phone: 540-568-3314
The best way to contact me is by email, not via Canvas.

Office Hours: M/W/F 12:30–1:30 and Tu/Th 1:00–2:00 in King Hall 208 or online
Please see instructions for checking in when you arrive.

Course Objectives

By the end of CS 343, you should be able to:

  • Summarize the key steps for publishing, retrieving, and displaying web documents.
  • Justify and apply accessibility standards for web documents.
  • Generate and manipulate DOM objects.
  • Describe the benefits of functional programming in data manipulation.
  • Evaluate the advantages and disadvantages of client-side storage technologies.
  • Dynamically generate and manipulate images based on structured data.
  • Create dynamic asynchronous event handler software that avoids common timing-related errors.
  • Describe how authentication, authorization, and access control can mitigate common web application risks and threats.
  • Apply common web-based techniques to mitigate risks and threats arising from untrusted input and third-party software.
  • Identify and consult credible software documentation and tutorials for learning new technologies.

Teaching Methods

Spoiler alert! If you're hoping for a traditional lecture day after day, you signed up for the wrong course. Research has shown that active learning methods are more effective than passive methods like taking notes. This course uses a mix of interactive lecture, peer instruction, and hands-on activities.

Each week includes a reading assignment and accompanying prep activity, followed by a more in-depth lab assignment. A typical day of class includes a mix of short lectures, pair programming, live demos, formative assessment, and work time. The course also includes a semester-long group project and three written exams.

Required Textbook

Fundamentals of Web Development, 3rd edition, by Randy Connolly and Ricardo Hoar.
https://www.pearson.com/en-us/search.html?aq=9780136792857
Database zyBook

We will focus primarily on the first half of the book, which provides an introduction to client-side programming. The second half of the book, which focuses on server-side programming, is outside the scope of CS 343 Application Development. (After completing this course, you may enroll in CS 347 Web Development to learn about server-side and full stack development.)

Laptop Classroom

You will need a laptop on most class days. If you don't have a laptop, the CS department can loan you one for the semester. Our classroom has a few spare laptops in case you don't bring your own to class.

Asking Questions

I encourage you to ask questions during class so that other students may benefit. Communication outside of class will be primarily through email and office hours.

Weekend Hours

I generally do not respond to emails between Friday at 5:00pm and Monday at 8:00am. You are welcome to email me over the weekend, but I will mostly likely respond on Monday.

Culture of Learning

Please help us maintain a collaborative environment that encourages questions, provides opportunities for significant learning, and actively involves everyone in discussions.

Professional Conduct

The ACM Code of Ethics (https://www.acm.org/code-of-ethics) forbids discrimination and harassment of all types. If you believe someone is violating these principles (e.g., by making inappropriate or demeaning remarks), it is your responsibility to take action by informing me or, if you feel comfortable doing so, addressing the individual directly. I will do my best to preserve your confidentiality when addressing the issue.

Inclusive Excellence

Learning environments should be built on mutual respect and support a diversity of thoughts, perspectives, experiences, and identities. Please advise me regarding any concerns or personal circumstances (including your name's proper pronunciation, any name or pronouns not reflected on MyMadison, or significant extracurricular commitments) that would be relevant to your full participation in this course.

Academic Honesty

Don't Cheat

Students who violate the Honor Code (https://www.jmu.edu/honorcode/code.shtml) will receive a reduced or failing grade in the course. Other penalties may be imposed, and all violations will be reported to the Honor Council. Automated tools may be used on any assignment, at any time, to detect inappropriate collaboration and the originality of submissions.

Generative AI

You may use AI technology in general ways that support your learning. However, do not ask ChatGPT or similar tools to do your homework for you. The use of AI is strictly prohibited during exams, so make sure you can program without AI. See the Student Guide to Artificial Intelligence for examples of appropriate use.

Methods of Evaluation

Assignments

To help prepare you for exams, we will have weekly "prep" and "lab" assignments. The preps include reading the textbook and completing warm-up activities. The labs are programming assignments that apply what you learn in class. Assignments will be submitted electronically via Canvas or Gradescope.

Late Work Policy

Deadlines exist so that we can discuss solutions in class. Therefore, late work will not be accepted without prior permission. I am willing to work with you if your circumstances suddenly change. Please don't wait until the night before to get started!

Group Project

Throughout the semester, you will work in a group of 3–4 students. Each group will design, implement, and present a substantial application. The project includes three milestones and a group performance evaluation.

Written Exams

This course is inherently cumulative; each week builds on the prior weeks. We will have three in-class exams that contain both conceptual and code writing questions. The content and format of the exams will be similar to the assignments.

Grading Criteria

Your grade in CS 343 will be based on:
Pie chart: 10% Preps, 20% Labs, 30% Project, 10% Exam #1, 15% Exam #2, 15% Exam #3

Letter grades will be assigned on the scale A=90–100, B=80–89, C=70–79, D=60–69, F=0–59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use + and – grades at my discretion. I do not assign WP or WF grades except in unusual circumstances.

University Requirements

Adding/Dropping

You are responsible for enrolling in courses and verifying your schedule on MyMadison. The last day to add a semester course without department permission is Friday, 01/31/2025. The last day to withdraw from a course with a W grade is Friday, 03/28/2025.

Attendance Policy

You are expected to participate in every class. I understand that things come up, and you might need to be absent occasionally. That's why I provide make-up opportunities for in-class work. If you are not feeling well or suspect you might be ill, please stay at home.

Disability Services

If you have a documented disability and need accommodations in this course, please register with the Office of Disability Services (http://www.jmu.edu/ods, Student Success Center, Room 1202, 540-568-6705). ODS will provide you with an Access Plan Letter to verify your need for services and make recommendations for the course.

Excused Absences

Students who are unable to attend class due to JMU sponsored activities (such as sports, band, academic competition, field trips, etc.) or personal religious observances may request reasonable accommodations. Please notify me during the first week of class regarding potential absences so that you and I can plan ahead.

University Closings

Given severe weather and other unexpected circumstances, be sure to watch for announcements relating to make-up dates. See http://www.jmu.edu/JMUpolicy/1309.shtml for JMU's cancellation policy. Although the schedule may adapt to canceled classes, assignment deadlines generally do not change.

Your Well-Being

As a university student, there may be times when personal stressors interfere with your academic performance and/or negatively impact your daily life. If you or someone you know is experiencing mental health challenges at James Madison University, please connect with the Counseling Center located within the Student Success Center on the 3rd floor. You can learn more about available services by visiting https://www.jmu.edu/counselingctr or calling 540-568-6552. These services are free and confidential. Other available support resources to consider include, but are not limited to, the Office of the Dean of Students, the Health Center, and Learning Strategies Instruction.