CSCI 1200 Data Structures
Spring 2018

Home
  Contact Information
  Announcements
   Forums (Piazza)

Syllabus
  Learning Outcomes
  Prerequisites
  iClickers in Lecture
  Course Grades

Calendar
  Lecture notes
  Lab materials
  Homework
  Test reviews

Weekly Schedule
  Office Hours
  Lab Times

Getting Help
  Tutoring
  Advice from TAs
  Advice from Students

Homework
  Due Date and Time
  Late Day Policy
  Compilers
  Submitty
  HW Grading Criteria

Collaboration Policy &
Academic Integrity

C++ Development
  Code Editors & IDEs
  OS Choices
  Install WSL
  Install Cygwin
  Memory Debugging
    Dr. Memory
    Valgrind
    ASAN
  Test Your Installation

References
  Optional Textbooks
  Web Resources
  Misc. C++ Programming
    Command Line Args
    File I/O
    string → int/float

Homework Due Date and Time

Homework assignments are due Thursday nights at 11:59pm. Homework is submitted electronically and submission times are judged by the webserver timestamp. If your submission is one minute late, it is a day late, so we suggest that you don't actually wait until the last minute. You may submit your assignment multiple times -- we will only grade your last submission (or you may specify which version we should grade). Please see the Calendar for the homework assignments and due dates.

Note: Please do not email your homework assignment to the instructor or the TAs. We will only grade material submitted to the homework submission server. We can login and view your submitted homework files if you encounter a problem at submission time and have a short question related to homework submission.

Late Day Policy

Each student will initially be given one day (whole or partial) of grace for late homework assignments. Through consistent participation and solid performance on in-lecture iClicker exercises each student may earn additional late days. These grace days are intended to cover minor illnesses, hardware malfunctions, and schedule conflicts with homeworks/tests in your other classes.

To use a late day, simply submit the assignment as normal through the homework submission link. You do not need to notify your TA or instructor. For example, an assignment submitted 22 hours late (Friday evening at 10:00pm) counts as 1 late day used. As another example, an assignment submitted 26 hours late (Saturday morning at 2:00am) counts as 2 late days used. No more than two late days may be used for any one assignment. Once your late days have been exhausted, late assignments will not be accepted without an excused absense note from the Student Experience office.

Students should use their late days carefully, saving them for the latter part of the semester or (better yet) not using them at all.

Electronic Submission

Make sure you read and follow the Collaboration Policy and Academic Integrity statement which applies to all homework assignments. Once you've finished writing, testing, debugging, and commenting your code, prepare your assignment for submission as described below.

Re-read the assignment description and collect all of the necessary files for submission. Be sure to include your plaintext README.txt (use the provided template for the assignment), your .cpp and .h code files, and any other files specifically requested for the assignment. You do not need to include any compiled object files or the executable. The server will ignore these files if they are included. You do not need to include any of the provided input data files or your output files for the basic homework --- these will be re-generated by the server. But you should include any new data input files and corresponding output for any extra credit you completed, as described in the assignment description.

You may upload files to the website by selecting or dragging multiple files to the appropriate location on the assignment page. Or you may create a zip file that contains the necessary files. Do not use any other compression or archiving format as the server will not know how to uncompress your files. Do not zip up any directories or folders (unless instructed for the assignment). Just directly zip the files.

  • How to zip files using the Cygwin/Linux/FreeBSD/UNIX/MacOSX command line:

    zip hw1_submit.zip README.txt myfile.cpp myotherfile.cpp myheaderfile.h
    

    Replace myfile.cpp myotherfile.cpp myheaderfile.h with your actual file names. Note you can use *.cpp *.h to indicate all .cpp and .h files in the current directory.

  • If you're using Windows, you can alternatively use WinZip to create a new archive named hw1_submit.zip and then drag & drop the files the archive. Again, don't zip up the folder containing the assignment files, just zip up the files.

Next click the submission link below. You will use your RCS ID and password to access this page. Contact the instructor if you are registered for the course and cannot successfully login to the homework submission server.

Homework Submission via Submitty

Choose the appropriate assignment from the navigation page. Drag and drop your files into the indicated area(s) or click to launch a file browser. Press "Submit" to upload your homework.

Homework Submission Server Automatic Grading

The homework submission server will compile your code with g++ 4.8.X and then run the resulting executable on several test cases. It will inform you of any compile, link, and runtime errors or warnings and will present the results of these tests for your review. Your grade for the homework will be a combination of this online testing of your code and (later) a TA's review of the structure, efficiency, and overall quality of your code (see also homework grading criteria and advice from TAs), plus the TA's grading of any additional non-code parts of the assignment.

You will have practice using the submission process during the first lab. Please see a TA during office hours if you need additional help writing portable code.

Carefully check the result of your submission. Verify that all necessary files were received by the server. Confirm that your code compiled and ran successfully. If you find a mistake in your homework, you can fix it and re-submit using the same procedure. We will only grade the most recent submission. Please see a TA in office hours if you need help preparing your assignment for successful submission. If the automatic grading of your homework seems incorrect or unfair please see a TA in office hours. You may also make a note to the TAs in your README.txt file asking them to take another look at your output. The TAs are able to adjust the automatic grading if necessary (but this is rare).

Note on # of submissions: Do not use the homework server as your sole development/testing platform. You should use your laptop as your primary testing & debugging interface. However, don't wait until the last minute to submit for the first time. You should do an early practice submission of a partially working version of the homework to confirm you are on the right track. A small point penalty will be assessed if the count of your submission attempts is greater than 20 for any one homework assignment.

Note on submission file size: If you accidentally include lots of unnecessary "stuff" in your uploaded files, it may be too big for submission. If you think you have included only the necessary files and yet the server still complains about the size of your submission, contact the instructor -- but please don't send your homework files by email!

Note on the submission server: If the homework server crashes or is unresponsive, or if your submission attempt fails and you cannot make sense of the submission server output, check the announcements page and LMS to see if it is a known submission server problem. Otherwise, contact the instructor and your graduate lab TA for help -- but please don't send your homework files by email!