CS8 Summer 2019 Session A, May ElSherif

  • Lecture PDFs and code snippets will be uploaded on Piazza course site.
Num Date Description Reading
Lecture 1 Tue 06/25 Introduction to Computer Science Ch 01
Lecture 2 Wed 06/26 Python Data Types (algebraic, boolean, and strings) Ch 02
Lecture 3 Thur 06/27 Python Data Types (lists and tuples) Ch 02
Lecture 4 Tue 07/02 Functions Ch 03
Lecture 5 Wed 07/03 Mutable vs Immutable Types, Flow Control Ch 03
Lecture 6 Tue 07/09 Nesting Flow Control, Python Modules Ch 03
Lecture 7 Wed 07/10 Midterm Review Ch 01-03
Lecture 8 Thur 07/11 Midterm Ch 01-03
Lecture 9 Tue 07/16 Loop Patterns Ch 05
Lecture 10 Wed 07/17 More Loop Patterns, 2D Lists Ch 05
Lecture 11 Thur 07/18 String Formatting, random module Ch 04,06
Lecture 12 Tue 07/23 File I/O Ch 04
Lecture 13 Wed 07/24 Sets and Dictionaries Ch 06
Lecture 14 Thur 07/25 More on Sets and Dictionaries Ch 06
Lecture 15 Tue 07/30 Recursion Ch 10
Lecture 16 Wed 07/31 Final Review Ch 01-06, 10
Lecture 17 Thur 08/1 Final Ch 01-06, 10

Basic Facts

Discussions

  • All discussions and questions should be posted on our course Piazza site.

Required Resources

  • Textbook: “Introduction to Computing Using Python” - Ljubomir Perkovic, 2nd edition

Graded Components

  • Midterm : 25%
  • Final : 35 %
  • Hwks : 10%
  • Labs : 28%
  • Lab Attendance: 2%

What you will learn in this course

This course is an introduction to Computer Science, and programming. So, what is it that you need to know to be a skilled beginning-level programmer in Python? Here’s the list of what you’ll need to be ready for CMPSC 16 (aka CS16, the next programming course):

Problem solving

  • Breaking down a problem into a sequence of steps
  • Abstracting specific problems into general ones and finding general solutions

Memory concepts

  • variables, primitive vs. reference variables, name, type, value
  • assignment statements
  • scope of variables

Control structures

  • for loops, if/else, while loops
  • Lists in Python (similar to arrays in other languages)
  • index vs. value, finding sum, min, max, average, count of elements matching some condition, making a new list of elements containing only those that match some condition

Functions

  • function call vs. function definition
  • formal vs. actual parameters (arguments)

Testing

  • How to test your code
  • Input/output concepts

Writing to the terminal

  • Reading from the keyboard
  • Reading and writing to files
  • Neatly formatting output

Program style

  • How to write code that other people can read and understand

More information about this course is available at this link

Final Grade Assignment

The formula to determine your course grade average is explained in the table below.

A+ 97-100 A 93-97 A- 90-93
B+ 87-90 B 83-87 B- 80-83
C+ 77-80 C 73-77 C- 70-73
D+ 67-70 D 63-67 D- 60-63
F Below 60

Regardless of any other policies spelled out here, the average used to determine your final letter grade may be no higher than one full letter grade higher than your exam average.

Thus,

  • reasonably good performance on exams is very important to earning a good final grade in the course.
  • an A or B should not be out of reach for anyone that has a reasonably good mastery of course concepts (enough to earn a B or C on the exams), and puts in hard work on the labs and project points.

To convert final averages to letter grades, a standard 10 point scale will be used, with the upper and lower ends of each range as +/- grades, except for A+ grades, see below. There is no “rounding up”; a grade of 86.9999 is a B and a grade of 87.0000 is a B+.

A+ grades: These may be awarded to the very best performing students in the class—but the cutoff for A+ grades will be determined at the end of the course at the discretion of the instructor (there is no pre-determined cutoff—an average of 97 or more doesn’t guarantee you an A+ grade.)

A Few Course Policies In Brief

  • If you are registered for another UCSB course that overlaps with this one, you MUST HAVE specific written permission from both instructors, or I am within my rights to give you a failing grade on any work you miss as a result, and will NOT make any accommodations for you. This includes exams.
  • Collaboration is only permitted when specifically allowed for—otherwise, you must do your own work.
    • If you are working with a pair partner you must make sure that you add your partner on the assignment on gradescope before you begin the assignment. All parts of the assignment should be completed together using the pair programming style.
  • Attendance is required at all lectures and labs (discussion sections).
    • I recognize that some absences (e.g. minor illnesses, mishaps, etc.) are unavoidable. Litigating whether each of these is “excused” or not isn’t a good use of anyone’s time, so instead we just drop the lowest two grades from everyone’s homework grades. In this way, absenses (or failure to turn in homework) does not unduly penalize your grade unless it becomes excessive.
  • You must turn in your homework in the registered lecture on the due date

You may NOT:

  • Turn in homework on a day other than when it is due (early or late)
  • Have someone else turn in your homework for you (that will be considered academic dishonesty).
  • Drop it off with the instructor to be graded later.
 

Attendance

This course moves quickly. So attendance is very important. This is even more true when the course is scheduled in a 6 week summer session.

As a result, there will be something you have to turn in at almost every class.

Lab attendance constitutes 2% of your grade. You are allowed to miss only ONE lab in order to get the full 2% dedicated to lab attendance.

Missing homework

Homeworks will be distributed in lecture on Tuesdays, and they should be turned in lectures on the due date

There is no makeup. In lieu of providing a makeup opportunity, I will drop the lowest 2 homework grades (which may be zeros if you miss an assignment.) Each homework will be of equal value (100 pts).

Questions about grades

Summary: regrade requests must be made only on GradeScope, and always within one week.

From time to time, the people who grade your papers may make clerical errors in grading (e.g. adding up points wrong or applying a rubric incorrectly.) For this reason, you are encouraged to review your grades as they are posted to Gradescope and Gauchospace. You will typically get an email as soon as each grade is posted. From the time the grade is posted, you will have one calendar week to post regrade requests. These must be made ONLY through Gradescope, ON the correct problem. (Don’t request a regrade for question 4 on the page for question 7.)

Please note that regrade requests based on clerical errors or applying a rubric incorrectly are always welcome. Over the course of the quarter, we’ll grade over 10,000 individual problems, so it is unlikely that we won’t make at least some mistakes.

More problematic are challenges to the rubric itself, e.g. “I don’t think you should have taken off so many points for that error” or “I think I deserve more partial credit for that incorrect answer”. The instructor and TA will always listen, but please know that we’ve put a great deal of thought, time and experience into determining the rubric, and we’ve done our best to apply it to all students equitably. You may have a different point of view, we will not always agree with your assessment—in fact, we seldom will. As such, regrade requests on this basis are not encouraged. It is important to approach such conversations in a respectful manner, accepting that the instructor, TA and grader have been given responsibility for determining course standards, and applying those in a fair way to all students.

In any case, once the two week deadline for challenges has passed, each grade becomes final—and it is your responsibility to come to scheduled TA or instructor office hours to have this discussion. If you cannot make office hours, you may request an appointment, but you must request the appointment within ONE WEEK of the assignment being posted. If you wait until the last office hours opportunity during the two week window, and you are not able to be seen (e.g. because of a long line of students), then you lose the right to appeal your grade.

 

Labs

  • It is expected that you attend the lab section you signed up for. This way it is easier to load balance the labs and make sure that the TAs are helping everyone in their sections.
  • Labs will be due evey Sunday/Monday at 11:59 pm except for the last lab.

Lateness:

  • If you want your work to be graded without penalty, turn it in on time.
  • If you turn in your lab late, you RISK GETTING A ZERO. You loose 10% every 12 hours after the lab is due.

Accommodations for disabilities

Students with disabilities may request academic accommodations for exams online through the UCSB Disabled Students Program at http://dsp.sa.ucsb.edu/. Please make your requests for exam accommodations through the online system as early in the quarter as possible to ensure proper arrangement.

Managing stress

Personal concerns such as stress, anxiety, relationships, depression, cultural differences, can interfere with the ability of students to succeed and thrive. For helpful resources, please contact UCSB Counseling & Psychological Services (CAPS) at 805-893-4411 or visit http://counseling.sa.ucsb.edu/ .

Responsible scholarship

Honesty and integrity in all academic work is essential for a valuable educational experience. The Office of Judicial Affairs has policies, tips, and resources for proper citation use, recognizing actions considered to be cheating or other forms of academic theft, and students’ responsibilities, available on their website at: http://judicialaffairs.sa.ucsb.edu. Students are responsible for educating themselves on the policies and to abide by them.

Furthermore, for general academic support, students are encouraged to visit Campus Learning Assistance Services (CLAS) early and often. CLAS offers instructional groups, drop-in tutoring, writing and ESL services, skills workshops and one-on-one consultations. CLAS is located on the third floor of the Student Resource Building, or visit http://clas.sa.ucsb.edu

Standard Disclaimer

This syllabus is as accurate as possible, but is subject to change at the instructor’s discretion, within the bounds of UC policy.

(end of syllabus)

 

* Tentative HWs are posted here but final versions will be handed out in lectures.
num ready? description assigned due
h00 true Perkovic Ch1 (Introduction to CS) Tue 06/25 09:30AM Tue 07/02 09:30AM
h01 true Perkovic Ch 2.1 (Expressions Variables and Assignments) 2.2 (Strings) Tue 06/25 09:30AM Tue 07/02 09:30AM
h02 true Perkovic Ch2.3 (Lists and Tuples) Tue 06/25 09:30AM Tue 07/02 09:30AM
h03 true Perkovic 2.4 (Objects and Classes) 2.5 (Python Standard Libraries) Tue 07/02 09:30AM Tue 07/09 09:30AM
h04 true Perkovic 3.1 (Python Programs) 3.2 (Execution Control Structures) Tue 07/02 09:30AM Tue 07/09 09:30AM
h05 true Perkovic 3.3 (User-Defined Functions) 3.4 (Python Variables and Assignments) 3.5 (Parameter Passing) Tue 07/02 09:30AM Tue 07/09 09:30AM
h06 true Perkovic 4.1 (Strings Revisited) 4.2 (Formatted Output) Tue 07/09 09:30AM Tue 07/16 09:30AM
h07 true Perkovic 4.3 (Files) 4.4 (Errors and Exceptions) Tue 07/09 09:30AM Tue 07/16 09:30AM
h08 true Perkovic 5.1 (Decision Control and the if Statememt) 5.2 (for Loop and Iteration Patterns) Tue 07/09 09:30AM Tue 07/16 09:30AM
h09 true Perkovic 5.3 - 5.6 (More loop patterns 2D lists while Loop) Tue 07/16 09:30AM Tue 07/23 09:30AM
h10 true Perkovic 6.3 (Character Encodings)- 6.4 (Random) Tue 07/16 09:30AM Tue 07/23 09:30AM
h11 true Review (tracing functions) Tue 07/16 09:30AM Tue 07/23 09:30AM
h12 true Perkovic 6.1 (Dictionaries) and 6.2 (Sets) Tue 07/23 09:30AM Tue 07/30 09:30AM
h13 true Perkovic 10.1 (Introduction to Recursion - up to Practice Problem 10.3) Tue 07/23 09:30AM Tue 07/30 09:30AM

* Assigned labs will be posted here.
num ready? description assigned due
lab00 true Getting Started Tue 06/25 12:00AM Sun 06/30 11:59PM
lab01 true FtoC and CtoF with test cases Tue 06/25 12:00AM Sun 06/30 11:59PM
lab02 true Writing Functions, Tests, and using tkinter Mon 07/01 12:00AM Mon 07/08 11:59PM
lab03 true Conditionals, Nested Control Structures, and Loops Mon 07/08 12:00AM Mon 07/15 11:59PM
lab04 true More Loops - Accumulator Pattern, Updating Lists, and Filtering Lists Mon 07/15 12:00AM Mon 07/22 11:59PM
lab05 true 2D Lists and Nested for Loops Mon 07/22 12:00AM Sun 07/28 11:59PM
lab06 true String Formatting, Random, and File IO Mon 07/22 12:00AM Sun 07/28 11:59PM
lab07 true Scrabble word finder: Python lists, dictionaries and file I/O Mon 07/29 12:00AM Sat 08/03 11:59PM
lab08 true Recursion Mon 07/29 12:00AM Sat 08/03 11:59PM

num ready? description exam date
e01 false Midterm Exam E01 Thu 07/11 09:30AM
e02 false Final Exam E02 Thu 08/01 09:30AM