Skip to content

avasaris/DataStructures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

137 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UCR CS 014: Introduction to Data Structures & Algorithms: Summer 2016


Catalog description

CS 14. Introduction to Data Structures and Algorithms. (4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 12 with a grade of "C" or better; MATH 009A or MATH 09HA; proficiency in C++. Topics include basic data structures such as arrays, lists, stacks, and queues; dictionaries including binary search trees and hashing; priority queues (heaps); introductory analysis of algorithms; sorting algorithms; and object-oriented programming including abstract data types, inheritance, and polymorphism. Also covers solving complex problems through structured software development.

Course details

Instructor:
Ryan Rusich ([email protected])
Office Location: WCH 407.
Office Hours: MW 1:00-2:00 PM.

TA:
Joshua Frear (jfrea001@[email protected])
Office Location: TBA.
Office Hours: TBD.

Lecture:
M/T/W/TH 8:10 - 9:30 AM WCH 141
Final exam: Friday 7/22, 8:00am-10:00am

Lab:
T/TH 10:10 AM - 1:00 PM WCH 127 (Change from 226)

Textbook: UCR CS14: Intro Data Structures and Algorithms, Summer 16

  1. Sign up at zyBooks.com
  2. Enter zyBook code UCRCS14Summer2016
  3. Click Subscribe

Class access:

  • Your cs account

    Access to cs labs and the cs intranet requires a cs account: If you are currently enrolled in any cs course, you may request your cs account login name and password here by entering your student.ucr.edu email address, your SID, and your permpin (NOTE: this page can be accessed only from a cs lab). If you have not obtained your account details before the first lab, your TA will assist you in doing so.

    If for any reason you encounter difficulties regarding your account that your TA cannot resolve, go to the systems admins office (WCH 105).

    Keep your password safe - in exactly the same way you would your ATM pin: it is a serious offense to allow others to access your account.

    Any student who knowingly allows another to use his or her cs account (either by sharing the account login & password, or by allowing another student access to a computer that is logged in) will be punished to the fullest extent of the University Judicial system.

  • Email accounts

    CS/CE/BUNF majors:
    Your cs email address will be [email protected] - you can access your cs email via the web here. All department communications will be sent to this address

    All other majors:
    You will not have a separate cs email account - you will receive all your emails at your student.ucr.edu address.

    All students:Use your cs or university email for all course-related communication.
    Generally, emails from other than cs or ucr email accounts will not be responded to. You are expected to observe professional etiquette in all such communications.

  • Class web page Everything you need to know about the class, including your grades, will be posted on iLearn (https://ilearn.ucr.edu/). You are expected to check this resource at least once per day for updates during the quarter.

Coursework & Grading

  • Grading: There are two types of coursework:

    • DRILLS are designed mainly to help you develop and practice your skills and understanding;
    • ASSESSMENTS are designed mainly to measure, as objectively as possible, your mastery of those skills.

    You will receive recognition for your efforts in both components, but assessments carry 50% more weight:

    • Drills (40%) -- To help you practice and master the necessary skills.
      • 20%: 5 Programming Assignments
      • 15%: 10 Lab Assignments (You are required to attend and participate in all lab sessions to receive full credit.)
      • 5%: Reading Assignments and In-Class-Exercises (ICE)
    • Assessments (60%) -- To demonstrate to us that you have indeed mastered the material.
      • 35%: 8 Bi-Weekly Exams (Drop Lowest Score) - You must arrive on time for class to take the exam. If you are late to lecture on the day of an exam you will not be allowed to take that exam.
      • 25%: Final Exam (No Make-ups. If you are enrolled in the course you agree to take the final exam on the posted date and time)

Letter grades will be assigned using the conventional grading scale:

  • 100-90 -> A,
  • 89-80 -> B,
  • 79-70 -> C,
  • 69-60 -> D,
  • 59-0 -> F.

Note: I reserve the right to raise your final grade, relative to your course percentage, but I will never lower it.

  • Assignment Submissions:
    • Labs - Labs will be submitted online via iLearn. You must demo for the TA. On-time demos occur in the last half hour of each lab. See late policy for further clarification.
    • Programming Assignments - must be submitted online via iLearn. Due dates and times will be on Sunday at 11:30 PM.

General course policies

  • Material covered: As mentioned above, the course consists of all material covered in lectures, labs, assigned reading, programming assignments, etc. While there is considerable overlap and mutual reinforcement among these elements, they are to be considered separate and individually essential building blocks of your introduction to the art and science of computer programming. That means it's all fair game for the exam!

  • Programming assignments: This is a programming course, so the programming assignments are a fundamental component of the course! You will turn in your assignments on-line. Each file should begin with the class_file_header.txt.
    Source code should comply with the prescribed coding standards (you will understand these better as the course progresses). You will quickly learn that successfully writing even a fairly simple computer program is not something you can do in just a few minutes. Debugging typically takes several times longer than figuring out how to write the program in the first place. So start work on your programming assignments early. Leaving them to the last minute is a recipe to miss deadlines and fall behind in the course.

  • Early/Late Policy:

    • "Day early/late" is defined as 24 hours before/after its deadline.
    • Programming Assignments - 1 day early - 5 points. Your score must be at least 70/100 to be eligible for these 5 points. Late - No late assignments accepted. Be sure you turn-in often as you complete portions of your assignments. Do not wait until the last minute to turn-in your work in.
    • Lab Assignments - Unfinished exercises can be finished and then demoed in any TA office hours before your next lab meets or at the beginning of the next lab (directly after TA's intro for the lab). 10 points will be deducted for late demos in office hours. 20 points will be deducted for demos in the following week's lab.
      An assignment will NOT be accepted after the late deadline. No exceptions. You should submit your "work-in-progress" at least 6 hours before the deadline - and then resubmit it as often as you like until the deadline. This will help you plan your work, and avoid problems such as a mismatch between your workstation's clock and the server clock, or the inevitable last-minute bandwidth clog.
    • No makeups will be allowed for bi-weekly exams for any reason. Instead, the lowest bi-weekly exam score will be dropped.
    • Other issues will be resolved on a case-by-case basis. Most extenuating circumstances will require appropriate documentation, i.e. hospital admittance. As a basic guideline, most problems can be resolved before the fact, and few, if any, can be resolved after the fact.
  • Collaboration policy: In general, we have found that one of the best predictors of success in CS courses is participation in a study group of some kind (this is actually a universal truth). We encourage you to work together and learn from each other in as many ways as possible, and we will provide any assistance we can to make this happen. However, we also have to assess each student individually, so there are very explicit boundaries to collaboration.

    • Bi-Weekly Exams, Final Exam - No collaboration.
    • In-Class-Exercises - Mostly done in teams requiring active participation.
    • Lab exercises -- Collaboration is strongly ENCOURAGED. If you complete your lab early, feel free to help others -- teaching others only enhances your own learning.
    • Programming Assignments -- Collaboration is NEVER ALLOWED. Copying code from ANY outside source (any book, current or past students, past solutions - even if they are your own from last quarter! - web sites, etc.) is STRICTLY FORBIDDEN: we test every submission for copying, and when we find it we treat it as flagrant academic dishonesty (see below).
  • Academic dishonesty - Cheating of any sort will be punished severely. We use a powerful tool that automatically compares all programs (this quarter and from past quarters too), neglecting changes in variable names, spacing, etc., and detects copied code. If you are smart enough to outwit the tool, you are smart enough to write the program yourself.
    All forms of cheating, including copying code, lying to an instructor in order to be allowed to make up a test, copying on a quiz, etc., are treated with the same severity. You will be reported to the Student Judicial Affairs office (www.conduct.ucr.edu/Pages/default.aspx), who will conduct an inquiry that usually results in Academic Probation and compulsory Academic Integrity training (see their procedure chart). I normally fail anyone who has been found guilty of any form of academic dishonesty.

  • Regrade policy: if you believe there is any discrepancy in any grade you receive, please contact the instructor or TA in writing as soon as possible - certainly no later than 2 days after the grade was posted. Your concerns will always be addressed promptly. Make sure you check your grades regularly - click on the "View Grades" link in iLearn.

  • Communicating with the instructors and TAs: when emailing your instructors or TAs, please remember to give your full name, the course, and your cs login id, using your CS or UCR account. Please be polite and professional, and use reasonable grammar and formatting. In general use the appropriate decorum or etiquette you should for a University level course. The course staffs are not your peers on Facebook.

  • Lab attendance is required for the full 2 hour and 50 minute period. If you finish early, the absolute best use of your time is to help others (teaching enhances your own learning) - or you may read ahead, work on your programming assignments etc. No "outsiders" are permitted in the lab during class, i.e., do not bring your friends to CS14 lab.

  • Adding/dropping lab and lecture sections: all add, drop, and section changes of all lower division Computer Science courses, after the period when students can do so electronically is over, are done through the College of Engineering's Student Affairs office (student.engr.ucr.edu/), Bourns Hall A159. Neither the instructors nor the CS department itself can sign any add/drop forms.

  • Time requirements: This is a four-unit CS course. As such, you should expect to spend 6 hours/week in lecture, 6 hours/week in lab, and 12 to 20 hours/week doing individual study (readings, programming, lab preparation, etc.) -- no, we're not exaggerating, that's what it takes!

  • Final exams are scheduled by the University, not by the instructor, and are correlated to the course sections. This means you must take the final exam scheduled for the section you are enrolled in. The final exam will take place in the same room as your normal lectures.

  • Final grades: Per university policy, changes to your final grade can be made only in the event of a clerical error. Asking your instructor how far you were from a cutoff and what extra work you can do to improve the grade is never appropriate. Any correspondence, which aims to circumvent this policy, will be ignored.

  • Laptops, tablets, and cell phones: To ensure you are a good colleague to your fellow classmates and not a distraction, laptops or tablets must be put away and/or closed and not used during lectures. Cell phones should be silenced before and for the duration of lecture and labs. If you must be on call, set your phone to vibrate and quietly excuse yourself from the room to take a call. No texting during lecture. Recording (audio or video) of the lecture is strictly prohibited.

  • Tardiness - Students who are habitually late to lecture/lab will have points deducted from the attendance (In-Class-Exercise score for lecture) portion of their lecture/lab grade.

About

Introduction to Data Structures and Algorithms. Topics include basic data structures such as arrays, lists, stacks, and queues; dictionaries including binary search trees and hashing; priority queues (heaps); introductory analysis of algorithms; sorting algorithms; and object-oriented programming including abstract data types, inheritance, and p…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors