Instructor:
Christopher Manloloyo
for contacting me or scheduling appointments send to manloloy@hawaii.edu
for Specified Assignments/Evaluations Only that need to be emailed send to chris.uh.class@gmail.com
Office Hours: Online
Lecture:
University of Hawaii at Manoa:
Tuesday & Thursday: 1:30 pm - 2:45 pm Online (Google Meet Link Below)
You must be logged in to your hawaii.edu google account to join the room automatically.
Teaching Assistant(s)/Grader(s):
Frendy Lio Can - frendy@hawaii.edu
Office Hours: Online - Thursday, 2:45 pm - 3:30 pm.
Ethan Chee - ethanwc@hawaii.edu
Colin Lambert - clambert@hawaii.edu
Colby Kagamida - colbykag@hawaii.edu
Lab Sections:
Section 1: Online - Tuesday 7:30 am - 10:15 am - Ethan Chee
Section 2: Online - Tuesday 3:30 pm - 6:15 pm - Colin Lambert
Section 3: Online - Thursday 3:30 pm - 6:15 pm - Frendy Lio Can
Textbook/Reference:
Course Textbook (PDF Version) - Tep Dobry - You can find the textbook in the references section to the course.
The textbook can be used more as a reference. It is not needed to complete this course. You can also use some of the more updated references online instead. If you are looking for more material and prefer reading, this course textbook is very good.
Topics Covered:
Development Environment:
You may develop your programs on any system of your choice, such as a Mac or PC. We will be working in a virtual environment. This environment will be downloadable and will be able to run on both Mac and PC. This will allow for everyone to be working in the same environment, which will enable student collaboration. Allow yourself time to transfer and TEST your programs before they are due. ("But it ran on my PC!!" is NOT a valid excuse).
Grading:
Your grade for the course will be based on the following assignments and exams:
Labs: 20%
Homeworks: 15%
Final Project: 10%
Class Participation: 10%
Quizzes: 5%
Midterms: 20%
Final Exam: 20%
Grades in this course will NOT be curved (some scaling of exam scores may be done if necessary). The +/- grading system will be used in this course.
A weighted average above 90 is guaranteed an A -
above 80 at least a B-,
70 or above at least a C,
and above 60 at least a D.
NOTE: A score below 70 will be C- and below. If you need a C in this class, you must achieve a weighted average of 70 or above.
Programs will be graded on the basis of correctness, modularity, programming style, source formatting, quality and generality of algorithms, data structures and design, documentation and input/output format. Correctness will be determined by the program's output when it is run on our test data. If your programs do not run and produce the correct output, they cannot receive points for correctness. This is why it is essential for your programs to compile for grading purposes. However, a working program is not sufficient. As the course progresses, you will be graded increasingly on the style and documentation of your code. Guidelines for good style and documentation will be provided throughout the course.
Homework will be submitted electronically using the "grade" command on wiliki. They will be graded online and returned to you electronically through email to your wiliki account.
Your grades can be monitored through anonymous spreadsheets. Your TA will assign you a private number that only you should remember. DO NOT SHARE YOUR PRIVATE NUMBER WITH ANYONE.
Time Commitment:
This is a 4 credit course. Using the rule-of-thumb that for each credit hour, you should expect to spend 3 hours per week, you should be prepared to spend 12 hours per week on this class. That includes 3 hours of lecture, and 3 hours of lab per week, and leaves 6 hours per week you should be spending OUTSIDE of class working on this course, at a minimum. However, you should be aware that programming can be time consuming, so at times, more than 6 hours outside of class will be required. In class we will discuss ways to make effective use of your time.
Working in Teams:
In today's world, engineering is not a solitary effort -- engineers work in teams. Some of the work you do in this course will be individual, and some will be in teams of two or three this semester. Assignments and projects will be identified as to whether they should be submitted individually or as a team. Exams and most quizzes will all be individual work. I will assign you to teams after your first lab session.
Lab Sessions:
Lab sessions will be held every week (beginning the second week). In these sessions you will be given the opportunity to become familiar with the systems and language constructs by writing, debugging and testing small programs to be submitted for grading. In general, lab work will be individual effort; each individual will turn in their own files for the lab assignment. However, you are encouraged to work with your teammates to help each other understand the material covered.
Lab Deadlines:
Programs you write in the lab are due BEFORE the next lab session in which they are assigned. You should try to complete the programs assigned for each lab during the lab time where you can get help from the TA.
Late Labs will not be accepted. You must turn in your lab to receive credit for you lab. A general rule to remember is that if your lab does not compile, the most credit you can receive is 50%. Programming in nature is learned bottom up which means you must learn the material in order to move on. You are responsible to keep up with the material even if you don't complete the material on time.
DO NOT FALL BEHIND IN THE LAB. The best way to meet the lab deadlines is to prepare for the lab: READ the lab assignment at least one day before the lab; prepare the directories and program files before coming to the lab, even if you don't know how to do the program yet, preparing the files will be a big time saver in the lab.
Homeworks and Projects:
There will be 4 homework assignments and a final project over the semester where you will get to apply the knowledge gained in the lab to larger, more meaningful programs. Unless otherwise specified, these will be team projects with one assignment will be turned in per team. One grade will be assigned to the team assignments for all members (as modified below). All members of the team are expected to contribute to the homework and to understand all solutions. I would suggest all team members look at all problems and set up or outline the solution. The team should then meet and work the final solutions together.
This class will be extremely time consuming towards the end of the semester if you run into programming problems/design problems/bugs. I am warning you now, you must keep up or this class will just seem more and more difficult. Often students feel like they don't understand programs because of just 1 simple concept they just ignored in the past.
Teamwork Organization:
On each homework assignment, each team should designate a coordinator to coordinate the work of the team. This does NOT mean the coordinator should do all the work! Instead, the coordinator is responsible for seeing that all members of the team understand what they are supposed to do, ensure goals and timetables are being met, and to gather the final solution files to be submitted. The role of coordinator should be rotated with each assignment. On each assignment put the names and wiliki id's of each participating team member. If a student's name appears on the submitted assignment, it certifies he/she participated in solving the problems. Students whose names do not appear on the solutions will receive a zero for the assignment. In addition, for each homework you will be asked to evaluate the contributions of your teammates. Individual homework scores will be adjusted based on these evaluations.
Homework Deadlines:
Homework assignments will be due by midnight on the date given in the assignment.
Homework solutions will not be posted. The burden is on you and your team to find out how to do the problems before or after they are due.
Teamwork Evaluation:
For each team assignment, each individual will rate the participation of themselves and members of their team using a standard rating which will be turned in confidentially to me in email. The results from these evaluations will be used to adjust individual grades on the assignments. When submitting evals, READ the meaning of each rating provided on the form and give appropriate ratings to yourself and the members of your team. I will NOT accept an eval where all members are given an "Excellent" rating.
Quizzes:
Quizzes will be given on arbitrary days during the semester, usually at the beginning of class. There are no make-up quizzes. If you miss a quiz, you will get zero points for that quiz. So be in class and on time for every session.
These quizzes are only a small percentage of your grade but will give you an idea of how you are progressing in the class. If you feel confident in quizzes, you are most likely doing well. If you do not feel confident in quizzes, You are probably doing poorly.
Exams:
Three exams will be given, two midterms and a final exam. Some of them may be open book, some may not. The midterm exams are TENTATIVELY scheduled on the Class Schedule Page
Makeup Exams:
Only one makeup exam for a missed midterm will be given. It WILL be more difficult and may include an oral explanation for your answers. If you miss the exam without either a certified medical excuse or prior instructor approval, you will be penalized 20% on the makeup exam. No makeup will be allowed for the final; if you miss the final, a zero will be averaged into your grade.