EE 160 Syllabus

* Lectures and Instructor:
Tep Dobry (
MWF 8:30-9:20 am; MSB 114
There are three TA's for the course:
  • Thomas Knapp-Ramos (
    Office Hours:
    • Mondays from 9:00 AM - 11:00 AM Holmes 488
  • Jeremy Young (
    Office Hours:
    • Thursdays, 1:30 PM - 2:30 PM in Holmes 490
  • Ryan Walser (
    Office Hours:
    • Fridays, 1:30 PM - 2:30 PM in Holmes 387
In addition, you are registered in one lab session per week:
Section : Tu 7:30-10:15 am; POST 214; TA: Thomas Knapp-Ramos (
Section : Th 7:30-10:15 am; POST 214; TA: Ryan Walser (
Section : We 3:30-6:15 pm; POST 214; TA: Thomas Knapp-Ramos (
Section : Fr 3:30-6:15 pm; POST 214; TA: Jeremy Young (
* Syllabus:
The official syllabus for the course is here.
* Textbook:
Bharat Kinariwala, Tep Dobry; "Programming in C", (in preparation). A hardcopy is available at Professional Image. In addition, the text is available online.
* Reference:
B.W. Kernighan, D.M. Ritchie; "The C Programming Language", 2nd edition; or any other book on ANSI C.
* Computer Systems:
As should be obvious by now, this is a computer engineering course. Not only will you be learning to design and write programs, but you will learn to use a variety of systems, software applications, and tools throughout the semester, particularly the Unix systems in the college. As part of this, very little "paper" will be exchanged in the course. Instead, all assignments, due dates, class information and announcements will be made here on the EE 160 web site. You may access the course web site directly at the URL or through the link provided on the course page on Laulima. In addition, I have set up a site for the course on Piazza to encourage you to discuss issues and ask and answer questions to me, the TA's and each other over the semester.

All Engineering students should have had a wiliki account created for them when they entered the college (whether you knew it or not). If you never picked up your account login id and password, or you have forgotten your password, you should see the Student Services desk in Holmes 250 to get your account. If you are not yet in the College of Engineering, you can also sign up for a class account in Holmes 250. DO THIS IMMEDIATELY - THIS WEEK; you will begin using your wiliki account in your first lab session. Access to wiliki is available through computers in POST 208, Holmes 387, or over the internet from the University of Hawai`i Computing Center, other computer labs on campus, UHM Wireless access, or private ISP's using the ssh protocol. In addition, you will be accessing wiliki from POST 214 during your lab sessions.

The pages for the course may be accessed from any Macintosh, PC, or Unix workstation by running a browser such as Firefox or Safari. Besides this information about the course, these pages contain:

You may develop your programs on any system of your choice, such as a Mac or PC which has an ANSI C compiler (including C++ compilers) such as gcc, or any other ANSI standard C compiler. However, all assignments will be turned in and graded on wiliki; so your programs MUST compile and run on wiliki to be graded. Once you have written and tested your programs, you must transfer them to wiliki for submission. Note: sometimes there are machine to machine incompatibilities between compilers, so having it run on your home computer or any other system is no guarantee that it will compile and run on wiliki. Allow yourself time to transfer and TEST your programs on wiliki before they are due. ("But it ran on my PC!!" is NOT a valid excuse). If you prefer, you can work entirely on wiliki.

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.

Homeworks 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 in the course will be posted electronically and may be accessed using the "mygrades" command. This program ensures you can access only your own grades.

* Policies and Procedures:
Your grade for the course will be based on the following assignments and exams:
        Lab:                  25%
	Homeworks(4):         15%
        Final Project         10%
	Class Participation:  10%
        Pop Quizzes:           5%
	Midterms(2):          20%
        Final Exam:           15%
Grades in this course will NOT be curved (some scaling of exam scores may be done if necessary). 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. There will be some "gray" area between letter grades, so that two people with the same weighted average may not get the same letter grade. Grades on the gray area will be determined by your effort and trends (improving or declining) over the semester. The +/- grading system will be used in this course.
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. Lab bonus/penalty due times are as follows:
  • 5% Bonus for complete lab assignments turned in by the end of the scheduled lab session for each assignment.
  • No Penalty for complete lab assignments turned in before the beginning of the next lab session.
  • 10% Penalty for complete lab assignments turned in before the beginning of the lab session 2 weeks after the scheduled lab session.
  • 50% penalty for lab assignments after that.
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.
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. There will be no grace period for full credit on homeworks. Late homeworks will be accepted up to one week after the due date. Late assignments will receive a grade of 50% of the earned points for that assignment. However, turning in late assignments is a privilege, and is discouraged. If it is routinely abused by a team, it will be withdrawn.
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.
Team Conflicts
Teams having problems working together should make every effort to resolve them by themselves. If that doesn't work, see me for help. As a last resort, students who consistently fail to pull their weight on the team can be "fired" by a unanimous decision of the other members of the team. Students who consistently carry all of the load of their teammates can, as a last resort, quit. I must approve any firing or quitting; see me for procedures to follow. Students who either are fired or quit are responsible for finding another team willing to take them on - no individual work on team assignments will be accepted.
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" ratings.
Your Effort in this Class
Part of your grade will also be determined by the effort you put into this class as indicated by your class preparation and participation.
Pop 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.
Be Prepared
You are expected to come prepared to class and lab every meeting. Reading assignments will be posted with each lecture for the following class period (and where possible, lecture web pages will be made available one day before the lecture). You are expected to have read the material before coming to class. Pop quizzes at the beginning of class, class activities, and lecture material will assume you have prepared for the class.
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 for Monday, 29 Feb 16 and Monday, 11 Apr 16 in the early evenings beginning at 5:00 pm to give you extra time on the exams. With evening exams, you will have (reasonably) as much time as you want for the exams. The final exam will be given during finals week on Friday, 13 May 2016 from 7:30-9:30 am.
Exam Bonus
A bonus of 5 points will be awarded on an exam if ALL members of a team achieve an unadjusted score of 80% or more for that exam.
Makeup Exams
Only one makeup exam for a missed midterm will be given at a designated time at the end of the semester. It WILL be more difficult. 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.
* Guidelines:
We will be learning collaboratively this semester, both inside and outside of class:

[up] Go back to EE 160 home page.