Information and Syllabus (CS 126)

Instructors, Teaching Assistants and Course Staff

Instructor: G. Carl Evans (gcevans) Office: Siebel 3209
Admin Contact Email: cs126sp18@gmail.com
Teaching Assistants: Course Staff:

Office Hours

Calendar events annotated with an * indicate that the TA is comfortable resolving SVN issues.�

Course Meetings

Things that you need for this course:

Late Policy

Assignments for code reviews are due at 11:59pm on the Tuesday before the code review. Your assignment score will be reduced by 25% for every 24 hours after the deadline.

Code Reviews & their Attendance

Perhaps the most important part of this class is the weekly code reviews. These will give you the opportunity to get feedback on the code that you've written. We'll be assigning code review sections during the first week of classes, and starting them in the second week of the semester. Code reviews are 2-hours long and consist of (at most) six students and one moderator. Students will take turns presenting their code: showing its operation, key design principles, and how the code works. Presenters will receive feedback and questions from the moderator and their fellow students. In recognizing that presenting one's work places them in a position of vulnerability, it is important that all participants provide constructive criticism in a respectful manner. Based on each student's presentation, their participation during other students' presentations, and their submitted code, the moderator will grade each of their students.

We will do our best to assign you a section at one of your preferred times, but we have limitations with room and staff availability. If you are assigned a section that doesn't work for you, you can make a formal request to change your code review time. We will do our best to accommodate such requests.

Handling Conflicts with/Missing A Code Review

It is of primary importance that students present their code at a code review on a weekly basis, as their work will not otherwise be graded. That said, we understand that there are reasons why you may not be able to make it to your regularly scheduled code review. In particular, the following reasons are considered acceptable reasons for missing a code review (up to 3 times during the semester):

Note that job interviews are not a valid reason to miss a code review, since they could be scheduled at a non-conflicting time.

When you need to miss a code review, you should contact your moderator ahead of time (if at all possible) and enlist their help in finding an alternative code review opportunity. The preferred solution is to find an alternative code review time that you can attend (for full credit). If that isn't possible, then you and your moderator can arrange a time for a 1-on-1 code review, but this alternative may involve reduced credit, as you won't have the opportunity to earn participation points during other students' presentations. In any case, a make-up for a code review should happen within a week of the assignment due date.

Cheating and Plagiarism

Academic integrity is an important issue in general, but especially in this class. In order to have enrolled in the class, you need to be a CS major, which means proficiency in programming is fundamental to both your success in this major as well as your future career. The purpose of this class is to help you develop this proficiency, to grow your competence as a programmer. You can't grow your own competence if others are doing your work for you; you need to be the one working through all of the assignments. If you find yourself struggling in this class, get help from the course staff. If you find yourself considering cheating in this class, you should strongly consider changing majors. Life is too short to spend lots of time studying a major that you don't actually like.

Specifically, you must be the one to develop, type in, and test/debug all of the code that you submit, unless otherwise directed in the course. It is okay to have high-level discussions about course content, to draw and discuss diagrams on a white board, and to discuss rules of language syntax with fellow students. It is not okay to give or show a fellow student code that you wrote, view the code written for an assignment written by another student before the due date, or to solicit another individual to write code for you.

The CS department expects you to be familiar with the CS department's Honor Code and the University expects you all to be familiar with Rule 33 in the Code of Policies and Regulations Applying to All Students. If we are able to pick out two nearly identical assignments out of the class, then cheating has likely occurred. All parties involved will receive a 0 on that assignment or exam and their final course grade reduced by one letter (e.g., A->B, B->C, etc.). A second offense will result in a failing grade for the class.

Use of the Internet and Citing sources

A significant part of programming is using reference materials, because few have the full language specification memorized and programmers frequently use code that they themselves didn't write in the form of libraries. Since we want CS 126, as much as possible, to reflect authentic programming, you are allowed and even encouraged to use the internet as a reference when writing your code. This includes using snippets of code from internet help sites like Stack Overflow (https://stackoverflow.com/). We do, however, have some constraints on your usage of code that you didn't write:

  1. It must be publicly available; having your Mom write portions of your code is not allowed.
  2. It must be a small minority of the code that you submit; less than 25% of the meaningful code that you submit can be from outside sources.
  3. You must understand what the code does. You should be able to explain any small code snippets in your code review; for libraries, you should be able to explain the Application Programming Interface (API) that you are using.
  4. For any distinctive or substantial code snippets (e.g., more than 2-3 lines), you must cite the source of the code in comments immediately preceding the code. If you do not cite the code, you are committing plagiarism. Citations should look like the following:
  5. // code below derived from:
    // https://stackoverflow.com/questions/21626439/how-to-implement-the-java-comparable-interface
    public int compareTo(LineItem other) {
        return Integer.compare(this.position, other.position);
    }

iClickers

You can check your iClicker scores using SVN, check: https://subversion.ews.illinois.edu/svn/sp18-cs126/YOUR_NETID_HERE/iclicker_pts

If you see "We don't have an iclicker registered to you; please register one at iclicker.com" in the file, it is either because you haven't clicked in class yet or because I can't find your registration. Come talk to Prof. Evans after lecture.

Otherwise, the file contains a score for your participation (which you get credit for if you click 75% or more of the questions during that day) and for performance (which counts the number of questions that you got the correct answer for out of the number of questions that had correct answers). Your Participation score will contribute 3% of your final grade and your Performance score will contribute 2% of your final score. You are allowed to miss up to two lectures without a penalty to your participation grade.

Note: I will periodically update these files during the semester, so don't distress if the file doesn't include the most recent couple of lectures.

Lecture Recordings

Lectures are recorded using the college's Echo360 system.

To login, please select "LOG IN VIA INSTITUTION" on the right-hand side and select "University of Illinois at Urbana-Champaign - College of Engineering". You'll then be prompted to authenticate using your Active Directory (AD) credentials. Once you're authenticated, you should see a dashboard page displaying content for your courses using Echo360.

Grading

We'll use the Compass 2g grade book. Your grades in CS 126 will be computed as follows: