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.

Letter

%

GPA

Meaning

A

93-100

4.0

Excellent: Earned by work whose excellent quality indicates a full mastery of the subject and is of extraordinary distinction.

A-

90-92

3.7

Excellent: Earned by work whose excellent quality indicates a full mastery of the subject.

B+

87-89

3.3

Good: Earned by work that indicates a very good comprehension of the course material, very good command of the skills needed to work with the course material, and indicates the student’s full engagement with the course requirements and activities.

B

83-86

3.0

Good: Earned by work that indicates a good comprehension of the course material, good command of the skills needed to work with the course material, and indicates the student’s full engagement with the course requirements and activities.

B-

80-82

2.7

Good: Earned by work that indicates comprehension of the course material, command of the skills needed to work with the course material, and indicates the student’s engagement with the course requirements and activities.

C+

77-79

2.3

Satisfactory: Earned by work that indicates an adequate and satisfactory comprehension of the course material and the skills needed to work with the course material, and indicates the student has met the requirements for completing assigned work and participating in class activities.

C

73-76

2.0

Satisfactory: Earned by work that indicates a satisfactory comprehension of the course material and the skills needed to work with the course material, and indicates the student has met the basic requirements for completing assigned work and participating in class activities.

C-

70-72

1.7

Satisfactory: Earned by work that indicates a minimally satisfactory comprehension of the course material and the skills needed to work with the course material, and indicates the student has met the minimum requirements for completing assigned work and participating in class activities.

D+

65-69

1.3

Passing: Earned by work that is unsatisfactory, but that indicates some minimal command of the course materials and some minimal participation in class activities that is worthy of course credit toward the degree.

D

60-64

1.0

Minimum passing grade: Earned by work that is unsatisfactory, but that indicates some minimal command of the course materials and some minimal participation in class activities that is worthy of credit toward the degree.

F

59 or below

0

Fail: Earned by work which is unsatisfactory and unworthy of course credit towards the degree.

 

School Grading Policies

 NYUSPS Undergraduate


http://sps.nyu.edu/content/scps/academics/academic-policies-and-procedures/undergraduate-academic-policies-and-procedures.html#Grades_and_Grade_Point_Averages

Incomplete Grades:


http://sps.nyu.edu/content/scps/academics/academic-policies-and-procedures/undergraduate-academic-policies-and-procedures.html#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.