CIS351-Homework and Lab

Policies, Requirements, and Advice

  • Missed Exams, late submissions and revising grades
  • How to submit homework (or programming assignments)
  • Assignment cover sheets
  • How to ask for help in Piazza
  • Why programming assignments are important
  • What we look for in programming assignments
  • Working in groups
  • Cheating and its consequences
  • Computer accounts
  • SU's Bachelor's of Science in CS Program Outcomes
  • The CIS Undergraduate Handbook
  • Technical resources

  • Missed exams, late submissions and revising grades

    1. If you are unable to take an exam at the scheduled time because of illness or other problems, you must contact me beforehand to arrange to take the exam at a different time. Failure to make prior arrangements for a missed exam will result in a grade of 0 for the exam.

    2. For full credit, completed homework must be submitted by the posted deadline. Homework sub- mitted within 24 hours of the deadline will be subject to only 5% penalty. Homework submitted within 48 hours of the deadline will be subject to a 25% penalty. Homework submitted within 72 hours of the deadline will be subject to a 50% penalty. No credit will be given for Homework submitted more than 72 hours late. t is understandable that you may face many unexpected situations during the semester due to Covid-19 Pandemic. Hence, you will have certain number of "LATE DAYS", which may be applied to ONLY homework submissions. Please see sylllabus to double check how many LATE DAYs will be there. The use of a late day allows you to extend the deadline for a homework by 24 hours. You may apply multiple days to a single homework or allocate them to different homeworks.

    3. Online lab session on Wednesday will either be used to introduce a lab assignment, to demonstrate some new skills or to serve as a help session. Labs submitted within 24 hour of the deadline will not be subject to any penalty. Labs are mandatory, however, in recognition of the fact that you may have unavoidable absences, I will drop few grades in this category at the end of the semester.

    4. Requests to reassess/revise the grade for any work submitted must be made within one week from the day the grade is posted.

    5. In this course, to recieve gardes, you need to submit the Academic Integrity Pldege within 2 week of the semester.

    How to submit homework (or programming assignments)

    Submission of HW (Programming assignments)

    For every HW, there are specific submission instructions mentioned in the HW handout. Follow those instructions carefully.
      Submission Process:
    1. Please SUBMIT only a zip file when asked.
    2. Create a folder with your JAVA files (not class files), reflection sheet(if required in the HW) and cover sheet.
    3. Rename the folder to lastname_firstname.
    4. Zip the folder. (No rar, no separate files will be accepted or graded).
    5. Upload this .zip folder to Blackboard.
    6. If you plan on using a Late Day for a HW please email one of the TA’s.
    Here is Blackboard's help page for submitting assignments.

    Why HW(programming assignments) are important

    Programming assignments are primarily an instructional mechanism, not an assessment mechanism. Nonetheless, programming assignments will be graded and, in fact, will be graded strictly. There are two reasons for this. First, the grades will provide you with an assessment of how well you know the material. Second, experience has shown that students do not always make decisions that are in their own best interest, and often do not complete ungraded assignments :)

    In other words, in this course, programming assignments are designed to: (1) help you learn the materials; (2) help you understand what you have and have not learned; and (3) encourage you to do the work that is necessary for learning to occur. Unambiguously, the best way for you to achieve the second objective is for you to complete programming assignments entirely on your own, occasionally asking questions of a general nature (i.e., about the topics you need to understand in order to complete assignment but not specifics about the assignment itself).

    Hence, you may discuss programming assignments with other students who are currently enrolled in your class, but you should limit the amount of collaboration and you should keep a careful record of it (so that you can assess yourself). You must not discuss the programming assignments with students who are not currently enrolled in your course, except for the designated TAs or lab assistants. You also must not discuss programming assignments with tutors of any kind – paid or volunteer, local or remote. Finally, you must not submit (even before the due date/time) another student’s work as your own. In other words, the code you submit must be written/typed entirely by you and you alone. Failure to comply with these policies is a violation of the SU Honor Code.

    Though you are entitled to discuss the programming assignments with other people, you must be courteous. Most importantly, students are not required, or even encouraged, to provide assistance. So, if asked, you should feel free to decline such a request and, if asking, you must not take offense if such a request is denied. In addition, neither the instructor(s) nor lab assistant(s) may provide as much assistance as you want. Most frequently, this happens when they think the assistance you have requested will prevent you from learning an important concept. Again, you must not take offense if a request is denied.

    A. Students are to work on their HW without consulting with anyone that is not explicitly approved by the instructor. You can always ask for help from TA, grader and the instructor.
    B. Students are allowed to discuss the meaning of HW programs or problems together but are expected to work totally independent of anyone that is not explicitly approved by the instructor when working on the solutions to a program or problem and when doing their coding.
    C. In some cases, the instructor may distribute a written policy (possibly as a part of their syllabus) that specifies how much cooperation and joint work is permitted on their HW.

    Policy A is the default policy that will be used unless the instructor specifies otherwise in writing (e.g., in their syllabus or in assignment instructions) indicating that one of the other policies will be followed. Violation of this policy will result in reporting for academic integrity violations. Students are to clarify with their instructors any questions they may have about how much cooperation and joint work is permitted on HW.


    What we look for in HW(programming assigments)

    Writing a program is in many ways just like any other piece of writing: you want to be clear and to the point, you want the general organization to reflect your intent, and you want to have particular audiences in mind for a particular piece of writing.

    The programs written for this course will have two distinct audience :)

    The first will be made up of the Java compiler (javac) and the Java interpreter (java). These guys are picky on small matters of syntax and semantics, but beyond that they don't care what nonsense you shove at them.

    The second audience for your work will be the person grading it, meaning the TAs and the professor. The course staffs typically have a huge stack of assignments to wade through. When he or she picks up another one of these assignments, she wants to quickly ascertain certain things.

    Additionally, sometimes, we will use JUnit test classes to asses the correctness of your program. Hence, it is very important that you read the instructions of homework handout very careful and do everything as excatly required by the handout, so your program does not disqualify when it is auto-graded by a script.

    Finally, for submitted programs (including labs and homeworks), you need to write your name in the class documentation section of the Java class that you will be writing. If you DO NOT include your name at the top of the java file, few points will be deducted, based on the grading rubric mentioned in the handout.

    Administrative details
    Who is this assignment from and what course-section are they in?
    If this is a multi-part assignment, is it clear what part of the document at hand handles the particular parts of the assignment?

    Program comments
    Are there enough comments and documentation (including preconditions, postconditions, return-conditions, ...) so that it is clear what each part of the program is intended to do? Is there a general write up for the assignment?

    Program formatting
    Is the code formatted in a way that makes it easy to read and figure out what is going on?
    (See the Styleguide for better understanding. Also, various IDEs will handle this for you.)

    Testing and correctness
    If the assignment asks for specific tests, were they done and did they give correct results?
    Is the code correct and fully exercised?
    If part of the program is not working, is there a note on this in the assignment?
    If there is no such note, then the grader may assume that you didn't realize something was wrong or are trying to hide the problem.
    Quality
    Beyond correctness, is the solution particularly nice or particularly dreadful?
    How good is the general presentation?

    Relevancy
    Does the submission include irrelevant junk?
    Example. An assignment asks you to modify a particular class and this class makes use of 16 other classes which do not get modified. If you hand in the source code for the modified class and the source code for the 16 unmodified classes, then the latter is irrelevant junk and you will be marked off for including it.
    In general, the above are what anyone looking at another person's code would want to see.

    Working in Groups


    Cheating and its consequences

    Academic Integrity

    Syracuse University's academic integrity policy reflects the high value that we, as a university community, place on honesty in academic work. The pilot policy in effect at the College of Engineering and Computer Science defines our expectations for academic honesty and holds students accountable for the integrity of all work they submit. Students should understand that it is their responsibility to learn about course-specific expectations, as well as about university-wide academic integrity expectations. The pilot policy governs appropriate citation and use of sources, the integrity of work submitted in exams and assignments, and the veracity of signatures on attendance sheets and other verification of participation in class activities. The pilot policy also prohibits students from submitting the same work in more than one class without receiving written authorization in advance from both instructors. Under the pilot policy, students found in violation are subject to grade sanctions determined by the course instructor and non-grade sanctions determined by the School or College where the course is offered. SU students are required to read an online summary of the university's academic integrity expectations and provide an electronic signature agreeing to abide by them twice a year during pre-term check-in on MySlice. For more information and the pilot policy, see: academic integrity

    The expectations for this course are the same as those given in the pilot policy: you should (1) credit your sources, (2) do your own work, (3) communicate honestly, and (4) support academic integrity.

    Finally, review the academic integrity policies for this course here.


    Technical resources

    Everyone enrolled in the course should already have an SU NetID and password. If you do not already have a NetID (or have forgotten your password), click here and follow the instructions.

    Technical resources

    Java

    Web based IDEs

  • Gitpod
  • Repl.it

    How to install

    How to install JGrasp (HIGHLY recommended for this course)

    Code Editors

    Text editors with syntax highlighting and additional features to help you code.

    Integrated Development Environments (IDEs)

    Fully integrated environments for coding and managing software projects.

    Command Line

    Practice Java

    Data Structure and Algorithm Animation