UMass Lowell Dept. of Computer Science

COMP 4620 — GUI Programming II

Spring 2016 Semester, Section 201

Prof. Jesse M. Heines

Course Syllabus


Teaching Philosophy    Top

“The mind is not a vessel to be filled, but a fire to be kindled.”
Plutarch, 46–120, Greek philosopher
 
“I never teach my pupils; I only attempt to provide the conditions in which they can learn.”
Albert Einstein, 1879-1955, Nobel Prize-Winning Physicist
 
“Science is more than a study of molecules and calculations; it is the love of knowledge and the continued search for the truth.”
Kenneth H. Olsen, 1926-2011, Founder, Digital Equipment Corporation
 
“Those things for which [a college demands] the most money [from a student] are never the things which the student most wants.  Tuition, for instance, is an important item in the term bill, while for the far more valuable education which he gets by associating with the most cultivated of his contemporaries, no charge is made.”
Henry David Thoreau, 1817–1862, writing in Walden (published in 1854)


Basic Instructor and Course Information     Top

Course Web Site:
Discussion Forum: https://piazza.com/uml/spring2016/comp4620
Prerequisite: C or better in 91.461 GUI Programming I or permission of instructor
Professor:

Jesse Heines Dr. Jesse M. Heines

B.S., Massachusetts Institute of Technology
M.S., University of Maine at Orono
Ed.D., Boston University
Email:   heines@cs.uml.edu
Phone:   978-934-3634  (extension 43634 from on-campus phones)
  you may also call me at home at 978-251-9350 any evening until 10:00 PM
Office:   Olsen Hall 211
Office Hours:  
  • Tuesday and Thursday: 11:00 AM to 12:00 noon
  • other hours are available by appointment
  • please see http://teaching.cs.uml.edu/calendar for my availability and instructions on how to make an appointment with me

Please note that due to the roles that I fulfill in addition to my teaching duties, I receive a flood of email every single day, including on weekends.  In addition, there are multiple filters on my incoming email to auto-delete junk mail and pornography, and messages without subject headers typically end up in our Junk Mail folders.

It is therefore critical that you always include a subject header on all your email messages to me.

In addition, to get me to read and respond to your email before all others, always begin your subject header with our course number (COMP 4620) followed by a few words that clearly identify what your email is about.

These guidelines are for your benefit, and following them will get your questions answered as quickly as possible.

Class Hours:

Tuesday and Thursday, 12:30 PM to 1:45 PM
Olsen 402, North Campus

Required Texts:

Getting MEAN with Mongo, Express, Angular, and Node Getting MEAN with Mongo, Express, Angular, and Node
by Simon Holmes

This book covers the MEAN stack, which I would like all projects to use.  It is extremely well written and leads you through everything step-by-step.  It contains numerous exercises that ultimately build a relatively sophosticated application, allowing you to see how each component of the MEAN stack is applied. 

This book should be available in the bookstore, but if not it can be ordered from Amazon.com at:

http://www.amazon.com/Getting-MEAN-Mongo-Express-Angular/dp/1617292036

For additional information and to download the code examples, please see:

Publisher’s Book Website:  https://manning.com/books/getting-mean-with-mongo-express-angular-and-node

Book Forum: https://forums.manning.com/forums/getting-mean-with-mongo-express-angular-and-node

Code Examples: https://github.com/simonholmes/getting-MEAN

Author’s Book Website: http://www.simonholmes.com/


Note:  The following texts for this course are the same as last semester’s.

 

CSS3: The Missing Manual CSS3: The Missing Manual, 3rd edition
by David Sawyer McFarland

This book covers Cascading Style Sheets, the key to web page layout and the basis of advanced JavaScript libraries, better than any book I have ever seen.  It has text explanations and tutorials.  It is extremely well written. 

This book is not for beginners, but that is precisely the reason that I have selected it as the main text for this year’s version of GUI Programming I.  It will challenge you, but it will also provide you with all the support you need to learn to create fantastic web pages.  The underlying HTML knowledge needed to understand this book is easy, and we will cover that in class.  This book is also critical as a foundation for the other required book for this course (see below).

This book is available free of charge on the ProQuest Safari Books Online website at:

http://proquest.safaribooksonline.com/9781449339456

For additional information and to download the code examples, please see:

Publisher’s Book Website:  http://shop.oreilly.com/product/0636920024996.do

Code Examples:  http://examples.oreilly.com/0636920024996/

Author’s Book Website:  http://www.sawmac.com/css3

CSS: The Missing ManualJavaScript & jQuery: The Missing Manual, 2nd edition
by David Sawyer McFarland

This book is an excellent introduction to JavaScript and jQuery.  We will not only use it in this course, but we will use it in 91.462 GUI Programming II, as well.  It is easy to read and contains a wealth of excellent examples.

Note that this book is by the same author as the one above.  Therefore, it, too, is very well written.  In addition, this book is also available free of charge on the ProQuest Safari Books Online website at:

http://proquest.safaribooksonline.com/9781449317812

For additional information and to download the code examples, please see:

Publisher’s Book Website:  http://shop.oreilly.com/product/0636920015048.do

Code Examples:  http://examples.oreilly.com/0636920015048/

Author’s Book Website:  http://www.sawmac.com/js2e


Course Description     Top

This is the second semester of a two-semester senior capstone course.  In addition, it is a project course.  Putting these two together means that the GUI Programming course sequence is a two-semester experience that is intended to result in your working with other students to implement a program of significant size that adheres to sound user interface and software engineering practices.

Last semester dealt with creating web pages using HTML, CSS, and JavaScript, and some of you began using the jQuery JavaScript library as well.  This semester all students will use the jQuery library.  However, class will be conducted differently this semester.  Rather than focusing on implementation techniques, we will focus on products: what you want to do and how you can get it done.  At this point you all have a very solid background in client-side web programming, and each of you will explore different advanced techniques as you develop your individual projects.  Many of you actually taught me last semester, and I expect that role reversal to increase this semester as you encounter and solve problems with your projects that I have not worked with myself.  I expect everyone to continue the fantastic level of communication we had on the course’s Piazza listserv last semester so that we all continue to learn from each other.

As demonstrated in 91.461, GUI programming goes far beyond putting windows, icons, and menus on the screen and accessing them with a pointing device.  (You may remember that that level of GUI programming is called a “WIMP” interface!)  The essence of GUI programming is the U part, that is, the quality of the user’s interaction with the system.  My own programs — the ones that I really put effort into and the ones I get paid to write — are probably only 10-15% “algorithm” at most.  The rest is error-checking, contingency-handling, and documentation.  (Yes, I’ve now emphasized documentation twice now...)  This mix, and the meticulous attention to detail that it involves, help me create programs that actually work: not only in the sense that they do not crash, but more importantly in the sense that they actually help users get a job done, even when those users make mistakes.  To verify that your programs do this, we will conduct usability tests with students who are not enrolled in this course.

The main part of your work this semester will be on a project of significant size, and that project will be undertaken with at least one partner so that you further your ability to work with others.  We will also spend some time looking at server-side programming with PHP and using MySQL databases, at least at a rudimentary level so that you can use these in your project if you like. 


UMass Lowell Essential Learning Outcomes

This course meets the Essential Learning Outcome of Information Literacy as defined under the Core Curriculum requirements.  As such, the course will instruct students on the use of digital technologies, communication tools, and/or networks to define a problem or an information need; devise an effective search strategy; identify, locate, and evaluate appropriate sources; and manage, synthesize, use, and effectively communicate information ethically and legally.

This course also meets the Essential Learning Outcome of Applied and Integrative Learning as defined under the Core Curriculum requirements.  As such, the course will enhance students’ learning across their curriculum and co-curriculum, fostering connections between courses or by connecting courses to experiential learning opportunities.

And finally, this course meets the Essential Learning Outcome of Written and Oral Communication as defined under the Core Curriculum requirements.  As such, the course will help students to enhance their abilities to develop and express ideas in written and/or oral formats, requiring the student to draw upon appropriate genres and styles with an emphasis on writing within the discipline.


Accreditation Board Student Outcomes

This course helps students attain the following outcomes mandated by the Accreditation Board for Engineering and Technology (ABET).

(b)  An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.

(c)  An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.

(d)  An ability to function effectively on teams to accomplish a common goal.

(f)  An ability to communicate effectively with a range of audiences.

(k)  An ability to apply design and development principles in the construction of software systems of varying complexity.


Learning Objectives     Top

Upon completion of this course, students will be able to:

  1. Work on a project team with other students.
  2. Write a project plan.
  3. Complete the design, implementation, and documentation of a program of significant size and complexity.
  4. Correctly document your work.
  5. Make oral presentations to the class on their work.
  6. Conduct and report on a relevant usability test.
  7. Solve programming and other project-related problems on their own by exploring documentation and other resources.


Contacting the Professor     Top

My office hours are listed on the first page of this syllabus.  Unless I make announcements to the contrary, I expect to be in my office or at least around our department during those hours to help you or meet with you about this course.  If these hours are not convenient, I will be happy to make an appointment to meet with you at other times.

Some students are reluctant to contact professors personally, especially those from cultures in which professor-student relationships are very formal.  That is not the case here.  If you have any problem at all concerning the course or your work, it is your responsibility to contact me.  There are many things I can do during the semester to assist you with the course material or help you catch up if you fall behind.  But once the semester is over, it’s over, and you will not be able to make up for lost opportunities.  I monitor my email multiple times per day, even when I am traveling, so there really is no excuse for not contacting me if you need help.

Of all the aspects of our jobs, teaching and interacting with students are certainly the ones I enjoy most.  Your success in this course is a joint effort between you doing the assigned work and me assisting you, so please don’t be shy about contacting me.  This is the second time that I am teaching this course, and while things will be more structured than the first time, there are still many things that will develop as the semester progresses.  At times you may be confused as to what is expected of you, and I understand that.  In those cases, please ask for clarification.  Never assume anything.  Always ask.


Grading Policies     Top

Your grade in this course will be made up of programming assignments, exams, and a rating based on your attendance (see below).  You must complete the coursework to earn a passing grade.  As a rule, I do not give incompletes.  I have only given incompletes on one or two occasions in my entire 30-year career as a UMass Lowell professor, and these were for truly extenuating personal circumstances outside of the classroom, for example, serious illness.  Do not expect to get an incomplete if you do not finish the coursework.  Assignments not turned in and exams missed will be recorded as grades of 0 and will significantly impact your final grade.

Final course grades will be determined by the weighted average of all assignments, quizzes, and other activities.  As we begin the semester, I anticipate that all assignments and quizzes will carry a weight of 1.0.  That is, a homework assignment counts exactly the same as a quiz or exam.  Thus, the best way to get a good grade in this course is to plan your time so that you can come to class every day and put major effort into the assignments. 

Put simply, you cannot do well in this course without doing well on the assignments.  You simply cannot pass this course without handing in the assignments. 

Important Note:  I reserve the right to change this grading system as the course progresses and various circumstances develop.


Attendance

Attendance is required.  This course will involve a great deal of discussion, particularly of issues raised by students.  The classroom is a dynamic environment, and you must be present to take advantage of this important learning activity.  I will take attendance in each class.  The number of classes attended will be divided by the number of classes in the course and that percentage will be averaged into your grade with a weight of 1.0 just like an assignment or quiz. 

If you must miss a class, you may ask to be excused by contacting me via email before that class and explaining the reason for your required absence.  However, please note that “I have to work” is not an acceptable reason for absence.  While I appreciate the need for money and I understand that we must all make difficult choices about how we spend our time, I do not excuse absences for work reasons because I know of no other way to convince you that work is temporary, while education is permanent.  Thus, attending class has to have the higher priority.


Grade Display Program

I have written a web-based Grade Display Program that you can use this program at any time to see exactly where you stand in this course.  The program summarizes your grade status with a display like this:

      You Are Registered for Course:   91.462
  Grade File Last Updated:   5/1/2014 at 11:44 AM
  Total Number of Grades To Date:   4
  Number of Grades We Have for You:   4
  Your Current Weighted Average:   80.50
  Class Mean Weighted Average:   71.08
  Class Median Weighted Average:   75.00
  Assignment Resubmission Option:   Still Available
     

The program then provides complete details on each grade like this:

     
  Grade No. 2:   Assn 2: Project Milestone #2: Alpha Version
  Due Date:   2/27/2014
  Your Raw Grade:   12   (out of a possible 20)
  Raw Grade Multiplier:   5.00   (to convert to a 100 point scale)
  Your Standardized Grade:   60  (this is Your Raw Grade times the Raw Grade Multiplier to convert your grade to a 100 point scale)
  Relative Weight:   1.00   (1.00 = normal)
  Class Mean Raw Grade:   15.32
  Class Median Raw Grade:   15.00
  Range of Class Raw Grades:   11.00 to 20.00
  Standard Deviation:   2.75

To try the program out yourself, click here, enter your UMass Lowell email address and password, and click the Show My Grades button.


Determination of Final Grade Cutoffs

I make a precise determination of final grade cutoffs only at the very end of the semester, after all assignments and exams have been graded.  At that point I sort all students’ grades by their weighted average and look for “breaks” in the differences between adjacent averages.  For example, I don’t give a student with an 89.93 average a different grade from a student with a 90.00 average, as these two averages do not differ significantly.  Rather, I look for significant differences of a point or more at which to set the precise grade cutoffs and break the letter grades. 

As a rule of thumb, if your weighted average is 90.00 or higher, you are probably doing A or A– work.  If your weighted average is between 80.00 and 90.00, you’re probably in the B range.  Below that, you’re in danger of a C.  However, it is critical to understand that there are no absolute grade boundaries.  That is, there is no guarantee, for example, that a grade of 90 or above will be an A.  Grade boundaries are only determined at the very end of the semester.

The exact grade cutoffs change from semester to semester.  As a better indicator of where you stand, look at your class rank rather than your weighted average.  Again as a rule of thumb based on experience teaching for many years, about 25% of the students get A or A– and 50% get B+, B, or B–.  The rest typically get C+ or below.  The only students who truly fail with Fs are those who don’t show up at all or who drop out during the semester without officially withdrawing or who cheat (see more on this below). 

I try to be flexible and understanding during the semester with assignment due dates, etc., if you contact me before an assignment is due.  At the end of the semester, however, I adhere very strictly to the policies detailed in this syllabus.  Do not procrastinate.  If you have a problem, contact me immediately.  I have given you all of my contact information above and provided extensive information on the course website.  There is absolutely no reason for you not to know the course policies. 

I will not negotiate grades with you under any circumstances.  I will not even discuss grading issues with you after the last day of class.  As I will undoubtedly say numerous times in class, I can “play ball” on virtually all issues related to this course during the semester, but once our last class is over, so is the semester (except, of course, for the final exam).


Homework Policies     Top

Due Date and Time

Homework assignments are due at midnight in the evening of their due date.  Assignments handed in late will lose points from their overall grades.

If you are not able to hand in an assignment on time, contact me before the due date.  I will allow assignments to be handed in late with valid excuses.  (Note that “I was too busy at work” is not a valid excuse.)  Do not simply ignore homework assignments.  An unexcused assignment is averaged in as a 0.  Even a 1 on a homework assignment is better than that.  It is impossible to pass this course without doing the homework assignments, even if you get 100s on all the other evaluated activities. 


Copying

In worlds outside the classroom, people seldom work completely on their own.  They typically work in teams and help each other extensively.  I have no objection to you getting help from me, the teaching assistant, or your fellow students.  I encourage you to do so and I have set up a Piazza discussion forum for this very purpose.  However, unless otherwise stated, work in this course is to be each student’s own.

You are responsible for understanding the full meaning of plagiarism.  The Merriam-Webster Dictionary defines the verb plagiarize as follows:

There are many ways in which students plagiarize, all of which are cheating.  The Web makes if phenomenally easy to find other people’s work and copy-and-paste it into your own program or your own paper without visibly indicating that the code or text is copied and without citing or crediting the original author.  Such practices are illegal and are not allowed in this or any other course at the University of Massachusetts Lowell or any other institution of learning.  If you are not sure how to cite and credit another person’s work, ask.  But if you plagiarize, you will fail.

I will not tolerate plagiarism or cheating of any kind.  Every few semesters I am forced to fail a student or two for handing in work that they claimed was their own but was not.  The following actions are all examples of cheating.

You are also responsible for being familiar with the University’s definitions and policies on academic dishonesty.  You are encouraged to get all the help you need, but you are required to hand in your own work. 

It is worth repeating: IF YOU CHEAT, YOU FAIL.  There are no second chances.


Assignment Resubmissions

An assignment on which you receive a poor grade can be resubmitted for additional points subject to the following rules.  (Quizzes and exams may not be resubmitted or taken a second time.)

  1. You can only resubmit an assignment that was originally handed in on time.
  2. You can only resubmit an assignment within one week after receiving your grade report on that assignment.
  3. You can only resubmit one assignment during the entire semester.
  4. You do not need our permission to resubmit an assignment as long as you have not previously resubmitted another assignment.
  5. You cannot resubmit a quiz or exam.
  6. The maximum score you can earn on a resubmission is the average between your original score and a perfect score.  The actual score you earn on a resubmission is determined by the grader and in many cases will be less than the maximum.
  7. If the average of your original score and your resubmission score is not a whole number, it will be rounded up to the next whole number.
    • For example, if you get a 12 on an assignment worth 20 points and hand in a perfect resubmission, your grade will be (12+20)/2 = 16.
    • If you get a 9 on an assignment worth 20 points and hand in a resubmission that earns 18 points, your grade will be (9+18)/2 = 13.5, which would get rounded up to 14. 


Website Tracking and Syllabus Certification    Top

Please note that your use of the course website is tracked in a database.  This is why you must log in to access any pages on the course website.  Each time you access a page the database stores:

My research assistants and I analyze this data to learn how the course website is used and how it might be improved.  We do not analyze the browsing patterns of individual students and your use of the course website will not affect your grade.  We are only interested in aggregate data, that is, general browsing patterns of all students as a group.  Such analyses help us understand how much students use the course website, which parts of it they use most often, and whether there is any correlation between students’ use of the site and their performance in the course.

It is important to stress that information that identifies you individually is not be used in our research, as we are only interested in aggregate data.  Even so, we still need your permission to use the data we collect on your browsing.  We therefore need for you to explicitly grant or deny permission for us to use this data.  The granting of permission is completely voluntary and will have no effect on your grade in this course.  I obviously hope that you will grant permission, but there will be no negative consequences if you do not. 

While the choice to grant or deny permission is yours, you are required to indicate your choice explicitly by completing a form posted on Google Docs.  This form also requires you to certify that you have read and understand the contents of this document, including all the policies it spells out.  The form is posted at

https://docs.google.com/forms/d/166cx_uRhYJ24qoI-zMrs1dpWVyOw5iloQ-ojjF41lv4/viewform

In closing, I sincerely hope that you enjoy this course and that we all learn from each other this semester.  Thank you.



This is document http://jesseheines.com:8080/~heines/91.462/91.462-2015-16s/462sy16s.jsp.  It was last modified on Friday, August 26, 2022 at 4:05 PM.
Copyright © 2022 by Jesse M. Heines.  All rights reserved.  May be freely copied or excerpted for educational purposes with credit to the author.