The following outline presents the topics that are covered, in the approximate order and time frame in which they will be discussed.

- Week 01 — Introduction, Syllabus, Getting Started

- Syllabus items and issues
- Programming environment: setups and operation
- Tools: browsers, text editors, jsFiddle, jsLint, ScriptRunner, Playground, DOM inspector
- Java vs. JavaScript / programming languages
- What is computer science?
- Introductory "stuff": people, computers, parts
- Definition of an algorithm
- Program modeling and design / flowcharting / UML
- Introduction Page
- Introduction Slides
- Accompanying Pictures

- Week 02 — The Fundamentals (1)

- Sample algorithms: addition, multiplication, greatest common divisor; paper folding exercise; double-dabble
- Some famous algorithms: Euclid's GCD, Russian Peasant Multiplication, computing roots, 8 queens, others
- Some famous programming problems; primes, palindromes, substrings, dice roller, permutation, quadratic solver, stack implemetations, queue implementations
- Program basic input and output: Hello, world!
- Expressions/Variables/Statements
- Fundamentals (1) Page

- Week 03 — Fundamentals (2)

- Homework #1 due Sep 13, graded & returned Sep 18
- Comments/Expected coding standards
- Binary/hex representations
- Truth tables
- Operator precedence
- Fundamentals (2) Page

- Week 04 — Fundamental Concepts (3)

- Data types: numbers, strings, Booleans, objects, null/undefined
- Arrays, Strings, Javascript Prototypes
- Data structures: Stacks, Queues, Lists
- Using data structures in algorithms
- Fundamentals (3) Page

- Week 05 — Loops and Decisions, I/O (1)

- Exam #1 given Sep 27, graded & returned Oct 02
- Declarations and expressions
- Input and output from users
- Conditionals: if statement, conditional expression, switch statement, short-circuits
- Loops/Decisions (1) Page

- Week 06 — Loops and Decisions, I/O (2)

- Iteration: for loop, while loop, do-while loop, for-in statement, break/continue
- Exceptions and error handling
- Loops/Decisions (2) Page

- Week 07 — Algorithms and Implementations

- What is a function?
- Defining functions
- Calling functions
- Program "scope"
- Spend remainder of week covering algorithm implementations from homework problems
- Practice Problems Page

- Week 08 — Functions and Closures (1)

- Homework #2 due Oct 18, graded & returned Oct 23
- Functions as objects; functions in prototypes; closures; higher-order functions
- The "this" keyword and referencing
- Functions (1) Page

- Week 09 — Functions and Closures (2)

- Closures and higher-order functions
- LOTS of in-class example working
- Exam given next Thursday, graded and returned on following Tuesday
- LOTS of in-class example working
- Functions (1) Page Revisited
- Functions (2) Page

- Week 10 — Events and User Interfacing (1)

- Exam #2 given Nov 01, graded & returned Nov 06
- Quiz #2 Review Page

- Week 11 — Events and User Interfacing (2)

- Work quiz #2 in class
- Procedural programming & Event-driven programming
- User interface elements revisitied & Event handlers/event objects
- Events/UI (2) Page

- Week 12 — Software Construction (1)

- Homework #3 due Nov 15, graded & returned Nov 20
- Using JSON -- objects can be sent through the network

Once again, the W3C Schools site to the rescue! - jQuery library FTW — Check this out… — …this, too…
- What is software engineering and software design?
- Object-Oriented program design
- Inheritance/encapsulation/information hiding
- Properties/prototypes revisited
- S/W Construction (1) Page

- Week 13 — Software Construction (2)

- JavaScript built-in objects/web browser host objects
- Modularization
- Algorithm comparisons: efficiency, running time, Big-Oh notation
- November 23rd: no class — Thanksgiving holiday
- S/W Construction (2) Page

- Week 14 — Testing and Debugging

- Homework #4 due Nov 29, graded & returned Dec 04
- Testing: unit testing, QUnit, debugging methods
- Questions about homework #4
- Course evaluations: I need someone to take the completed forms to the drop-off in Pereira 140, please and thank you!
- Testing and Debugging Page

- Week 15 — Review

- Review for Final Exam: Final Review Page

- Week 16: FINAL EXAM — Tuesday, Dec 11, 11:00 AM