Syllabus
Term | Fall 2023 |
Course | CSCI 185: Intro to Computer Programming for the Web |
Professor | Dr. Sarah Van Wart (she / her) - svanwart@unca.edu |
Prerequisites | None |
Time / Location | MWF 3:30-4:45PM, Zeis Hall, Rm. 203 |
Office Hours | MWF 5pm - 6pm (in person), Rhoades Robinson Hall, Rm. 220 or by appointment. |
Notes | Students may receive credit for ONLY ONE of the following courses: CSCI 182, 183 or 185. |
About the Course
CSCI 185 is an introduction to web design and web development, and assumes no prior knowledge. In this course, you will gain experience with some of the skills and strategies of modern web design and development, including:
- Exploring some principles of web architecture.
- Learning the building blocks of programming – data types, variables, functions, control flow, and events.
- Writing a variety of interesting programs that a web browser can understand – using HTML, CSS, & JavaScript.
- Working with git and GitHub to publish and share files to the Internet.
- Using the fetch API to build “data-driven” web interfaces.
- Exploring some third-party JavaScript libraries and widgets (e.g. interactive maps, carousels, photo galleries, etc.).
- Learning some basic principles of interface design (UX/UI), including how to make websites accessible for people with disabilities.
- Considering some of the social, ethical, and legal implications of websites.
What this course does NOT cover
This course does not cover:
- Server-side programming (e.g., storing and retrieving custom datasets; authentication and security; using cloud-based tools like AWS, Heroku, etc.).
- Some of the popular web application frameworks that are widely used in industry (e.g., React, Vue, jQuery)
- Making native apps (iOS via Swift; Android via Java)
- SCSS and SASS (languages that transpile to CSS), CoffeeScript, TypeScript (languages that transpile to JavaScript)
If you are interested in these ideas, please check out CSCI344!
About Web Design & Development
Websites are living documents that require multiple forms of expertise to design and build. Some of the most important considerations fall outside of what is typically considered computer science, such as understanding the needs of the users and organizations and the potential implications of design decisions; or crafting clean, engaging visual designs. Other, equally important considerations are much more technical – writing code with HTML, CSS, and JavaScript, thinking about how information travels over the Internet, and learning new frameworks, architectural styles, and design patterns. Moreover, as web techniques/technologies continue to evolve, it is also import to “learn how to learn” about new technologies, including interpreting technical documentation, modifying and adapting sample code, and thinking about whether or not to use an external library (versus building something from scratch). Developing these competencies involves cultivating a variety of practices and dispositions (versus acquiring some fixed body of knowledge).
Taking this course means committing – for 16 weeks – to practicing your emergent coding skills, experimenting with how you want to convey information to make it engaging and digestable, turning in weekly assignments, committing to doing homework, being present in class for individual and group activities, and most importantly, persevering when things get confusing / difficult and asking questions. Your enjoyment and success in this course depends on your commitment to showing up, engaging, and practicing your developing skills and ideas.
Weekly Topics & Labs
Note that these topics are subject to change.
Topics
Tutorials
- Analyze an Internet Platform
- Make Your First Web Page
- Create a Homepage
- Intro to HTML Forms + CSS Practice
- CSS Flexbox Practice
- Style Your Homepage
- DOM manipulation
- Make an online drawing program
- Make some algorithmic art
- In-Class Presentations + Practice JavaScript Quiz
- Spotify Homework Walkthrough
Course Format
The course includes a mix of lectures, in-class activities, tutorials, quizzes, homework, and projects. It is your responsibility to keep up-to-date on class material and announcements, as the schedule is subject to change. This includes material presented and announcements made in class, via email, or on Moodle.
Class Participation and In-Class Exercises (15%)
We will use our scheduled class time to go over web design and development concepts, do practice problems together and make sure your questions get answered. Class meetings will be in person. Organizationally, most topics will span about a week (see the course schedule). Most class sessions have accompanying readings.
- I will take attendance during every class session. You may miss three class sessions – no questions asked – without a grade penalty. Any additional absences (beyond the three “freebies”) will impact your participation grade (and more to the point, your capacity to productively engage with the class).
Tutorials (15%)
Most Fridays, we will complete a coding / design “tutorial.” Tutorials are intended to help you:
- Become familiar with the types of strategies you might use to approach problems (which will be closely related to the homework / projects).
- Get comfortable writing lots of programs (practice makes perfect!)
- Assess what you know and don’t know, so that you can make a plan to review various ideas and/or attend office hours.
Homework & Projects (50%)
You will be given regular homework assignments that are intended to give you additional practice with the course ideas beyond the tutorials. They are each designed to take between 4-6 hours to complete, so leave yourself enough time!
Quizzes (10%)
There will be 3 quizzes, which are intended to ensure that you understand the web design and programming and concepts relevant to the course. Your final exam score can replace one of your quiz scores if you did poorly on a quiz.
Final Exam (10%)
There will be a cumulative final exam that will be administered during your regularly scheduled final exam slot.
Expectations
- You will come to class prepared and ready to engage in an intellectual discussion about the readings.
- You will complete all assignments on time and with interest, engagement, and intellectual curiosity.
- You will bring your unique expertise, perspectives, and experiences to class and share them with others, so that we might all gain from your perspectives.
- You will respect and seek to understand the unique perspectives and experiences of others.
- You will give your classmates the benefit of the doubt (about their competence and intentions) and can expect the same from them.
- All work that you submit will be your own original work; you will cite others’ work where appropriate.
Course Materials & Resources
Software
As this is a programming course, you will be using the free software programs listed below. This software will take about 3GB of space to install. Installing and configuring programming software can be a hassle, but it is part of the process of developing your working computing knowledge. I will help you.
This software is also installed on all of the classroom computers.
Course References
I have compiled a list of web-based reference materials on the course website:
Before each class, you may be assigned some pre-recorded videos, readings, or tutorial links from this resource guide, which will cover specific concepts and ideas that we will be practicing during lecture. Please set aside time to review these materials, as they will make the assignments and projects easier!
Getting Questions Answered
Office Hours
Sarah’s office hours are every Wednesday and Friday from 4-5PM. If you cannot make this time, please email me to schedule a time to meet.
What questions can I ask?
During our office hours, all questions are welcomed, including (but are not limited to):
- I don’t know where to start in this week’s homework. Can you help?
- My GitHub page is broken – help!
- My code’s not working. How do I debug it.
- I didn’t understand X idea in lecture / tutorial this week. Can we discuss it?
- What courses should I take next after CSCI 185?
- What kinds of web-related careers and opportunities are out there?
You may also talk to me about concerns about your progress in the course, personal matters related to your participation in the course, larger grade concerns, advice about future courses, majors and internships, etc.
Grading
Your course grade is calculated based on homework and projects, quizzes, tutorials, and attendance / participation:
Homework and Projects | 50% |
Tutorials | 15% |
Attendance & Participation | 15% |
Quizzes | 10% |
Final Exam | 10% |
Final grades are assigned on a fixed scale: 93-100 is an A, 90-92.99 is an A-, 87-89.99 is a B+, etc. Some other logistics:
- Final course grades will not be rounded or curved.
- There will not be a final exam, but final exam time will be used for the quiz.
NOTE: Leniency is built into the course
- You can drop your lowest tutorial score.
- You may miss three class sessions without your participation grade being affected.
- You may resubmit assignments with a 10% penalty.
- Your final exam score may replace one of your quiz scores.
Use this leniency wisely. I will not grant additional exceptions unless the circumstances are exceptional, and this will need to be done in coordination with Dean of Student’s office.
Homework & Project Grading
Homework will be due approximately every other week at 11:59pm on the specified date. Homework will be graded according to a published rubric that will be given when the assignment is released.
Late Policy
- Homework and project assignments must be submitted before the due time. Late work will be accepted within 30 days of the due date/time, with a 20% late penalty. No homework will be accepted if it is submitted after 30 days have passed.
Resubmission Policy
If you did not successfully complete the objectives of the homework / project, you may correct your errors and resubmit. However, your grade will be penalized 10% with each subsequent attempt. Some example scenarios:
- Scenario 1: I earn 60% on my homework assignment and decide to resubmit. I earn a 90% on my second attempt. My final HW score is an 80%.
- Scenario 2: I earn an 80% on HW1 but turn it in late (so 20% late penalty applied = 60%). I decide to resubmit and earn an 100% on my second attempt. But, 20% penalty + 10% resubmit penalty applied, so I earn a 70%.
Tutorial Grading
Tutorials will be graded according to the following scale (from 0-3 points):
0pts | Not attempted | Assignment not submitted. |
1pt | Check Minus | Assignment attempted but less than half of it was completed correctly. |
2pts | Check | Most of the assignment was completed; works as expected. |
3pts | Check Plus | assignment completed. Works as expected. |
Tutorials are designed to be completed during class every Friday. That said, you may have until Sunday at 11:59PM to turn them in (i.e., an extra two days). I do not accept late tutorials because I post the solutions right away.
Quizzes & Final Exam
There will be 2 quizzes and one final exam over the course of the semester. The purpose of these assessments is to ensure that you understand the programming and design concepts that we have been studying.
Regrading Policy
I have been known to make the occasional grading error. If you have any grading questions/concerns, please email me within a week to resolve the issue.
Course Policies
General
- No food, no drinks, and no water inside the classroom. If you need to eat or drink, please step outside the classroom (away from the computers) to do so.
- Be respectful of others during classroom discussions and presentations.
- We may have the occasional remote class session.
Academic Honesty
In the past, there have been a few unfortunate instances in which students have presented work other than their own. Here are some guidelines to help you understand what is and is not appropriate”
Tutorials
Helping other students with their in-class tutorial code is allowed and encouraged, but each student should type their own solution unless otherwise specified in the Tutorial instructions.
Homework and Project Work
You are allowed and encouraged to discuss general approaches to solving problems, but all work you submit must be your own. Working “together” and presenting variants of the same file is not acceptable. Here are some specific guidelines to make sure you don’t cross the line:
- Do not exchange programs or program fragments in any form – on paper, via e-mail, or by other means.
- While working with other students, it is perfectly acceptable to ‘look’ at each other’s code (perhaps while helping someone to debug), but you should NEVER be scribing (typing or writing) your own work while looking at someone else’s (on a computer screen, paper, whiteboard, etc.).
- Uploading materials from this course to websites that sell such content to students is prohibited by UNCA’s academic integrity policies, and may also put you at risk for violating copyright policies in UNCA’s Student Conduct Code.
Contact Sarah Van Wart if you have any questions about what is appropriate.
Using the Broader Web for Code and Ideas
In this class, I encourage you to explore the broader web for tutorials, code samples, new coding techniques, libraries, etc. After all, learning how to build websites is all about studying existing websites and how the work! That said, you must acknowledge all sources contributing to your work. If you receive any assistance from any source (Internet, peer, social media, etc.), please describe your source and that source’s contribution(s). If you have any questions about this, please don’t hesitate to contact me.
Students violating the academic honesty policy on a test or exam will receive a grade of “F” in the course. Students violating the academic honesty policy on an assignment other than a test or exam will receive a grade of 0 on that assignment for the first offense, and will receive a grade of “F” in the course for the second offense. This will apply to all students involved in the violation, including both the source student and the copying student. It is your responsibility to ensure that your work is not used by other students.
All cases of academic dishonesty will be reported to the Assistant Provost.
Class Cancellation Policy
If a class meeting is canceled or due dates are moved due to inclement weather or any other reason, I will inform you via campus email (ending with unca.edu).
University Policies
Acknowledgement of the COVID-19 Pandemic
As a community in this time of uncertainty, we seek to uphold and embody our ideals of compassion, resilience, understanding, and flexibility for each other. With that understanding, here are a list of course policies active for this semester:
- We all are expected to abide by our institution’s community expectations. If you are in a public space you are expected to wash your hands and maintain social distance from others.
- COVID-19 vaccines are strongly encouraged for all students, faculty, and staff; surveillance testing is also available on campus.
- If you become ill:
- Do not physically attend any classes.
- If emergency, dial 911. For non-emergency medical help contact UNC Asheville Health and Counseling Center at (828) 251-6520, Monday-Friday 8:00am - 4:30pm. After hours call MAHEC at (828)257-4740.
- Reach out to your instructor as you are able.
Office of Academic Accessibility
UNC-Asheville values the diversity of our student body as a strength and a critical component of our dynamic community. Students with disabilities or temporary injuries/conditions may require accommodations due to barriers in the structure of facilities, course design, technology used for curricular purposes, or other campus resources. Students who experience a barrier to full access to this class should let the professor know, and/or make an appointment to meet with the Office of Academic Accessibility as soon as possible. To make an appointment, call 828.232.5050; email academicaccess@unca.edu; visit https://oaa.unca.edu/ and click on “Schedule an Appointment”; or drop by the Academic Accessibility Office, room 008 in the One Stop suite (lower level of Ramsey Library). Learn more about the process of registering, and the services available through the Office of Academic Accessibility here: https://oaa.unca.edu/
While students may disclose disability at any point in the semester, students who receive Letters of Accommodation are strongly encouraged to request, obtain and present these to their professors as early in the semester as possible so that accommodations can be made in a timely manner. It is the student’s responsibility to follow this process each semester.
Promoting Gender Equity, Addressing Sexual Misconduct
UNC Asheville is dedicated to cultivating and maintaining a safe, respectful, and inclusive environment, free from harassment and discrimination. We strive to ensure that all have equal access to the educational and employment opportunities the University provides. If you or someone you know has been affected by sexual misconduct, including sexual or gender-based harassment, sexual assault, dating or domestic violence, or stalking, please know that help and support are available. UNC Asheville strongly encourages all members of the community to take action, seek support, and report incidents of sexual harassment to the Title IX Office. You may contact the Title IX Office or Heather Lindkvist, the Title IX Coordinator, directly at 828.232.5658 or at titleix@unca.edu. Learn more by visiting titleix.unca.edu.
As a faculty member, I am a “responsible employee” and private resource. This means that if you share any information or discuss an incident with me regarding sexual or gender-based harassment, I must disclose this information to the Title IX Coordinator. Our goal is to ensure you are aware of the range of options available to you and have access to the resources you may need.
If you wish to speak with a confidential resource, contact University Health and Counseling Services at 828.251.6520. Off-campus confidential resources include Our Voice (24-Hour Hotline at 828.255.7576) and HelpMate (24-Hour Hotline at 828.254.0516).
Academic Indicators
Faculty at UNC Asheville are required to use the university’s Academic Indicators system. The purpose of this system is to communicate with students about their progress in courses. Academic Indicators can reflect that a student’s performance is satisfactory at the time it is submitted, or they can indicate concerns (e.g., academic difficulty, attendance problems, or other concerns). Professors use this system because they are invested in student success and want to encourage open conversations about how students can improve their performance. When a faculty member submits an indicator that expresses a concern, the student receives an email from Academic Advising notifying them of the indicator and subsequent registration hold on their account. To clear the hold, the student must complete an online Response Form included in the alert e-mail.
The student’s responses will be shared with the instructor and advising staff. If a student receives three or more indicators that show problems, they will need to meet with an advisor by scheduling an appointment using the online appointment service at advising.unca.edu and select ‘Academic Alert Appointment’ as the type of appointment. The professor may also request to meet with the student to discuss the indicator. It is in the student’s best interest to complete the process quickly, as students who do so are more likely to earn credit for the course. Failure to complete the process means the student won’t be able to register for the next semester’s classes until they have submitted the required form and completed any requested meeting requirements. Questions about the indicator system can be directed to Anne Marie Roberts (amrober1@unca.edu) in the Academic Success Center.
Mental Health Support
As a student, you may experience a range of challenges that can interfere with learning, such as stressful life events, experiences of anxiety and/or depression, self-harm, substance use, and/or unusual difficulty with ordinary life activities. The increased stress of school can also make existing mental health struggles more difficult to manage. Support is available and treatment can help. Learn more about the confidential mental health services UNC Asheville provides to support student success at https://www.unca.edu/life/health-counseling/
The Health and Counseling Center is located at 118 W.T. Weaver Boulevard. Appointments can be made by calling 828-251-6520. A UNC Asheville counselor on call is available after 5 p.m. and on weekends; the counselor on call can be accessed by calling the UNCA Campus Police dispatcher at 828-251-6710. Additionally available after hours and on weekends, call the Bulldog Health Link at 1-888-267-3675, where you can get immediate support for mental health, medical consultation, concern for a friend, and/or community resources. In case of an emergency, you can also call RHA’s Mental Health Mobile Crisis Unit at 1-888-573-1006.