Dr. Greg Bernstein
August 6th, 2021
This is a programming course that uses current industry standard tools that you must install and use.
The assignments may seem very simple/easy at the start but expand and build on each other to become quite complex.
Website development emphasizing presentation layer with client-side and server-side technologies. Topics covered include HTML, CSS, media, JavaScript, CGI server-side programming.
This is a course on web development for computer science students who are familiar with at least one programming language and have had a course on data structures and algorithms. It does not assume any familiarity with web technologies.
Full stack web development includes:
Students will be able to create
Students will learn to use and understand
The tentative course schedule is in the syllabus and maintained only at https://www.grotto-networking.com/WebsiteDevelopment/WebDevMaterials.html#working-schedule-and-lectures-spring-2021
There are a huge number of topics that a web developer may encounter and use in the real world and many opinions on what a developer should know in any given year.
See for example Developer Roadmap.
This course will strive to meet two goals: (1) focus on website development concepts and fundamentals and (2) keep up with current best practices related to those concepts and fundamentals. See for example Developer Roadmaps (frontend and backend).
To accomplish this there are a number of items that will be out of our scope: (1) legacy browser support, (2) survey of backend technologies, (3) Security, (4) Performance, etc…
We will use modern JavaScript (formally known as ECMAScript 2015) and more modern features as permitted by our browsers and Node.js
We will use it for procedural, object oriented, and functional programming techniques applied to the client and server.
We will explore some of the features of the built in features of the language such as Dates, Arrays, Strings, JSON, etc…
Almost all backend technologies support the concept of “templates” which mix code and markup.
Many front end frameworks such as Vue.js, Angular, and Ember also use templates.
We will use the Nunjucks template system by itself, in combination with the Metalsmith static site generator, and with our Express based servers.
Students are required to review the course slides for each module taught in class and to read the supplemental material indicated in the slides. These form the course readings.
Mozilla Developer Network will be our main source for readings and reference
Laptop or desktop running modern version of Windows, MacOS, or Linux.
Ability to install required Open Source (free) development tools
Network connectivity and bandwidth: This course will be using Zoom for online course lectures and office hours.
your development environment is your responsibility!
I cannot configure your computer for you.
I will encourage students to help each other with their development environments.
Most problems encountered with computers, software, or networks do not excuse late submissions of assignments or exams.
Every programmer should be using version control for all but the smallest projects. In this class we will use git.
We also need a way to privately share many files between student and teacher/grader. For this we will use GitHub classroom.
Use is required for all submissions of homework and exams.
Very good free editors
You’ll need to install node.js
All assignment, project, and exam grading is based on the techniques, procedures, and styles taught in class.
Credit may not be given to random solutions obtained via the internet even if they “work”. There will be no debates on this criteria.
If you believe that you have a superior technique for solving a problem discuss it with me prior to using it on an assignment or exam.
Credit for a problem on an assignment does not endorse a technique.
In-Person Instruction: 25% assignments, 20% each midterm, 30% final, 5% participation. No extra credit will be assigned.
Remote Instruction (Covid-19): 35% assignments, 15% midterm, 30% code review, 15% final, 5% participation. No extra credit will be assigned.
The grading scale is as follows: A 92.5%, A- 90.0%, B+ 87.5%, B 82.5%, B- 80.0%, C+ 77.5%, C 72.5%, C- 70.0%, D+ 67.5%, D 60.0%, F lower than 60%
Problems sets will be generally be assigned on a weekly basis and will be posted on the course website with a reminder sent through Blackboard.
We will be using GitHub classroom for almost all the work in this class.
Assignment submission will consist of a commit/push of programming resources to your private class repository on the properly named branch prior to the deadline.
No email submissions or Blackboard submissions will be accepted!
Repository branch names will be given with the assignment and must be followed exactly or the assignment will not be graded.
A randomly selected subset or all of the problems will be graded for each assignment.
There will be two midterm examinations for in-person instruction. These will be closed book pencil and paper exams. If instruction is remote there will be only one midterm and this will be a time limited programming assignment, turned in via Git and graded primarily on working functionality.
Under remote instruction instead of a second midterm I will perform an in depth review of selected portions of coding assignments/project during the 2/3 of the course. This includes evaluation of functional/non-functional code against assignments/project requirements. No code review will be done under in-person instruction.
For in-person instruction the final will be a close book pencil and paper examination at the time specified by the university. For remote instruction this will be a time limited programming assignment, turned in via Git and graded primarily on working functionality.
Class participation credit can be earned in a number of ways:
Outside of class sessions class participation credit can be earned by:
Office hours are shared amongst the many students in my class. Most times demand for my attention is moderate, but when there are many students waiting I will need to limit each students time to try to accommodate as many students as possible.
I will be encouraging students to help each other during office hours. Such assistance to your fellow students counts as “class participation”
We live in a multi-cultural world! At US universities there are certain customs and protocols that are typically observed.
“I have doubts on XYZ” sounds to native English speakers that you may not consider “XYZ” valid or good in some sense.
What is typically intended is “I do not understand XYZ”, and even better yet let me know the details of exactly you don’t understand.
By enrolling in this class the student agrees to uphold the standards of academic integrity described at https://www.csueastbay.edu/aps/academic-policies/academic-dishonesty.html.
Although collaborative study and dialogue are encouraged, students are expected to author solutions entirely on their own.
If you have a documented disability and wish to discuss academic accommodations, or if you would need assistance in the event of an emergency evacuation, please contact me as soon as possible. Students with disabilities needing accommodation should speak with the Accessibility Services.
California State University, East Bay is committed to being a safe and caring community. Your appropriate response in the event of an emergency can help save lives. Information on what to do in an emergency situation (earthquake, electrical outage, fire, extreme heat, severe storm, hazardous materials, terrorist attack) may be found at: http://www20.csueastbay.edu/af/departments/risk-management/ehs/emergency-management/index.html Please be familiar with these procedures. Information on this page is updated as required. Please review the information on a regular basis.
Title IX and CSU policy prohibit discrimination, harassment and retaliation, including Sex Discrimination, Sexual Harassment or Sexual Violence. CSUEB encourages anyone experiencing such behavior to report their concerns immediately. CSUEB has both confidential and non-confidential resources and reporting options available to you. Non-confidential resources include faculty and staff, who are required to report all incidents and thus cannot promise confidentiality. Faculty and staff must provide the campus Title IX coordinator and or the DHR Administrator with relevant details such as the names of those involved in an incident. For confidential services, contact the Confidential Advocate at 510-885-3700 or go to the Student Health and Counseling Center. For 24-hour crisis services call the BAWAR hotline at 510-845-7273. For more information about policies and resources or reporting options, please visit the following websites: https://www.csueastbay.edu/riskmanagement/complaint.html, http://www.csueastbay.edu/titleix
The University is committed to maintaining a safe and healthy living and learning environment for students, faculty, and staff. Each member of the campus community should choose behaviors that contribute toward this end http://www.csueastbay.edu/studentconduct/student-conduct.html.