• Lectures and Labs

    Lecture Times at MSB 114:

    • MWF 04:30pm-05:20pm (instructed by Zhao (Alan) Li)

    Lab Times at POST 214:

    • Section 1, Tue 07:30-10:15am (instructed by Jeremy Young)
    • Section 2, Tue 03:30-06:15pm (instructed by Thomas Knapp-Ramos)
    • Section 3, Thur 07:30-10:15am (instructed by Jeremy Young)
    • Section 4, Thur 03:30-06:15pm (instructed by Thomas Knapp-Ramos)

    Tentative (Check Piazza for latest information) Class Calendar:

    https://www.google.com/calendar/embed?src=hawaii.edu_omqg9q794icl9j26r09el0ggj0@group.calendar.google.com&ctz=Pacific/Honolulu
  • Reference Material

    Previous EE160 Text (this along with online resources should be sufficient for this class):

    Additional Reference Text:

  • Other Resources

    Office Hours:

    • online at Piazza
    • If answers on Piazza isn't sufficient, then feel free to email me to set up an appointment
    • Lab instructors will have their own office hours
        The tentative office hour time and locations are:
      • Section 1:
        • At Holmes Hall 490
        • Thur @ 01:30pm - 03:30pm
        • contact Jeremy Young for the most current details
      • Section 2:
        • At Holmes Hall 488
        • Fri @ 09:30am - 11:30am
        • contact Thomas Knapp-Ramos for the most current details
      • Section 3:
        • Holmes Hall 490
        • Thur @ 01:30pm - 03:30pm
        • contact Jeremy Young for the most current details
      • Section 4:
        • At Holmes Hall 488
        • Fri @ 09:30am - 11:30am
        • contact Thomas Knapp-Ramos for the most current details

    Announcements:

    • Class announcments will be made on Piazza

    Development Environment:

    The place where you write your programs, like Microsoft Word is the environment/program where you write documents

    • Any computer that can compile C
    • Recommend using Cloud9 IDE to make it easier:
      • for instructors to help troubleshoot your issues and answer your questions
      • for you to start working by reducing the amount of "setup" work (like installing libraries and programs) you need to do
      • for everyone to share knowledge by reducing the amount of environment discrepancies
      • for you to work on your code from any machine (as well as giving you all the other benefits of the cloud)

    Lecture Notes:

    • Hosted by Github at http://zhaol.github.io/ee160
    • Please feel free to correct any mistakes/typos by emailing me or submitting a pull request (extra kudos for a PR)
    • During lecture, instructor will be using a Cloud9 workspace located at https://ide.c9.io/zhaol/ee160
    • Students are free to review at a later time or ask questions or make comments through the workspace during lecture in real time

    Fellow Students:

    • Collaboration is encouraged (except on midterms and finals)
    • "If you can't explain it simply, you don't understand it well enough."
      • Teaching a fellow student will enforce your own understanding
    • A fellow student who has just learned a concept will be aware of the "assumptions" and "gotchas" involved
    • Peer-to-peer is a powerful way to learn and share knowledge, just like how social media can powerfully share information and data
    • Collaborating does not mean cheating; do collaborate; don't cheat
    • Make sure you understand the material and concepts when collaborating; don't just get the answer

    Fellow Humans:

    • Search online with Google or any other search engine
    • Post a question on question and answer forums, like StackOverflow (it's one of the better programming Q&A sites)
    • this satirical article makes fun of how often programming professionals need to leverage off of the knowledge of others
    • being able to read and learn from others as well as understanding your peers is a soft skill that is necessary in any profession
      • eventually, you should be able to write and teach others as well as express your thoughts and ideas to your peers
  • Grading Policy

    Breakdown:

    Grading Breakdown
    Percentage
    Homework 7.5%
    Lab 10%
    Midterm 1 27.5%
    Midterm 2 27.5%
    Final 27.5%
    Total 100%

    Homeworks:

    • Will count for 7.5% of final grade
    • Homework assignments are randomnly chosen to be graded but students are required to do all required homeworks
    • Use homeworks to understand the material for the labs and exams
    • Students need to do the homeworks to do well on the exams
    • Homeworks will be submitted via Laulima
    • Homework submission program will also allow you to self-check your program and give you an idea (close but not exact) of your homework grade
    • Homework assignment due dates are listed in Laulima
    • Late homework assignments are not accepted
    • Improperly submitted assignments will receive 0 points
    • Homework submissions that do not compile will receive 0 points
      • If you cannot get your program to work, comment out the code that is breaking your program before submitting to ensure the entire program at least compiles
    • Homework submissions with the wrong filenames will receive 0 points
      • username is the first part of email address (username@hawaii.edu)
      • homework submission and self-check program does not validate your username for you

    Labs:

    • Will count for 10% of final grade
    • Use labs to understand the material for the exams
    • Students need to do the labs to do well on the exams
    • Labs will be submitted via Laulima
    • If lab instructor wishes to grade within Cloud9 IDE, then please get detailed instructions from your lab instructor

    Midterms/Finals:

    • The 2 midterms and 1 final will count for 82.5% of final grade
    • Midterm 1 will count for 27.5% of final grade
    • Midterm 2 will count for 27.5% of final grade
    • Final will count for 27.5% of final grade
    • Exams will be in the same room as lecture and conducted with paper and pencil (sorry no computers)
    • Automatic deductions on exams:
      • -20 points for students who take an unfair amount of extra time on the exam
      • -20 points for students who has to take a makeup exam after the scheduled exam dates
        • makeup exams must be scheduled prior to the exam date
        • final exam makeup caveats:
          • the makeup for the final exam must occur before the scheduled final exam date and time
          • final exam makeups after the scheduled final exam time will not be allowed because of the University's deadlines for grade submission
          • having multiple final exams on the same day will not be accepted as a reason for taking the final early
        • This penalty will be waived for students who coordinates with instructor early and can provide documentation certifying one of the following:
          • medical emergency accompanied by a note from a certified physician
          • required (i.e. spectating does not count) participation in a University of Hawaii sponsored event (e.g. speaker at a UH symposium, athlete competing at a UH sporting event) accompanied by a note from the event sponsor or coach with a valid @hawaii.edu email address
    • Tentative midterm dates are already posted so please schedule accordingly
    • Examination Goals
      C Programming Language Problem Solving
      Understand C syntax Understand the requirements of the problem
      Read and follow a C program (or snippets of C code) to determine the program intent and output Engineer an algorithm (or pseudo code) to solve the problem
      Write a C program to solve the problem
    • Program tracing problems will be graded using the following procedure, actual point values will vary:
      • ${correctly\;traced\;outputs} / {total\;possible\;outputs}$
      • if grader can follow the student's train of thought and can see that it was a minor mistake that caused mistraced outputs, then points may be added back
    • Writing your own program problems will be graded using the following procedure, actual point values will vary:
      • Points will be given for correctly satisfying the major requirements of the problem
      • Points will be deducted for syntax errors
    • Example Exam Scoring
      Item Points
      Problem 1 (Tracing Problem: 40 possible points)
      8 out of 10 outputs correctly traced $(8 / 10) * 40 = 32$ points
      1 missed output was due to a minor arithmetic error (not programming related) add back 2 points
      Problem 2 (Write Your Own Program Problem: 60 possible points)
      Major programming concept A (worth 25 points): perfect 25 points
      Major programming concept B (worth 20 points): near perfect 15 points
      Major programming concept C (worth 15 points): missed 0 points
      3 minor typos subtract $(3 * 1) = 3$ points
      2 syntax errors subtract $(2 * 3) = 6$ points
      Total Exam Score $32+2+25+15-3-6=65$ points (out of 100)

    Final Grade:

    • Grading Scale
      AverageGrade
      85% or greaterA or better
      70% or greaterB or better
      55% or greaterC or better
      40% or greaterD or better
    • The +/- grading system will be used in this course
    • Grade boundaries will be set to whole numbers (i.e. 82 not 82.3)
    • Precision and rounding will be handled by Laulima
  • Philosophies

    • Lectures introduces the basics of a concept
    • Homework assignments practice the basic concepts from lectures
    • Lab assignments further the understanding of the concepts by applying the concepts
      • students will be expanding upon the basics covered in lecture and homework
    • All lectures, homework, and labs assume the student has completed the previous assignments
    • Gaps in knowledge from lectures, homework, and labs are covered by questions and answers on Piazza
    • Exams will test knowledge of programming concepts as well as the ability to apply programming concepts
  • Loose Ends

    • Lectures:
      • questions are encouraged
      • lectures are optional
      • students skipping lecture are acknowledging that they understand the material
    • Class Questions and Answers on Piazza:
      • "learn how to learn"
        • learn when to ask questions
          • certain concepts are intentionally skipped give students the opportunity to learn how to figure things out
          • however, the intent is not for students to be stuck forever
          • please ask questions if you cannot complete your assignment
        • learn how to ask questions
          • do your research before posting/asking a question, i.e. help yourself before asking for help
          • sometimes when researching and forming the question, students are able to answer the question themselves
          • asking well-formed questions (i.e. giving details on what has been tried) will help instructors and fellow classmates understand the question and be able to provide better responses
      • Instructors will answer questions as quickly as possible
        • it is understood that having prompt feedback can facilitate learning
        • please post questions early to allow ample time for responding
      • Practice empathy
        • please respect each other's posts and comments as we are all here trying to learn new and difficult concepts
        • please do help others who are having a hard time
        • "It is harder to be kind than clever." Jeff Bezos