CSE 3 - Fluency/Information Technology - Chandrasekhar [SP20]

Introduction

Hi! Welcome to CSE 3: Fluency in Information Technology. What exactly does that mean? Well, it honestly could mean a lot of things. But at a basic level, I want to guide you in exploring the following topics:

  • What is computer science? What do computer scientists study?
  • How do computers actually work? How can we program them to carry out tasks that we find interesting?
  • What are some of the social, political, and ethical implications of advances in computer science.

Beyond that, this course could really go in a lot of different directions. But I want you to come out of this course with less fear and intimidation at the thought of studying computer science, or even simply using it in your future endeavors. 

Instructional Staff

Instructor: Arjun Chandrasekhar

  • archandr@ucsd.edu 
  • Student Hours: Tuesday/Thursday 10am-12pm or by appointment.
    • I really want to emphasize the "or by appointment" part. If you need to go to office hours but these times don't work for me, you should not simply give up. You should email me to set up a time that works for you. 

Teaching Assistant: Anh Pham

  • anp055@ucsd.edu 
  • Student Hours: Wednesday 10am-12pm, Thursday 2pm-4pm
    • If these student hours do not work for you then you should try to come to instructor student hours. If neither of our student hours work for you then you should email me (Arjun) to schedule extra student hours. It is not appropriate for you to ask Anh to schedule extra student hours.

Course Links

Lectures

We will meet via Zoom every Tuesday and Thursday morning at 8:00 am PST.  You can find the links to the zoom meetings in the Zoom LTI Meeting Room. You can also find the zoom links below. Every lecture will be recorded, so if you can't make it to class, you can view the class after the fact. The lecture recordings are in the media gallery on Canvas.

Course Components

Participation (0%): Since this is online and we don't have access to our usual iclicker setup, you will not be graded on participation. This is not an invitation to skip class. Class time will focus on collaborative problem solving, and you will be losing valuable learning opportunities if you do not take advantage of the chance to ask questions and interact with your peers.

Lab Assignments (25%): These assignments are designed to give you step by step practice in the skills that you will use in your assignments. These are graded strictly on completion; if you did all of the parts of the lab, you will get full credit. However, slack on these lab assignments at your own risk! If you don't do the labs, you will likely end up spending more time than you bargained for on the homework assignments. Speaking of which...

Homework Assignments (50%): These assignments will help you practice the skills we build up through lecture, problem solving and lab assignments. These will not simply be an exercise in regurgitating the lectures; you'll need to use your thinking caps. These assignments will be graded on correctness.

  • Late Penalty: If you submit an assignment a day late, you lose 10%; if you are two (2) days late, you lose 20%; and so on. In general, if you are n days late, then you will lose 10*n % on your grade
  • Regrades: If you would like your assignment to be re-evaluated, email the instructor. Do not email the teaching assistant about regrades.

Final Project (25%): At the end of the course you will submit a final project. This will involve flexing your muscles that you trained in your labs and homework assignments. You will be tasked with writing an application that is more complex than any of your programming assignments.  You will be allowed to work in groups of up to 4. During finals week you will have the chance to present your projects!

Grading Scheme

If your weighted percentage is 90% or higher, you are guaranteed to receive an A- or higher. Similarly, if you receive 80%, you will receive a B- or higher. If you receive 70%, you will receive a C- or higher. If you receive a 60%, you are guaranteed to receive at least a D. These cutoffs may be lowered but they will never be raised.

I will probably use the following grading cutoffs:

  • 97-100: A+
  • 93-96: A
  • 90-92: A-
  • 87-89: B+
  • 83-86: B
  • 80-82: B-
  • 77-79: C+
  • 73-76: C
  • 70-72: C-
  • 60-69: D
  • 0-59: F

When computing your grade I will round to the nearest percentage. So if you are within half a point if the cutoff, you will make the cutoff.

Academic Integrity

We want you to succeed in this course, but we also want you to succeed with integrity. We want to make sure that you actually learn the material, so that the impact of the course doesn't disappear once the quarter ends. We also want to make sure that every student has a fair chance to succeed, and isn't being taken advantage of by his or her peers. You worked very hard to get into a prestigious school like UCSD, and without enforcing academic integrity that very prestige would quickly crumble. Finally, it would be cartoonishly malicious and cynical to take advantage of the Covid pandemic to circumvent normal academic integrity violations. I can assure you that any grade increase that you receive in this class due to cheating will not benefit you nearly enough to offset the guilt of knowing that you tried to use a global pandemic for grade profiteering.

In this course we expect students to adhere to the UC San Diego Integrity of Scholarship Policy. This means that you will complete your work honestly, with integrity, and support and environment of integrity within the class. Here are few examples of what is considered as reasonable and unreasonable collaboration.

Reasonable

  • Discussing assignments and course material
  • Helping a classmate find a bug in their code.
  • Using online resources to solve assignments, so long as they're not solutions to the assigned problems.
  • Showing your program to a classmate to help you find a problem in your code.
  • Whiteboarding solutions to assignments with others using diagrams or pseudocode but not actual code.
  • Discussing other assignments in general terms, engaging in debates on ideas

Unreasonable

  • Viewing a classmate's solution in order to solve your assignment
  • Giving your assignment solution to another student
  • Looking at another student's quiz during exams
  • Starting with someone else's code or writing and making changes to personalize it
  • Submitting work from a previous course/project as your final project

Course Summary:

Date Details Due