Fundamentals of Computing - JavaScript
Fundamentals of Computing - JavaScript
DRAFT v 0.90 DRAFT
General Course Information
Faculty name: Stavros Zervoudakis
Faculty NYU email address: [email protected] (use this for non-course related inquiries)
Course title/number: ISMM1-UC 746 400 Fundamentals of Computing with JavaScript
Credits: 4.0
Semester/Year Spring 2021
Class meeting location: Online/Asynchronous via NYU Classes
Office Hours: Upon request (you need to RSVP via the course site Messages, at least 48 hours prior, and receive confirmation).
Course Description
This course introduces the intellectual enterprise of computing through object-oriented design and programming. Using JavaScript as the core learning language, topics include JavaScript data types and variables, expressions and operators, functions, arrays, and objects. The course also examines theoretical aspects of computing and programming, as well as domain specific topics such as the HTML Document Object Model and JavaScript event handling.
Course Prerequisites
There are no prerequisites for this course.
The course focuses on the fundamental concepts of programming and it is structured for students with no prior knowledge or experience.
Course Structure/Method
· This course is provided online, asynchronously, via NYU Classes. Class sessions are structured to include self-paced readings, hands-on labs, and discussion forums. The course requires all students to use the Chrome browser (or equivalent) for the writing and testing of code
· The class sessions, in NYU Classes, will contain a detailed description of the instructor’s expectations, readings, and assignments for each week. Groups will be assigned for forum reading discussions and the final project
· Completed labs must be uploaded by the due time noted by the respective assignment, through NYU Classes using the Assignments section
· Assigned work must be submitted solely through the Assignments function on NYU Classes, unless instructed otherwise by the professor. All submitted work is expected to be complete, properly labeled (“your name assignment code”), of high quality and with proper citations and references
· Potential changes to the course structure, delivery method, material, lab work and additional study references, if needed, will be communicated accordingly. When potential changes make a significant impact the current syllabus, an updated version will be published via NYU Classes
· The course sessions are weekly. Our course sessions will run Monday through Sunday, with the exception of the first few days of the official semester start (on Thursday). These initial days are included in the first session of the semester
· Reading material and instructions will be typically available under the related section of the course site at the beginning of the weekly session.
Course Expectations
· All course assignments are to be submitted through NYU Classes, and students are expected to check NYU Classes at the start of every week (Monday) to review the week’s assignments and work, and then throughout the week to complete the assignments. For group work, students are encouraged to meet online outside of classroom time to complete any projects.
Discussion Forum
· There is a discussion thread inside of the forums titled “Class Comments and sharing information”. I will check this thread at least once before the end of each week. You should feel free to post any comments in this thread that are not of a timely manner and may benefit the class in general. You should also feel comfortable responding to peer comments, if you feel you have appropriate information or knowledge of what is being posted.
Blog
It is expected that each student posts one to two short paragraphs per week summarizing
· What you learnt
· What you found challenging
· Other resources you used to improve your learning experience
· Links to useful resources you found online (at least one link per week)
Starting with session 2, this is required to be posted by all students by the last day of the session session (last date per outline below).
Tutorials
Tutorials on W3schools for HTML, CSS and JavaScript references and code examples can be found at: http://w3schools.com, as well as other websites that will be posted, in the course site on NYU Classes.
Course Learning Outcomes
By the end of the course students should be able to:
· Demonstrate an understanding of the underlying principles of programming
· Demonstrate an understanding of universal concepts in programming
· Demonstrate an understand the composition and structure of the JavaScript language
· Explain the affordances and constraints of Object Oriented and Procedural programming
· Evaluate and develop programmatic solutions to moderately complex problems
· Write original code for programs of basic and moderate complexity
· Have an understanding of how programs can interact with external data sources
During the course of the semester, students will gradually build their skills and develop live, interactive web applications that really work on web browsers, providing both instant feedback and gratification.
Communication Policy
All class work related communications must take place via the NYU Classes Assignments and Messaging system. Students must use the appropriate subject line related to the message in order to receive timely responses (within 2 to 3 business days).
Inquiries not related to class work should be sent via email to the professor using the NYU Email system. Communication inquires will be answered as soon as possible and prior to the start time of the next lecture.
Major assignments key dates and related references
In this course you will discuss and understand how to program JavaScript. To foster comprehension, you will be asked throughout the semester to complete a number of activities to demonstrate your understanding of the concepts and skills introduced. These activities, or labs, will be based on the class session material and the textbook.
Exams
Midterm: 3/19/19. Covers all course topics until the previous session.
Final exam: Date as defined by Albert and confirmed on session 14. Covers all course topics.
Assignments
Details and due dates to be provided via NYU Classes
Required and Recommended Materials
Required:
[1] Eric Roberts. 2020. Introduction to JavaScript Programming The "Nothing but a Browser" Approach. ISBN: 9780135256008
Optional:
[2] Marijn Haverbeke, 2018. Eloquent JavaScript, 3rd edition.
http://eloquentjavascript.net/
[3] The Principles of Object-Oriented JavaScript, 1st Edition, By Nicholas C. Zakas (No Starch Press, 2014). ISBN-10: 9781593275402
Additional reading material will be provided via the course site.
Assessment
The categories for assessment and weights for each category are:
Grading weights:
· Participation: 20%
· Lab Assignments: 25%
· Midterm examination: 25%
· Final examination: 30%
Participation
· Participation is based on meaningful interaction in the course forums, blog and assignments and studying the topics covered by each lesson weekly
· Lab assignments will be graded pass/fall. A complete and on-time assignment receives a pass and an incomplete or missing assignment will be marked as a fail. No late lab assignments will be accepted
Attendance Policy and Classroom Decorum
Class attendance and participation is determined by logging into in a consistent manner and participating in the forum discussions, blog, group projects, and completing lab assignments. Failing to maintain consistent attendance will have an impact on your grade.
Disruptive Behavior (enforced as stated)
Behavior that is deemed by the instructor as disruptive will be penalized through a 5% reduction of your final grade for each instance without warning. Examples of disruptive behavior include: 1) the use of language beyond the acceptable bounds of civility and decency; 2) the use of personal electronic devices; 3) excessive talking or talking to your classmate instead of actively listening; 4) sleeping; 5) watching videos on lab terminals. Your adviser will also be informed of each instance of disruptive behavior.
Submitted work may be checked for plagiarism using TurnItIn or other related tools.
Course Grade:
Grading for undergraduate programs is by letter grade: A, A-, B+, B, B-, C+, C, C-, D+, D, and F.
Course and assignment grades will be made according to the following NYUSPS guidelines.
|
School Grading Policies
NYUSPS Undergraduate
Incomplete Grades:
Tentative Course Outline
(The outline is subject to change based on the progress being made)
Outline format:
Session number – Last day of session week / 2021
Lecture topics
(Note: Assignments to include their due date when posted)
Session 1 – (1/28) – 2/7
Course introduction
Syllabus review, course expectations
A gentle introduction to programming and computers
Session 2 – 2/14
An introduction to computers and recent history of computing
Introducing JavaScript
Session 3 – 2/21
Control Statements
Session 4 – 2/28
Simple Graphics
Session 5 – 3/7
Functions
Session 6 – 3/14
Writing Interactive Programs
Session 7 – 3/19
Midterm exam (due on Friday of this week)
Session 8 - 3/28
Strings
Session 9 – 4/4
Arrays
Session 10 – 4/11
Objects
Session 11 – 4/18
Designing Data Structures
Session 12 - 4/25
Inheritance
Session 13 – 5/2
JavaScript and the Web
Session 14 Final Exam (per Albert)
Acknowledgement of Sources / Style Sheet Specifications
Academic writing may incorporate references to published work to support (or possibly counter) a statement or argument. When stating the ideas or using the words of others your work must always clearly reveal its source and the extent to which that source is being used in your work. You should therefore include a “References” section at the end of the work that you are preparing and cite any sources. The style to be used for this course is that of the Association for Computing Machinery (ACM), which is regarded in the United States of America as the pre-eminent professional body that deals with all aspects of information systems. The ACM is also well respected worldwide. Guidance can be found at: https://www.acm.org/publications/authors/reference-formatting.
Cheating
Cheating has been a significant problem in some classes. However, the use of software packages that allow one to measure similarity help identify unapproved collaboration with considerable ease. If you are caught with similar work as one of your classmates, then this will be considered a case of cheating or plagiarism. If it is deemed to be a case of cheating, you will be given a failing grade for the assignment and the incident will be brought to the attention of the school’s appropriate committee on academic conduct. If it is deemed to be a case of plagiarism you will receive a failing grade for the course and the incident will be brought to the attention of the school’s appropriate committee on academic conduct.
As a rule, you should not discuss implementation and debugging of code for projects or homework with anyone except the instructor. You should never view or provide help with an assignment solution other than your own. You should not discuss program structure, method breakdown, or pseudocode with anyone except the instructor. Letting anyone else view your assignments' code, even by accident, is strictly forbidden. You may only discuss general non-assessment specific concepts with any-one, including other current students. For example: 1) going over lecture slides, any non-assessment handouts, and other code segments and related documentation; 2) discussing programming concepts; 3) general syntax questions.
Plagiarism
It is expected that course participants maintain a high level of academic integrity at all times and adhere to the “NYU-SPS Policy on Academic Integrity and Plagiarism”. To that end you may never ever ever copy code from forums or code repositories such as StackOverflow or Github. If you are ever in doubt, ask the instructor. The instructors will randomly check and if you have similar code you will be charged with plagiarism.
Electronic Recording
To ensure a free and open exchange of ideas within the classroom, students may not at any time record lectures, discussions, and activities.
NYUSPS Policies
“NYUSPS policies regarding the Family Educational Rights and Privacy Act (FERPA), Academic Integrity and Plagiarism, Students with Disabilities Statement, and Standards of Classroom Behavior among others can be found on the NYU Classes Academic Policies tab for all course sites as well as on the University and NYUSPS websites. Every student is responsible for reading, understanding, and complying with all of these policies.”
The full list of policies can be found at the web links below:
· University: http://www.nyu.edu/about/policies-guidelines-compliance.html
· NYUSPS: http://sps.nyu.edu/academics/academic-policies-and-procedures.html
The instructor reserves the right to change this syllabus as needed. When significant changes are made a revised syllabus will be uploaded to NYU Classes and you will be notified of the version change through the NYU Classes messaging system.
2021-02-03