CS112: Introduction to Computer Programming (Spring
      2016)
    Section 004/005
    
    
    
    1 Course Basics
    Meeting Time and Location:
    
      - Section 004: MW 3pm-4:15pm, ENGR Bldg 1101
- Section 005: TR 12pm-1:15pm, Lecture Hall 1
Instructor: Dr. Yutao Zhong
    
      - Email: yzhong (at) gmu (dot) edu 
- Office: Engineering Building 5337
- Schedule
          (Tentative) 
 Course Outcomes:
    
      - An ability to use procedural programming language concepts
        including expressions, decision statements, simple data types,
        Boolean logic, input/output, loop constructs, and procedures.
- An ability to combine programming techniques to solve problems
        of varying degrees of difficulty.
- An ability to refine computer programs through testing and
        debugging to ensure proper operation.
- An ability to find and understand programming language
        documentation to learn new information needed to solve
        programming problems.
Prerequisite:
    C or better in MATH 104, 105, or 113 (or sufficient score on the
      math placement test). Corequisite: CS Majors must also be enrolled
      in CS 101 this semester.
    
    Textbook:
    
      - Required - Zyante online textbook. 
 
        - Sign up at Zyante.
        
- Enter zyBook code: GMUCS112Spring2016 
- Subscribe using any credit card 
- Optional - The Practice of Computing Using Python by
        William Punch & Richard Enbody © 2011. An eText
        version is available.
 
Participation: REEF Polling
    
    
      - This is a clicker-alternative required for class
        participation. More
          details and FAQ. 
 
- You need to sign up by following these steps:
        - Go to REEF Polling
            web site or download the app (both iOS and Android apps
          are available)
- Create a new account unless you already have one
          - Use your GMU email address
            to sign up
- Use your NetID (GMU
            username) as Student ID when you sign up
- Add our course, make sure you select the right section (CS112
            004 or CS112 005)
- Every account has a free 14-day trial.  Subscription can
        be purchased for 6-month for $9.99. 
 
- Note that attempting to answer questions from home is not
        permitted.
 
Other Useful Resources:
    
      - Piazza:
        Announcements, lecture slides, assignments, discussion. GTA/UTA
        contacts and office hours will be on Piazza too.
 
- Blackboard:
        Grades and assignments submitting.
    
    2 Grading
    
      
        
          | Category 
 | Percent 
 | Notes 
 | 
        
          | Projects 
 | 40% 
 | drop 1 lowest 
 | 
        
          | Labs 
 | 10% 
 | drop 2 lowest 
 | 
        
          | Zyante reading 
 | 3% 
 | drop 3 lowest subsections 
 | 
        
          | Participation 
 | 2% 
 | +1% extra credit for correctness 
 | 
        
          | 2 Tests 
 | 20% 
 | 10% each | 
        
          | Final exam 
 | 25% 
 | must get >=60% to pass the class 
 | 
      
    
    Assessment
    
    
      - A+ (>= 98.0%) A (>= 92.0%) A– (>= 90.0%)
- B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
- C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
- D (>= 60.0%)
- F (< 60.0%)
- There will be no make-up or extra-credit assignments at the
        end of the semester; your grade should be a measure of your
        semester-long progress.
2.1 Projects
    Programming projects will be a primary focus of your grade - each
      one should take multiple sessions of coding, with questions asked
      in between. This is the practice you need to learn, master, and
      internalize various concepts of the course. Don't be surprised if
      you're spending 5-20 hours on each one. All project grades will be
      averaged together evenly.
    
    
      - 
        Submission
        - All projects are to be submitted to Blackboard. You can
          submit your work an unlimited number of times to BlackBoard,
          and by default only the last version will be graded. 
 
- Turning in the wrong files will likely result in a zero. You
          can and should download your submitted attempts to verify that
          you turned in a working copy.
 
- 
        Deadline
      
        - Projects can be turned in at most 48 hours late, no
          exceptions.
 
- Each 24-hour period entered after the deadline lowers the
          maximum score by 25% (not quite the same as a 25%
          penalty).
 
- Each student gets three One-Late-Day tokens, which are
          automatically used by late submissions to avoid the 25%
          penalty; you still must turn in work within 48 hours of the
          original deadline, even if you use tokens! (note that you
          can't use three tokens on a single project)
- The last project might not be allowed to be turned in late,
          to facilitate end-of-semester grading.
 
- Tokens are only allowed on projects; they can't be used on
          labs.
 
- Unused late-tokens will be worth a small bounty at the
          semester's end (0.25% of the semester grade).
 
- Blackboard being unavailable is not an excuse for turning in
          a late assignment; in the rare situation that the website is
          somehow unavailable or giving the student an error, the
          student MUST email their submission to their GTA before the
          deadline, otherwise it will be considered late.
- Catastrophic computer failure will not be cause for an
          extension. Use a backup service such as DropBox (or any cloud
          service), emailing yourself, storing to a USB drive, whatever
          it takes. Every semester multiple students' computers die, are
          stolen, or otherwise 'lose' projects. Don't be the student who
          forgot to (frequently) back up your work!
    
      - 
        Broken Code == Bad Scores
 
        - After the first two projects, any code turned in that does
          not run (immediately crashes due to errors), specifically on
          Python 3.4, will receive at most 50%. No exceptions. At this
          point, if the grader is able to quickly fix your code, you
          might get some points back. If the grader cannot immediately
          spot and fix the issue, you'll be fortunate to get any points
          at all.
 
- Turning in code that runs is a big deal!
      - 
        Honor code
        - Programming projects are considered individual efforts,
          therefore no sharing of code and/or discussion of problem
          solutions are allowed with anyone except the TAs or the
          professor. Student projects will be manually and automatically
          assessed for cheating. You may not
              look at or otherwise view any other individual's code,
              pseudocode, or algorithms.
 
- You may not use any Internet resources to create code or
          algorithms, besides the textbooks, the slides, and Piazza,
          unless otherwise specified. However, you are free to look up
          the syntax errors your encounter online, to gain an
          understanding of what the syntax error means. The projects
          we're doing this semester can be directly solved using
          techniques discussed in class, and no outside material is
          needed unless otherwise noted.
- It is your responsibility to lock your computers with
          a password, to not post your code to websites like Pastebin
          that are publicly accessible, to guard your USB drives and
          computers, to not upload your files to someone else's
          computer, etc. You will be liable for any access gained to
          your code. 
 
2.2 Labs
    
    
      - All lab assessment grades will be averaged together. Lab
        assessments will be weekly exercises, tasks, or quizzes, to be
        completed during lab. 
- You must be present in your scheduled
            lab time to get credit for any lab.
        
        A sign-up sheet is available for each lab.
 
- Any missed lab assessment is simply missed, regardless of the
        reason why (travel, illness, work, traffic, receiving a major
        award, getting married, saving the universe, etc.).  Two
        lowest lab grades will be dropped to cover the very rare cases
        of understandable missed labs.
 
- If you choose to miss some early on, and later on have to miss
        for some understandable reason, that is too bad. Try to save the
        drops so you can actually throw out a bad grade, and not just
        hide a lazy zero. Pretending you don't have them is your best
        approach.
 
2.3 Zyante
    
    
      - Zyante readings are graded based on the completion percentage
        of activities before the designated deadline of each
        chapter.
- See the schedule
          page for reading assignment due date.
 
- Make sure you're logged
            in to get credit for reading completion.
- Optional
        subsections are not considered for Zyante grading.
2.4 Exams
    
      - Exams are closed book/notes unless specified otherwise by
        instructor. They will be entirely paper and pencil - no
        computers.
- All students must have their GMU identification available on
        testing days.
 
- The final exam is cumulative. If you perform better on the
        final exam than a previous test, we will replace the test grade
        with the final grade.
- If you know in advance that you are unable to make an exam for
        a valid and unavoidable reason (such as a scheduled surgery,
        etc), you must notify the professor at least one week before the
        scheduled exam date to make arrangements for a make-up, and
        bring documentation with you when you take the make-up. 
 
- If you miss an exam due to a university-accepted excused
        absence (such as an illness or car accident the day and time of
        the exam), you must notify your professor within 24 hours of
        your absence to make arrangements for a makeup, and bring
        approved documentation with you when you take the make-up exam.
        Failure to follow either of these policies will result in a
        zero. We may also elect to allow the final exam to count the
        extra amount to give you a sort of do-over. 
- The final will not be given early. You are starting the course
        with knowledge of the schedule (see GMU's Final Exam Calendar
        for the latest schedule, updated as weather events require).
 
- Per departmental policy, a failing grade on the final exam
        (<60.0%) will result in a failing grade (F) for the entire
        course, regardless of performance on other assignments. You must pass the final exam to pass the
            course. 
 
2.5 Contested Grades
    
    
      - If you feel points have been incorrectly deducted, contact the
        grader. For all projects and lab work, that is your GTA. For the
        tests and final exam, that is your professor.
- Contesting of grades on any/all submissions must be requested
        within one week of receiving the grade (on BlackBoard). No grade
        changes will be considered subsequent to that deadline.
    
    3 Office hours and discussion board
    
    Office hours
    
    
      - For students seeking help with programming assignments during
        office hours, students must identify the line number, through
        debug print statements, where they believe an error to be before
        seeing the TA or instructor. This implies that you must have at
        least one test case that fails, to bring to office hours before
        the TAs or instructor can help you.
 
- For more general programming assignment questions, students
        must bring their own pseudocode to office hours before the TA or
        professor can help you.
 
- Under no circumstances will the professor or GTA reveal more
        than three lines of code at a time during office hours. Students
        must make significant, individual effort on all projects before
        coming to see a GTA/professor. Waiting until the last minute, in
        the expectations that the entire project will be explained in
        one office hours session, is not feasible.
- Office hours are often crowded - do not rely on them for last
        minute help, as we cannot guarantee that we will be able to
        spend significant time with every student. You can also use the
        discussion board for posting questions.
Discussion board
      - Students are encouraged to use the discussion board, Piazza,
        to ask and answer questions. Responses to questions can
        be expected within 24 hours, and often times much sooner.
- The discussion board on Piazza is required reading for all
          projects. You MUST read the discussion board for
        clarifications and project updates.
- Students can post questions and code privately, although the
        instructor reserves the right to make any post public, so that
        other students can see the responses. 
 
- For students wishing to post their code privately to Piazza,
        the same rules apply as when coming to office hours; if you have
        code written, you must produce at least one failing test case
        where you have identified what line number is giving you
        problems.
 
    
    
    4 Honor Code
    
      - All students are expected to abide by the GMU Honor
          Code. This policy is rigorously enforced. Cheating will be
        prosecuted and result in a notification of the Honor Committee
        as outlined in the GMU Honor Code. Sharing,
          collaboration, or looking at any code or algorithm related to
          programming projects that is not your own is considered
          cheating.
      - The computer science department has an CS
          Honor Code Policies that you are subject to particularly
        for our course. The document helps you to understand how GMU
        honor code applies to programming and CS, what constitutes
        cheating in the CS setting. It clarifies some scenarios that are
        unique to our sorts of assignments. Make sure you read and
        familiarize yourself with these rules. 
 
      - We take the honor code quite seriously. Any attempts at
        copying or sharing code, algorithms, or other violations of the
        honor code simply will not be tolerated.  There are
        definitely opportunities to study, work, and learn together
        throughout this course - Zyante questions, exercises, and more.
        Mostly you will need to work independently for any sort of
        "test" and for projects.
      - We use automated software to flag suspicious cases, and then
        review them to find the cases that must be submitted to the
        Office of Academic Integrity. The penalty for cheating will
        always be far worse than a zero grade, to ensure it's not worth
        taking the chance. Confirmed cases of cheating almost always
        translate into course failure.
 
    
    
     
    5 Learning Disabilities
    Students with a learning disability or other condition
      (documented with GMU's Office of
        Disability Services) that may impact academic performance
      should speak with the professor ASAP to discuss appropriate
      accommodations. Even if you don't know whether you plan on
      utilizing the accommodations for any assignment/test, it's in your
      best interest to prepare and get documented ahead of time.