Course ID: COSC 335
Term: Spring 2023
Professor: Todd Dobbs, dobbsbt@wofford.edu
Class Schedule: Tuesday and Thursday from 9:30 am to 10:50 am in Olin 213
Office Hours: Please make a formal request (i.e. starfish)
Optional Textbook: None (more on this in project 0)
After successful completion of the course, a student will demonstrate knowledge of the following:
- An understanding of client side web applications
- Express an undestanding of the browser
- Express an undestanding of HTML
- Express an undestanding of CSS
- Express an undestanding of client side programming
- Express an undestanding of the DOM
- Express an undestanding of SPA
- Express an undestanding of application state
- Express an undestanding of security
- An understanding of server side web applications
- Express an undestanding of the server
- Express an undestanding of server side programming
- Express an undestanding of application state
- Express an undestanding of security
- Express an undestanding of data persistence
Teaching Philosophy1
Computer Science is not specific to learning a specific programming language or software package. While such things exist, they are ancillary to the core of computer science, which is above all concerned with reflecting critically and persistently on automation, computation, and information. I teach with the goal of serving our community to determine how computer science can be integrated into their lives in the future. Everything to do with this course is influenced by this goal. This includes the way the course is designed, my teaching style, and the assessments and practice I offer. If it is ever unclear to you why we are doing something, or why we’re doing it the way we are, I encourage you to ask me about it. I will be happy to explain my reasons for doing what I do and for asking of you what I ask of you. To experience learning, everyone must feel free to express any question or state any view in a way that respects all members of our community. We all benefit when our inquiries include a diversity of viewpoints, experiences, and backgrounds, and I hope you will contribute your authentic voice throughout the course.
A central component of education is small class sizes that enable high-quality interaction among students and between students and faculty in class. For this high-quality interaction to occur, all of us must come to class prepared. This means carefully reviewing the assigned materials, reflecting on them, and coming up with questions or insights that you would like to discuss. We will all learn together, by coming up with valuable questions and working together to make progress in answering those questions. As a general guideline, if you come to class without a question or topic that you’re eager to discuss, you’re probably underprepared for class.
In order to get the most out of class, you need to be a participant in the activities and not merely an observer. This means that mere physical presence in class is not enough; your psychological presence is also expected. This means listening and contributing positively to class discussions and refraining from distracting or disrespectful behavior. Psychological presence also means not being distracted by technological devices that are designed to capture your attention. Please silence your phone and put it away for the duration of class. If you have a smart watch, please put it in “do not disturb” mode.
Whenever you are not in class, you are unable to participate and contribute to our community. Your attendance is thus encouraged at every class session. Please arrive to class on time and plan to stay for the whole class period. Arriving to class late, or missing an extended period during a class session, will count as half of an absence for grading purposes. That said, you’re an adult. You don’t need to ask permission to use the restroom. But please plan accordingly so that you don’t have to do so frequently. If you will have multiple absences, please communicate with me or the Wellness Center about your situation. If you miss five class sessions in a row, and I don’t hear from you or receive a formal notification regarding the absences, I will infer that you do not intend to continue attending and you will be administratively withdrawn from the course.
I may communicate with my classes via email. I expect you to check your email regularly, and I will accordingly assume that you have received any email I send to you or to the class within 24 hours of my having sent it, regardless of whether you have responded to it. If you email me during the week, I will do my best to respond to you within 24 hours. I normally check my email during office hours, so emails sent after that time will typically not be received until the following day.
All students are expected to maintain the highest standard of academic honesty and are bound by the Honor Code. A major component of your responsibility for academic integrity is to know what constitutes academic dishonesty. If you have any questions regarding whether something constitutes a breach of academic honesty, I expect you to ask me about it before it becomes an issue. Any suspected incidents of academic dishonesty will be referred to the Academic Integrity Committee for review.
You are entitled to a meaningful and effective learning experience, and I will do my best to help you have such an experience in this course. I have strived in designing this course to make it accessible to everyone, but I recognize that I may not have succeeded. I am happy to provide whatever accommodations are warranted for you to be able to succeed in this course. In order for me to provide you with the appropriate accommodations, the required paperwork needs to be completed and on file. If there is anything else that you want me to know that will help me improve your experience in this class, please do share it with me.
I want you to feel comfortable sharing information with me directly and through class assignments, but there are some instances in which I am required to share information with the College and some instances in which I will feel obligated to share information with appropriate College staff. If I receive information related to sexual or gender-based harassment, violence, or discrimination, I will keep the information private, but I am required to share that information with the Title IX Coordinator. Contact information for the Title IX Coordinator and for confidential resources can be found on the Title IX webpage. Additionally, if I am aware that you are struggling with something that may be traumatic or if I am concerned about your mental health or behavior, I may raise a formal flag or reach out to appropriate College staff for resources and assistance. Students may speak confidentially with the counselors in the Wellness Center.
I encourage you to try to be less worried about grades than you are. If you focus on grades, learning will always be a struggle. If you focus on learning, grades tend to take care of themselves. Your grade in this class will be determined by the following components:
- Projects (70%)
- Assessment (30%)
Class Schedule2
| Week | Day | Date | Topic | Project |
|---|---|---|---|---|
| 1 | 1 | Tue Feb 7 | Introduction | |
| 2 | Thu Feb 9 | HTML | 0 Due | |
| 2 | 3 | Tue Feb 14 | CSS | |
| 4 | Thu Feb 16 | URL | ||
| 3 | 5 | Tue Feb 21 | JavaScript | |
| 6 | Thu Feb 23 | JavaScript Programming | 1 Due | |
| 4 | 7 | Tue Feb 28 | DOM | |
| 8 | Thu Mar 2 | DOM Events | 2 Due | |
| 5 | 9 | Tue Mar 7 | UI Programming | |
| 10 | Thu Mar 9 | ReactJS | 3 Due | |
| 6 | 11 | Tue Mar 14 | SPA | |
| 12 | Thu Mar 16 | RWD | ||
| 7 | 13 | Tue Mar 21 | Web Application Construction | |
| 14 | Thu Mar 23 | Browser-Server Communcation | 4 Due | |
| 8 | 15 | Tue Mar 28 | Web Server | |
| 16 | Thu Mar 30 | Node.js | 5 Due | |
| Tue Apr 4 | Spring Holiday | |||
| Thu Apr 6 | ↓ | |||
| 9 | 17 | Tue Apr 11 | ExpressJS | |
| 18 | Thu Apr 13 | Data Persistence | ||
| 10 | 19 | Tue Apr 18 | Cookies and Session | 6 Due |
| 20 | Thu Apr 20 | Input and Validation | ||
| 11 | 21 | Tue Apr 25 | State Management | |
| 22 | Thu Apr 27 | Security | ||
| 12 | 23 | Tue May 2 | Network/Session Attacks | 7 Due |
| 24 | Thu May 4 | Other Attacks | ||
| 13 | 25 | Tue May 9 | Large Scale Applications | |
| 26 | Thu May 11 | Data Centers | 8 Due | |
| Mon May 15 | Assessment |
This syllabus is subject to change based on the needs of the class. I will communicate changes in class or email.
Footnotes
-
Thanks to Jeremy Henkel for inspiration. ↩