General Course Information

CSE 100

General Course Information


Welcome to CSE 100! We are excited to have you in the course. Our is to help you become more sophisticated programmers, designers and analyzers of data structures and programs in C++.

What you will learn

CSE 100 will teach you how to implement and analyze advanced data structures. It will also teach you skills for writing larger-scale programs in C++. Specifically, at the end of this course you will be able to:

Prerequisites

CSE 100 has the following prerequisites: CSE 12 and CSE 21 or Math 15B. We do not expect you to have experience programming in C++. However, we do expect you to have the following knowledge and skills:

Required and Recommended Resources

Texts

Required: Data Structures and Algorithms In C++, 4th Edition. Adam Drozdek. Cengage Learning. 2013.
I know this textbook is expensive, but we will rely on it throughout the course. If you can share with a friend that's fine, but you will have required reading for every class period, so make sure you have access to a copy of this book.

Recommended: C++ For Java Programmers, by R. Weiss. Pearson Prentice Hall (2004).
This book is recommended reading and you should plan on reading it before completing Programming Assignment PA1.

Clickers

Buy an iClicker clicker at the bookstore (not interWrite or HITT brand, and not the smartphone clicker app: genuine iClicker only. But either version 1 or 2 will work). YES, YOU MUST HAVE AN iCLICKER FOR THIS COURSE.

Register your clicker via TED (not the iclicker website) so you can collect your clicker points for your grade.

Additional Resources

We will also point you to assigned readings from several free online resources. You can find those listed on the course homepage and the course schedule.

Course Components

Class Sessions (a.k.a. Lectures)

These are instructor-led class periods, but they will not be traditional lectures, hence the term "session." During class you will work alone and in groups to work through problems and answer questions using your iClickers. You must bring your iClicker to every class. Notes for class sections will be available on the course website before and/or after class.

Although attending class is not "required" you will receive credit for your in-class participation (see "Grading" section below).

Missing a class is defined as failing to respond to more than 20% of the clicker questions in a given class period.

You may miss up to 2 classes with no penalty on the *attendence* component of your grade. Missing more classes will impact your grade negatively. However, we expect that you’ll find these class sessions so helpful that you wouldn't consider missing them anyway. Note that forgetting your clicker counts as missing a class, so don't leave home without it!

Reading Assignments and Reading Quizzes

To prepare you for interactive class sessions, there will be reading assignments to be completed before class. There may occasionally be videos that either supplement or replace the reading. This reading and the videos are required, and you will not be able to participate in class if you have not done the reading. At the start of the class, you will be given a short reading quiz. Your performance on these quizzes will be factored into your course grade. Reading quiz questions (but not answers) will be made available to you before each class, so you should be able to score 100% on these quizzes. Your lowest two (2) reading quiz scores will be dropped if more than fifty percent of the class fills the final CAPE evaluation forms.

Programming Assignments

Much of the work in this class will be centered around moderate-scale assignments with a programming component. Usually, these assignments will include more than just programming, and will ask you to do some reflection and/or analysis as well, which is why the "programming" is in parentheses above.

You may choose to engage in pair programming on these PAs. You may choose your own partner.

Discussion Sections

In discussion section, the TAs will lead you through exercises designed to give you more practice with some of the details that will help you both with your assignments as well as with the exams in this course. These discussion sections are not mandatory, but they are strongly encouraged. If you are struggling in the class and have not been attending discussion section regularly, we will not be as able or willing to help you than if you have been regularly attending section, so please plan to attend these sections.

Exams

There will be one midterm and one final exam. All exams will be closed book/closed notes.

Exams cannot be made up, so if you have a conflict with these exam times and dates please contact the instructor RIGHT AWAY. Note that you are expected to be on campus until the scheduled final time and no accommodations will be made for students who simply wish to leave campus early.

Grading

Your final grade will be determined via the following percentages:

Reading quizzes: 5%
Participation points: 5%
Programming Assignments: 35%
Midterm exam: 20%
Final exam: 35%

We will use a standard scale for assigning letter grades: 90-100 = A-/A/A+; 80-89.9=B-/B/B+, 60-79.9=C-/C/C+, 50-59.9=D, <50=F. Plusses and minuses will be given at the instructor's discretion.

Late assignments/extensions

Checkpoint deadlines are usually worth a small portion of the overall grade of the assignment. As such, checkpoint deadlines cannot be extended. If you fail to meet them, you will simply lose the credit for the checkpoint part of the assignment.

Each individual in the class gets two "slip days" to use for any reason on any Programming Assignment (PA) throughout the quarter. Each slip day allows you to submit your PA up to 24 hours late without penalty. Some important notes about slip days:

Regrade-requests

You have one week from the time a PA, Reading Quiz or Exam is returned to request a regrade. After that, the grade is unchangeable. To request a regrade, please contact the person who graded the assignment/quiz/exam originally. If you are requesting an exam regrade, write up a note explaining the issue and submit the exam with the note stapled to the front to your instructor.

Academic Integrity

The basic rule for CSE 100 is: Work hard. Make use of the expertise of the CSE 100 staff to learn what you need to know to really do well in the course. Don't cheat. If you do cheat, we will enforce the UCSD Policy on Integrity of Scholarship (see the UCSD Academic Integrity website). This means: You will get an F in the course, and the Dean of your college will put you on probation or suspend you from UCSD.

What counts as cheating? In CSE 100, you can read books, surf the web, talk to your friends and the CSE 100 staff to get ideas for solving your programming assignment problems. However, you, or your 2-person team, must write your own solutions to your programming assignments. Using program code that someone else has written (unless they are in your team for that assignment, or the code was explicitly provided as part of the assignment), or providing program code to someone else not on your team, or turning in code that you have written with someone else not in your team, is cheating. Yes, we do check every program that is turned in. WRITE YOUR OWN CODE.

To ensure you don't have a problem with this: Don't even look at or discuss another student's code, and don't let another student look at your code. Don't start with someone else's code and make changes to it, or in any way share code with other students. Also, in CSE 100, you must write your own answers on the closed-book exams. Getting ansswers from someone else, or providing answers to someone else, is cheating.

Getting Help

We expect that all students will need help at some point in this course. If you find yourself needing help, this is not cause for embarrassment. It is completely expected. Please seek help early and often through any (or all) of the following resources.

Your partner and peer instruction group:

Most components in this course are done in groups. Your assignment partner or peer instructor group provide a nice first line of help when you get stuck. You will quickly learn how much you can figure out working together!

Open lab hours

There are many, many hours in which tutors are willing and available to help you with any questions you might have. See the tutoring schedule on the course website.

Online help - Piazza

Use the Piazza site for any questions related to the homeworks, material in the course or course logistics. (Piazza is to be used for course-related matters only.) Piazza allows you to post questions anonymously (to other students) if you don't feel comfortable revealing your name. In general all questions should be addressed to Piazza EXCEPT:

Office hours:

Your TAs and I are always willing to help you during our office hours. If you cannot make it to my office hours but wish to meet with me, please send me email to set up an appointment.