Course Syllabus
JavaScript for Programmers, CS22A
Course Description
Introduction to object oriented programming in JavaScript. Topics include: client and server side programming, Model/View/Controller architecture, current tools and testing methods, interaction with HTML and CSS, Document Object Model, XML and JSON. Students will have practice writing programs for mobile web browsers and creating dynamic web pages including animation.
Course Meetings
This is a totally online course, so we do not meet in-person.
I reserve the right to schedule online meetings with you, so check your email and Pronto daily for such requests. You are required to work on some assignments in student teams using online conferencing software (like Zoom) and online Pair-Programming software (which are mentioned in the assignments).
This is a 12 week course and is NOT self-paced. You must complete each module on the Modules page in order to proceed to the next module.
Course Info
Instructor: Dr. Baba Kofi Weusijana
Pronounced: Bah-bah Co-fee Way-ou-see-jah-nah
Please call him "Dr. Weusijana" or "Baba"
Communication
Office Hours: My regular office hours will be held online (they will be announced after I review the Welcome Surveys).
I can also meet students by appointment via Zoom (even at night or over the weekend) so contact me for an appointment.
I also reserve the right to schedule online meetings with you, so check your email and Pronto daily for such requests.
Contact Info:
The best way to contact me (and your fellow students) is by using the integrated Pronto tool. I reply to such messages within 1 business day. You can also contact me through Canvas by adding a comment while submitting to the relevant assignment (you can submit partial work, with comments, as early and as often as you like to Canvas assignments). If you use the Canvas Inbox, or e-mail, I might miss your message and might not have the proper context for it. I might take 2 business days to respond to Canvas Inbox and e-mail messages. You can forward text messages to my email.
To contact me anonymously use this Google Doc form.
Announcements & Course Backup Plan:
I will make announcements to this class via email or Pronto, so keep an eye out for those.
Each day please log into this course's Canvas website and also check Pronto and the email account you gave registration. That way you will be able to get any announcements from me, including instructions for how this course will continue in the event of an emergency.
Foothill College instruction and services are generally virtual at least through Spring Quarter 2021. For information on Foothill College's services and changes during the COVID-19 crisis, please read our Virtual Campus page!
Course Discussions:
Students are required to utilize the Pronto tool that is integrated with Canvas (and can be installed on mobile devices) to provide a way for students to communicate with each other and with me. You are required to utilize Pronto to actively participate in this course. Please see the Get Setup with Pronto page in the Week 1 Module and later the rubrics for the Course Participation assignment for more information.
Textbooks and Other Materials
The two required textbooks are FREE and available online:
- http://eloquentjavascript.net/
Eloquent JavaScript: A Modern Introduction to Programming
by Marijn Haverbeke - Learning jQuery 3 - Fifth Edition is available via the Foothill Library's subscription to O'Reilly Safari at http://libguides.fhda.edu/safari (The 3rd edition is available from the library at: https://ezproxyfh.fhda.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=e000xna&AN=604072&site=ehost-live )
Videos:
A LinkedIn Learning account is available for FREE if you get a library card from the Santa Clara County Library or San Jose Public Library Systems! For Santa Clara County Library System then go to https://sccld.org/resource/#azindex-letter-L and click on the LinkedIn Learning for Libraries (Formerly Lynda.com) link. For the San Jose Public Library System go to https://www.sjpl.org/eresources-name and click on the LinkedIn Learning (formerly Lynda.com) link (probably on the 2nd page with the other services that start with "L"). For both, you will be prompted to login with your Barcode and PIN.
If you can not get a San Jose or Santa Clara County Library Card (and your local public library doesn't have a similar arrangement with lynda.com) you must purchase your account, but in that case make sure you get a free month trial from the https://www.linkedin.com/learning/ website.
Online References:
MDN JavaScript Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavors into the depths of the language.
JavaScript Garden does not aim to teach you JavaScript. Former knowledge of the language is strongly recommended in order to understand the topics covered in this guide.
http://bonsaiden.github.io/JavaScript-Garden/
Additional materials will usually be distributed or linked from the course website.
Optional textbook:
This is available as an eBook from the Foothill's Library at O'Reilly Safari:
Crockford, D. (2008). JavaScript: The good parts. Sebastopol, Calif: O'Reilly Media.
http://shop.oreilly.com/product/9780596517748.do
Computer
You will need to use a desktop or laptop computer that has Internet access (a tablet or mobile device will not likely be sufficient).
For our online class meetings and for working with students online or meeting with me during online office hours, it is also best if you have headphones and a microphone (microphones are sometimes built into modern laptops).
Contact me immediately if you don't have the needed equipment so I can try to get you some assistance from Foothill College!
Removable media for backup of your work or files:
USB thumb drive, a portable external hard drive, or a cloud service because you are responsible for backing up all of your work.
The Online STEM Center:
The Online STEM Center is offering drop-in tutoring online via ZOOM. Our instructors are scheduled throughout the day to help you one-on-one. Don't be stuck or fall behind. Take advantage of this wonderful free service Foothill College makes available to all students. They hope to see you soon!
Students can access information about the Online STEM Center in 2 ways:
- Click the Student Support Portal via CANVAS, Click "Go to Tutoring" on Tutoring Tile
- Click "Foothill Tutoring" menu option in your CANVAS course
Food Pantry
Assignments / Homework and Feedback:
The terms “homework” and “assignment” are interchangeable, and everything that I say here that applies to one, applies to the other.
Once homework has been graded, I’ll return it to the student, usually electronically via Canvas and I'll perhaps include comments or an attachment with detailed feedback. You might then have the opportunity to revise your work (in whole or in part), and re-submit your work for a re-grade.
This approach to re-grades is sometimes referred to the “mastery approach”. The higher grade of the two will be your final grade for that homework assignment.
There are a couple of caveats: when you resubmit your work in this way, I reserve the right to not just re-grade the work, but also check to make sure that the work is correct, and may then follow up with email or verbal questioning of you. I might contact you via your email or phone number to setup an appointment to meet with you.
I reserve the right to assign you additional problems, if I feel that your grasp of the concept is shaky. This will be to your benefit, since the best way to learn how to program is to do it. You have approximately 1 week (sometimes longer) from the time the assignment's grades are released to submit your revision. This means that if you are not paying attention on the day that an assignment is returned to you, and haven't made prior arrangements with me, then you will still only have 1 week after the rest of the students got their grades to do your revision.
If you are not actively participating in the course, you might end up not having the chance to do a revision. You may only submit one revision per assignment.
If you haven't submitted the initial version of the homework assignment by the time that I go to grade it, then you can still submit it on or before the deadline for the revision, and it will be graded without penalty but you will NOT BE ALLOWED TO REVISE that assignment.
If you haven't submitted a revision to a homework assignment by the time that I go to grade it then you will keep the initial grade for the homework (if you didn't submit the initial version either, this means that you will receive a zero for that particular assignment, and I hate to assign zeroes).
Late Policy:
Any work that is not submitted to me for grading will be assigned a grade of "0".
The general policy for work that is submitted electronically is that work is not late until I go to grade the work and find it to be missing.
In practical terms this means that if I haven’t graded something yet you can (typically) still upload the work and have it be graded as if the work had been handed in on-time (i.e., penalty-free). I will wait until the work is due to grade it (of course), but makes no guarantees about waiting any longer than that.
In other words: for work that I have not yet graded you can take your chances that I will be back-logged enough for you to get the work done and submitted but if I grade it before you can finish (including submitting) the work then you will get the zero for not having it in on time. I recommend you don't take such chances!
Course Participation:
Strong evidences exist that indicate that student success is directly related to course participation. Course participation will be assessed in the following manner: Usually twice a week you just take a quiz. Other assignments you must do will be considered participation assignments. Your active use of our Canvas course-site will be monitored. You must also do a reasonable job of correctly completing the exercises. The two most important aspects of doing the exercises are that you are doing a reasonable job for your ability level, and that you are learning the material. You must also:
- Discuss course topics in our Pronto forum (which I check each business day and most weekend days).
- Complete any exercises or large assignments, including team work online (please note that Canvas refers to "teams" as "groups").
Missing Days and Make Ups:
If you notify me at least one week prior to an exam/quiz, it may be possible to take the exam or quiz/survey at a different time than the scheduled date – this different time will be on the same day if possible, or typically on a day prior to the exam otherwise. No make-ups will be given for exams, presentations, or other such graded events, that were missed without prior notification to me. In any case, the notification of absence must be given at least 2 days before the exam/quiz/event. The only exceptions are documented medical and other emergencies (you can forward text messages to my email). Detailed information about Foothill's Health Services are available at the Health Services website.
Grading Disagreements:
Any disagreements about your grade should be brought to my attention immediately (waiting is always a sad mistake).
Unless stated otherwise, all work should represent your own original, independent thinking. Unless stated otherwise, all assignments are not meant to be team projects. While working on exercises in a lab or online via chat or teleconference, you are encouraged to either seek help or to offer help from fellow students.
It is okay to communicate with other students to clarify conceptual understanding necessary to complete assignments. However, copying another person’s work in whole or in part, either manually or electronically, it not acceptable; nor is copying and slightly modifying another person’s work acceptable. Type your own code! You are here to increase your own knowledge and understanding and your exams' scores will be based only on your own knowledge and understanding, so type your own code. In the event copying should occur: all participants in the plagiarism (both the person plagiarizing, and the person whose work was taken) will receive:
1. A 20% penalty on the first offense
2. A grade of zero for the second offense, and
3. For a third (and final) offense, all parties will be given the option of either withdrawing (if the drop deadline hasn't been passed) or taking a "0.0" for the term.
A description of all such incidents shall be forwarded to the Dean of Students office, where a file of such occurrences will be maintained. Second (and third) offenses include offenses from prior terms.
Team projects are learning exercises like individual projects: every individual in the team is expected to understand all the material as if each person had done the entire assignment individually. Therefore, it is fair game to ask any person in a team to explain any aspect of the assignment that the team has done. If you accept help from someone who is not trained to teach without giving away the answer, it will short-circuit your learning process -- you will actually learn less. For those of you wishing to give help, please do not give away the answer. Either tell the person where they can look to find the solution, give them a general idea or ask them to ask me. Don't post actual assignment code. Do not look for answers on cheater web sites or pay-for-help web sites.
Electronic Submission:
I would like you to electronically submit all assignments. You should type all assignments & homework answers into the computer (including essay questions), make sure it runs correctly, and submit the files for any given assignment. Usually this will be done using Canvas.
Today’s technology is inherently unstable: Your network might go down, your Internet Service Provider might be down, the public library might not be open, you might be unable to get Microsoft Word to do exactly what you want. While you might have this happen to you, it’s not an excuse for handing in an assignment late! Knowing this, you should include time in your schedule to compensate for possible technological snafus. For assignments having a hard deadline, no leeway will be given for failing to hand in work because of technological problems.
Keep up!
You are responsible for what goes on in our course. You are responsible for making up any work, assignments, quizzes, etc.
Watching all the videos is very important, since the course is structured to require active involvement and participation on the part of the student. Missing out means missing material that is difficult to make up.
Other Notes:The number of projects and the points possible for quizzes/exams, projects and activities are subject to change depending on the circumstances of the class. I reserve the right to modify any and all aspects of the course, any time, without prior notice, including this syllabus.
Conduct and Courtesies:
Please remember to respect the following list for me and the other students.
* Please remember to respect other students, me, and yourself by not using inappropriate language or personal attacks.
* Please communicate often with team members, especially if you are running late for a team meeting.
Withdrawals: If you decide to drop, it is your responsibility to submit an official drop to the Admissions Office. Do not assume that you will be dropped automatically.
Pro-activity and Self-Starting
Rule #1: If you want to learn programming you MUST watch the videos and do the reading and you MUST do the exercises and you MUST take advantage of whatever resources and sources are available in order for you to deeply understand it. Programming does not come magically or trickle into your head by osmosis. You cannot skate. It takes work. You must dedicate hours each day reading about code, writing code, researching code, puzzling out code, working the code again and again, and wrestling it into place. Eventually you might even find yourself dreaming about code, and then waking up in the morning with a “solution” to the problem you went to bed with. There is no other way to learn it.
Rule #2: Search-it up! Answers from Stackoverflow.com are usually great if you read the whole page. Just don't use other students' work. That is plagiarism and it short-circuits your own learning (I've probably changed the assignment's requirements too).
Rule #3: Be resourceful, energetic, proactive, flexible, a self-starter, self-reliant, self-disciplined, and show drive and initiative! Show a friend (they don't even need to know how to program) how your program works and often you will realize the cause of your problem before you even finish your explanation! You are expected to be resourceful in this course.
Rule #4: Don’t get frustrated. Take breaks. Walk away from your code for an hour or two, and then come back to it refreshed and rejuvenated. It works!
Rule #5: Search for it again! And again! And again! Maybe you are in a Filter Bubble, so try another search service like DuckDuckGo!
Student Learning Outcomes:
Course outcomes are learning goals for students. At the end of this course a successful student should be able to:
- Use a web application development environment that includes a browser, editor, debugger and code libraries.
- Write modifiable JavaScript programs that modify the DOM, respond to user events and make requests to the server.
To Obtain Accommodations:
This course is intended for all students, including those with mental or physical disabilities, illness, injuries, impairments, or any other condition that tends to negatively affect one’s equal access to education. If, at any point in the term, you find yourself not able to fully access the space, content, and experience of this course, you are welcome (but not required) to contact me. It is never too late to request accommodations! Our bodies and circumstances are continuously changing. I also encourage you to contact the Disability Resource Center (DRC). By making a plan through DRC, you can ensure accommodation without disclosing your condition to course instructors.
Can you not see or hear very well? Is English your second or third language? Do you have to miss class because of work, childcare, or parole appointments? Is money tight and you can’t afford books or a laptop right now? Can you concentrate better if you stand or walk around in class? Do you have a medical condition (due to an accident, pregnancy, certain diseases, etc.) or a learning disability (no matter what the cause)? If, at any point in the quarter, a disability or personal circumstances affect your learning in this course, please feel free to reach out to me. I am committed to helping you succeed in this class. If you have a documented condition (physical or psychological), consider registering with the Disability Resource Center (DRC). The DRC will not disclose your exact condition to your instructors, but they will tell me exactly how to help you succeed in this course! More information is available at foothill.edu/drc .
To contact DRC, you may:
-
Visit DRC in Room 5400
-
Email DRC at drc@foothill.edu
-
Call DRC at 650-949-7017 to make an appointment
Please contact DRC as early as possible or as soon as you become disabled because DRC accommodations are not retroactive. If you already have an accommodation notification from DRC, please contact me privately to discuss your needs.
Counseling services: For excellent services and for mental, personal, career, or academic counseling see foothill.edu/services .
Grading & GPA:
Academic Honesty: Take proper credit for your work in this course and honor the integrity of your learning. Please talk with students to clarify the course topics you are trying to understand as necessary to complete assignments. However, be careful to not represent another person's work, in whole or in part as your own thinking. Remember, copying and slightly modifying another person's work, is plagiarism and is not acceptable. Type your own code!
The College regards acts of academic dishonesty, including such activities as plagiarism, cheating and/or/violations of integrity in information technology, as very serious offenses. In the event that cheating, plagiarism or other forms of academic dishonesty are discovered, each incident will be handled as deemed appropriate. Care will be taken that students' rights are not violated and that disciplinary procedures are instituted only in cases where documentation or other evidence of the offense(s) exists. A description of all such incidents shall be forwarded to the Dean of Students office, where a file of such occurrences will be maintained. The college may institute action against a student according to the college's disciplinary policies and procedures. Your submissions should represent your own, unique thought and effort after you have dialogued with others to review and self-correct your efforts. Deliverables not meeting these requirements will not be graded until they have been completed to the specifications.
Learning Environment Policies
General Learning Policy: Our online course will be a pleasant space for learning, as such disorderly, abusive, or bothersome conduct will not be tolerated in our online environment nor in-person. Such behavior which interferes with the rights of others or which obstructs or disrupts teaching will result in immediate disciplinary action.
Work Together: Please engage each other often by using the online resources, including the Pronto forum. I reserve the right to change team memberships.
Drops and Withdrawal
For a complete reference of all withdrawal dates and deadlines refer to the Foothill College registration page at the college web site here:
https://foothill.edu/calendar
To stay enrolled in this course, you must participate regularly in your lab assignments and exams. This is part of the course participation that online courses must possess in order to maintain their transferability and accreditation.You will be dropped by me for any of the following:
- Failing to meet with me online, or missing a scheduled meeting with me, or (without prior notice) missing a whole class meeting.
-
Failing to make an introduction post in the "Discussion: Introduce Yourself To Our Class! " discussion during the first week of enrollment.
- Failing to record your name and update your Canvas profile picture during the first week of enrollment.
-
Missing a scheduled exam or more than one quiz/survey in a row without prior notice will result in an automatic drop or a failing (F) course grade.
-
If you do not login for nine (9) consecutive days. (See exception below.)
-
If you receive a zero on any two of the large assignments. (See exception below.)
-
If you do not complete 4 or more quizzes/surveys, assignments, or exercises you will be dropped for non-participation or you will receive a failing (F) course grade (See exceptions above in the section "Missing Days and Make Ups").
Exception to Above Policies: If the non-participation that has just been described occurs partially beyond the last date to drop, I may not be able to drop you, and you may receive whatever grade that your points dictate. Therefore don't assume that you can simply stop participating late in the quarter and you will be dropped. If you intend to drop, please do so yourself so you don't accidentally end up with an unintended "F" grade. If you decide to drop the course, please let me know. I cannot allow anyone who has dropped to continue to have access to the course material.
NOTE: This course will use Foothill College's default grading scheme without curving grades: If you get 100% of the points possible, you’ll get an A grade. If everyone gets 100% of the points possible, everyone will get a A. Please make an A grade your goal, it is totally possible and common in my course.
Name: | Range: | |
---|---|---|
Please note that the grades of A+ and C- are NOT available.
Assignments are weighted by group:
Group | Weight |
---|---|
Videos | 10% |
Large Assignments | 35% |
Quizzes & Exams | 30% |
Participation | 10% |
Badges & Other Assignments | 15% |
Total | 100% |
You can explore how the grading of particular items effect your overall score. Read:How to use "What-If" Scores
Access to Canvas:
Finals week is the last week (the 12th week) of the quarter, and our final is due by Sunday 11:59PM that week. I know the feedback on your final projects and your course grade are important to you, so our course will remain open until about 30 days after the end of the quarter so you can check your final grade and retrieve feedback. Take a minute to note that in your calendar now. I don't want you to miss this window for getting grades and feedback.
Undocumented Students
The Foothill-De Anza Community College District Board of Trustees unanimously adopted a Resolution in Support of Undocumented Students and a Resolution in Support of DACA, the Deferred Action for Childhood Arrivals program. Resources for the undocumented can be found at:
- foothill.edu/dreamers
- California Community Colleges Resources for Undocumented Students
- Immigrant Legal Resource Center
- ready-california.org
Simplified Calendar:
Tentative Course Schedule:
The complete schedule is found in the course Modules page. What follows is a summary of those items that have a due date. I reserve the right to change anything in the schedule.
Course Summary:
Date | Details | Due |
---|---|---|