Course Syllabus
Jump to Today
Course Name: Computer Programming: JavaScript
Location: Gates-Dell Complex 5.302
Lecture Time: Tuesdays and Thursdays, 2:00 - 3:00pm
Instructor: Dr. Robert F. Dickerson
Office Hours: By Appointment
Email: [email protected]
COURSE DESCRIPTION:
This course is designed to provide a solid introduction to the JavaScript language. We
will explore the more unique and tricky JavaScript features such as closures, higher-
order functions, and prototype object oriented model that perhaps are not familiar to
many students who are familiar with Java and Python as their primary languages. We
will also introduce how JavaScript is used as a popular technology for both for frontend
and backend web applications.
PREREQUISITES
Students should already have had some exposure to a programming language such as
Java, Python, or C. Know what a function and variable are, preferably know the basics
to object-oriented programming. The course requires a commitment to study JavaScript,
and hence will require completing instructor collected readings before the lecture.
COURSE REQUIREMENTS
Class Participation. Students must bring their laptops to class and participate in course
learning activities and contribute fully to the completion of group projects.
Homework. Weekly homework assignments are short must be submitted by Canvas
that test your understanding of the material of the previous week.
Final Group Project. Students will work on using your knowledge by creating a web
application or Javascript library. This project will be demonstrated on the last day of
class. The project must be uploaded onto some repository such as Bitbucket or Github.
SCHEDULE
The schedule is structured that there is an overarching topic for that week. We will
explore the core concepts of that week, I will assign a short programming project that
Thursday that will be due the following Friday.
Week 1: Basics
Week 2: Functional programming
Week 3: Object oriented programming
Week 4: Client-side applications
Week 5: Server-side applications
Week 6: Design patterns and Idioms
Week 7: Popular frameworks
GRADING CRITERIA
1. 40% Final Project
1. 10% project proposal
2. 30% final presentation
2. 60% Programming Exercises (6 exercises, 10% each)
FINAL PROJECT
Proposal due date: Feb 12, 2015
Max team members: 3
Please use Piazza or meet with me to refine your idea. The purpose of the final project
not only is to solidify the concepts you learn in class, but also to have a working project
in your portfolio that demonstrates your ability to develop in JavaScript. Interesting
ideas that deviate from the state-of-the-art are preferred. Go ahead and take risks!!
You must use a git repository for the development of your project. Every student in the
group should participate by checking in updates to the repository. The final deliverable
should be deployed somewhere (like Heroku or Amazon AWS), or if a library, a
deployed example that spotlights the features it provides. Although not required, a
screen captured demo would be recommended in many situations. Refer to my mobile
computing course as an example:
Elements of Mobile Computing Fall 2014 (Links to an external site.)Links to an
external site.
RESOURCES
Students are not required to purchase a textbook for this course because there are many
online resources available either publicly on the web or as e-books provided by
the University of Texas Library contracts.
1. JavaScript: The Definitive Guide by David Flanagan (Links to an external
site.)Links to an external site.
2. JavaScript: The Good Parts (Links to an external site.)Links to an external site.
3. JavaScript Ninja
4. Learning JavaScript Design Patterns (Links to an external site.)Links to an
external site.
5. Up and Running with Node.js (Links to an external site.)Links to an external
site.
6. Eloquent JavaScript (Links to an external site.)Links to an external site.
7. JS: The Right Way (Links to an external site.)Links to an external site.
8. JavaScript Garden (Links to an external site.)Links to an external site.
9. Mozilla JavaScript Guide (Links to an external site.)Links to an external site.
10. Object Playground (Links to an external site.)Links to an external site.
11. Idiomatic.js (Links to an external site.)Links to an external site.
12. Nodeschool (Links to an external site.)Links to an external site.
13. JSLint (Links to an external site.)Links to an external site.