Ucsb CS 8

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Department

of Computer Science, CoE, UCSB

CS 8 – Introduction to Computer Science


Syllabus – Winter 2018
Class Time: M & W 9:30 AM – 10:45 AM Location: Buchanan 1920
Instructor: Ziad Matni Email: [email protected]
Office Hours: Tuesdays 10:30 am – 11:30 am in SMSS 4409
Lab Times: Tuesdays 1pm, 2pm, 3pm, 4pm in PHELP 3525
Class Main Website: https://ucsb-cs8-w18-matni.github.io
Class Piazza Site: https://piazza.com/ucsb/winter2018/cs8
Catalog Description
https://www.cs.ucsb.edu/education/courses/cmpsc-8

Class Overview
Students will learn fundamental principles and concepts of computers and programming, including
structured programming techniques. Students learn to use the Python interpreter and write Python
programs. We will be using Python 3 in this class (don’t use anything older than version 3.4.3).
Computer Science is the study of abstractions and algorithms. In Computer Science, an abstraction is a
useful representation of something from the real world that allows us to work with it more easily or
efficiently. An algorithm is a well-defined, step-by-step sequence of instructions that can be used to
mechanically determine the solution to some well-defined problem. Computers are machines that can
“process” algorithms with the help of code or programs.

Learning how to program requires time, perseverance, and consistent practice: exactly like
practicing a musical instrument, a field sport, or cooking a gourmet meal. There’s a science behind
programming, but it is also about technique – and that requires you to “get your hands dirty” and practice,
practice, and then practice some more! You are bound to make mistakes – and that’s ok because you will
learn from them. Making mistakes means you are learning! Do not be afraid of trying something that
you initially have no clue about! Remember that practicing early and often will make you a better
programmer in the end. This means that you should not procrastinate and wait until the last moment to do
your assignments and homework… but you knew that already, didn’t you!? ;)

What you need to know BEFORE you take this course


Little or no prior exposure to computer science is assumed. This is a beginner class in CS.

What you will learn by the end of this course


You’ll have the opportunity to learn all of these things (though not necessarily in this order):
• The “Why do we care?” question • Control structures (for loops, if/else,
regarding computer science and its role while loops)
in society. • Functions
• Problem solving and abstraction • Processing text files
• Memory concepts: variables, names, • Lists and dictionaries
types, values, and assignment statements • Program style: How to write code that
• Strings of characters other people can read and understand

MATNI CS8 Syllabus, Winter 18 v2 Page 1 of 8


Department of Computer Science, CoE, UCSB

Required Textbook
Python Programming In Context, 2nd Edition
by Bradley N. Miller and David L. Ranum

ISBN-13: 978-1449699390
ISBN-10: 1449699391

Class Format
This is a large lecture class that meets twice a week and is accompanied by a lab. Attending lectures and your
lab is mandatory. Attendance will be taken in labs and missing too many will result in the instructor taking
off up to a half grade from your final grade (e.g. a B- becomes a C+).

This course has multiple readings, 8-9 homework assignments, 7-8 lab assignments, 1-2 projects, 2
midterms and one final exam. You will submit homework as a hardcopy in class, submit lab and
projects assignments online, and do all the exams in the same classroom. It is really important to do the
class readings ahead of time. Class participation is vital and highly encouraged (and recognized too!)

Just as in a math classes, everything we do in this class (and almost all classes in CS) builds on all the
work that came before. So, everything is cumulative—meaning that you can’t afford to miss any classes
unless absolutely necessary. Miss two lectures in a 9 week two-lecture per week course, and you've
already skipped 10% of the course—it wouldn't be surprising if your performance (i.e. final grade) in the
course dipped by a similar amount!

You may find the workload heavy. It may even feel unreasonable compared to your other courses.
However, I assure you that it is not unreasonable, given the goal of making you a skilled beginning
programmer. Programming is a skill, and the only way to get good at it is lots and lots of practice, which
takes lots and lots of time. The usual "folklore" rule of thumb is 8–12 hours per week for a normal college
class. That means you should expect, at a minimum to put in 5–9 hours per week on this course, on top of
the 3 hours 20 minutes you spend in lecture and lab each week.

Lectures
The purpose of the lectures in this course is to guide you through the readings, homework, and labs:
• To provide an overview of how everything fits together.
• To provide hands-on demonstrations of Python programming and other things that you'll do on
your own later.
• To provide additional information that is not in the textbook (and to sometimes clarify the
textbook).
• To provide an opportunity to ask questions, and hear answers to questions asked by others.

This course moves quickly. So attendance is very important.

MATNI CS8 Syllabus, Winter 18 v2 Page 2 of 8


Department of Computer Science, CoE, UCSB

Homework
In every Monday class, you'll be given a homework assignment that is due in the following Monday
class. There may be exceptions around or before exams, or to accommodate university holiday schedules.

These are typically pencil/paper type problems, though sometimes you'll need access to a computer to
solve them. If you don't have reliable access to a computer at home (or in your dorm), please plan your
schedule so that you can spend time in the CSIL computer lab between classes.
Homework assignments are completed on paper—they may NOT be submitted electronically—and may
ONLY be submitted in person, in the class in which they are due.

You may NOT turn in a homework assignment "on behalf of" an absent classmate, or have someone else
turn in your homework for you—doing so in this course is a form of academic dishonesty. You can work
with a “homework-buddy”, but you each have to turn in your own work and you have to disclose who
you worked with (there’s a place to do that on the homework form).
Again, please do NOT:
• Turn in homework on a day other than when it is due. No late submissions accepted.
• Have someone else turn in your homework for you (that will be considered academic dishonesty).
• Leave homework in a mailbox or slide it under a door.
• Email your homework or upload it anywhere online.
• Copy answers directly from other students or (heaven forbid!) website. Do your own work!
• Forget to cite (i.e. give credit to) your sources, if you consult your textbook, a website, or person.

Labs
The labs meet on Tuesdays at PHELP 3525 and are run by the T.As.
Attendance is taken and is mandatory.
Please do not switch your registered lab sections before clearing it with all TAs involved (space is tight in
these labs). You will likely have to switch sections with someone in order to get this to happen.
You will be given lab assignments every week. You typically will start these in the lab and finish them
in the lab, but you can use up to 1 extra day on your own time afterwards. After that, the labs are
considered late (see my late policy). The lab assignments have to be turned in by end-of-day (i.e. 11:59
PM) Wednesday, by uploading them using the submit.cs service. You can ONLY turn in your lab
assignments on submit.cs. You will learn how to use the submit.cs service in your first lab (Lab 00),
which is on Tuesday, Jan. 22nd.

In some labs, you will be asked to pair up and work with one other partner in the lab. This “pair
programming” concept is explained further in another section in this syllabus.
Again, please do NOT:
• Use anything other than submit.cs to submit your lab. So don’t email them, for example.
• Turn in labs late. They are due by end-of-day (i.e. 11:59 PM) Wednesday (except when
indicated otherwise).
• Copy answers directly from other students or websites. Do your own work!
• Forget to cite (i.e. give credit to) your sources, if you consult your textbook, a website, or person.
This can be done in the program with comments.

MATNI CS8 Syllabus, Winter 18 v2 Page 3 of 8


Department of Computer Science, CoE, UCSB

Projects
You will be given 1-2 programming projects to do. These will be done in groups of 2 (i.e. pair
programming) and will involve slightly more complex and inventive programming than your labs. You
will be given at least 2 weeks to complete each of these projects. More detailed information will be given
in class by the instructor. Projects, like labs, will be submitted using submit.cs.

Exams
Both the midterm and final exam are closed book. The final exam is cumulative.
The following dates are set for the exams and will not change.
If you miss any of them, you will get an F in the class:
• Midterm Exam Wednesday, 2/14 during regular class time (9:30 AM – 10:45 AM)
• Final Exam Wednesday, 3/21 from 8:00 AM – 11:00 AM

Make Up Policy
If you miss a class, you miss the opportunity for the points on that in-class assignment, or homework that
was due. Period. Generally speaking, I do not allow for makeups in this class, with few exceptions.

There is no makeup for homework or lab assignments, except for excused absences arranged and
agreed to by the instructor in advance. If you don’t turn in an assignment by the due date and time, you
will get a zero grade for that assignment.

There is no makeup for exams. This is a stricter policy than with assignments. The midterm and the
final exam dates are announced in this syllabus and are fixed. If you believe you cannot attend any of
these dates, especially the final exam, please consider dropping the class.

In rare cases, if there is a documented family emergency, documented extended illness, documented
required court appearance, or other situation beyond the students' control (with documentation) the
instructor may grant additional make up days entirely at the instructor's discretion—but this is not a
guarantee or a right. Asking for accommodation because “I already bought my plane ticket” or “I have out
of town guests that week” is a futile exercise that will get you nowhere…

Late Submission Policy


Late submission means within 24 hours after deadline (for homework, labs, and projects). Anything
submitted beyond that is graded with a zero. Late submissions will result in a 20% penalty. Recall:
homework is due at the start of class and you can only submit homework in class.

In summary: homework is due every Monday in class; if you turn one in on Tuesday before 9:30 AM,
you’ll get a 20% grade penalty. After that, it’s a zero grade.
Labs are due on Wednesday by 11:59 PM via submit.cs; if you turn them in on Thursday before 11:59
PM, you will get a 20% late penalty. After that, you will get a zero grade. The same policy applies to
projects and their due dates.

MATNI CS8 Syllabus, Winter 18 v2 Page 4 of 8


Department of Computer Science, CoE, UCSB

The Use of Laptops and Smartphones in Class


In lecture
Using laptops/tablets in class is a controversial topic these days. As with all technology, they amplify the
virtues and vices already present in society. I will allow students to use laptops/tablets in class to take
notes, to participate in online activities, and to submit short writing assignments. However, I am
extremely aware of the distractions afforded by laptops/tablets.
If I notice your laptop/tablet activities are completely off-task and distracting to students around you, you
will be asked to leave class and the class will be counted as an unexcused absence. In general, I
expect that you will all behave like the adults that you are, recognize that you are paying for the course
you are taking, and treat that time with the respect it deserves.

I do not allow the use of cell phones in class. Please turn them off or put them on vibrate mode before you
enter the classroom. If your phone causes a distraction in class, or if I (or one of the TAs) notice you
using your phone in class, you will be asked to leave class and the class will be counted as an
unexcused absence. Additionally, I reserve the right to ban laptops from lecture at any given time if I
sense that they detract from the learning outcomes described for the class.

About Pair Programming


Some (but not all) of the programming work in this course will be done using a style of programming
known as “pair programming”. This is where two people work together at the same terminal, as “lab
partners”, to solve a programming problem.
For the assignments where pair programming is used, it is required, not optional. Here's why:
• Pair programming is a real-world skill that is highly valued by employers.
o Many companies use pair programming extensively, including several local area
employers of UCSB CS graduates.
• Companies that employ UCSB CS and CE grads tell us that our graduates have good technical
skills but need better skills and working in pairs and groups to solve problems.
o Incorporating pair programming into our curriculum is part of our response to this “real-
world” feedback.
• Most students find it helpful and enjoyable—UCSB CS students that were surveyed about their
pair programming experiences overwhelmingly reported positive results.
• There is also evidence in the scientific literature that it improves student learning, and helps you
get better grades.
To learn more about pair programming, watch the following video (it takes less than 10 minutes).
http://bit.ly/pair-programming-video.

MATNI CS8 Syllabus, Winter 18 v2 Page 5 of 8


Department of Computer Science, CoE, UCSB

We also realize that working in groups has another, potentially less positive, side to it: namely the
problem of “freeloaders”. So, please:
• Do NOT “just copy” homework or code from others and claim it as your own work. That is called
plagiarism and is subject to harsh consequences from the instructor, the department, and the
university.
• Do NOT work together on assignments unless you've been specifically told that it is allowed.

The bottom line:


• The instructor will try to be very specific about what kinds of collaboration are permitted, and
what kinds of collaboration are not permitted, and are considered a form of academic dishonesty.
• If you are not sure about whether some kind of collaboration is permitted or not, or if dishonesty
is taking place, it is your responsibility to ask questions.

Grading and Grade Distributions


Item Grade % Range Grade Range Grade
Homework 15% [93 – 100] A [77 – 80) C+
Labs and Projects 25% [90 – 93) A- [73 – 77) C
Midterm Exam 25% [87 – 90) B+ [70 – 73) C-
Final Exam (cumulative) 35% [83 – 87) B [60 – 70) D
TOTAL 100 % [80 – 83) B- < 60 F
[X – Y) means “X to Y inclusive of X (but not Y)”

Grades are calculated to 2 decimal places and strictly assigned.

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.)
If I decide to curve the grade (it’s not guaranteed that I will), I will do so on the final class scores and not
on any individual item.

F grades: If you miss your final exam, or your midterm exam, you will receive an F, regardless of your
running score in the class. If you feel that I or the TAs have made a mistake (like adding up a grade
incorrectly), then you should certainly bring that to my attention in an expedient fashion (within one
week’s time), but engaging in grade-grubbing (for example, asking me to round up your final class
grade at the end of the quarter) is something you should avoid doing – please know that I will not engage
you in these requests (i.e. I typically ignore them). If you have any questions about how grades are
computed, please feel free to ask, and I would be happy to explain further.

MATNI CS8 Syllabus, Winter 18 v2 Page 6 of 8


Department of Computer Science, CoE, UCSB

CS8 (Winter 2018) TEACHING ASSISTANTS


The teaching assistants (TAs) aid the instructor in multiple ways and are responsible to lead the labs, do
the grading, proctor classes and exams, and help out students through their office hours.
The TA office hours will be held in Trailer 936.
Name Role Email Office Hours Lab Hours
Yun Zhao T.A. [email protected] Tue. 8:00 – 10:00 AM Tue. 1 PM
Jian Jin T.A. [email protected] Tue. 11:30 AM – 1:30 PM Tue. 2 PM
Muqsit Nawaz T.A. [email protected] Tue. 4:00 – 6:00 PM Tue. 3 PM
Shiyu Ji T.A. [email protected] Thu. 4:00 – 6:00 PM Tue. 4 PM
Vivek Pradhan Reader [email protected] Thu. 3:00 – 4:00 PM -

UCSB Policies on Academic Integrity and Honesty


I adhere strictly to the University’s academic integrity policy. Please cite other people’s work if you are
going to refer to it in any of your work.
http://judicialaffairs.sa.ucsb.edu/CMSMedia/Documents/Academic%20Integrity%20at%20UCSB%20edit
ed%20version.pdf
It is expected that students attending the University of California understand and subscribe to the ideal of
academic integrity, and are willing to bear individual responsibility for their work. Any work (written
or otherwise) submitted to fulfill an academic requirement must represent a student’s original work. Any
act of academic dishonesty, such as cheating or plagiarism, will subject a person to University
disciplinary action. Using or attempting to use materials, information, study aids, or commercial
“research” services not authorized by the instructor of the course constitutes cheating. Representing the
words, ideas, or concepts of another person without appropriate attribution is plagiarism. Whenever
another person’s written work is utilized, whether it is a single phrase or longer, quotation marks must be
used and sources cited. Paraphrasing another’s work, i.e., borrowing the ideas or concepts and putting
them into one’s “own” words, must also be acknowledged. Although a person’s state of mind and
intention will be considered in determining the University response to an act of academic dishonesty, this
in no way lessens the responsibility of the student.
(Section A.2 from: http://www.sa.ucsb.edu/Regulations/student_conduct.aspx, Student Conduct, General
Standards of Conduct)

Disabled Students Program (DSP)


UCSB provides academic accommodations to students with disabilities. Students with disabilities are
responsible for ensuring that the Disabled Students Program (DSP) is aware of their disabilities
and for providing DSP with appropriate documentation. DSP is located at 2120 Student Resource
Building and serves as the campus liaison regarding issues and regulations related to students with
disabilities. The DSP staff works in an advisory capacity with a variety of campus departments to ensure
that equal access is provided to all disabled students.
If you have a disability that requires accommodation in this class, please go see the DSP very early on in
the quarter. I will only honor these types of requests for accommodation via the DSP.
More information about the DSP is found here: http://dsp.sa.ucsb.edu

MATNI CS8 Syllabus, Winter 18 v2 Page 7 of 8


Department of Computer Science, CoE, UCSB

Class Schedule (Mondays and Wednesdays)


The lecture topics are subject to change or re-arrangement.
H.work
W L Textbook Lab Due Project
Date Topics Due
# # Readings (on Thur.) Due
(in class)
1 - 1/15 Martin Luther King Jr. Day - HOLIDAY
1 1/17 Introduction to CS 8
2 2 1/22 A Background to Computer Science Handout Hw 0*
Basic Concepts in CS and Python 1 Ch. 1 Lab 0
3 1/24
(IDLE, arithmetic, vars, modules & objects)
3 Basic Concepts in CS and Python 2 Ch. 1
4 1/29 Hw 1
(Booleans, functions, flow control, loops)
Application of Basic Concepts Ch. 2 Lab 1
5 1/31
(Mathematical expressions in Python)
4 Strings in Python 1 Ch. 3
6 2/5 Hw 2
(types, methods, operators)
Strings in Python2 Ch. 3 Lab 2
7 2/7
(formatting, more on operations)
5 Application of Strings in Python Ch. 3
8 2/12 Hw 3
(Encoding and decoding strings)
2/14 MIDTERM EXAM (Lectures 1 thru 8)
6 2/19 Presidents’ Day - HOLIDAY Lab 3*
9 2/21 Introduction to Python Data Structures: Lists Ch. 4 Hw 4 Proj 1**
7 10 2/26 More on Python Lists Ch. 4 Hw 5
11 2/28 Python Dictionaries Ch. 4 Lab 4
8 12 3/5 Text Files As Input/Output Ch. 5 Hw 6
13 3/7 Application of File I/O and Data Structures Ch. 5 Lab 5
9 14 3/12 An Introduction to Classes and Objects Ch. 6 Hw 7
15 3/14 Review for Final Exam Lab 6 Proj 2**
st
Wednesday, March 21 , 8:00 AM – 11:00 AM
FINAL EXAM (cumulative)
NOTES:
* Hw 0 is due IN LAB on Tuesday, 1/23.
* Lab 3 is due on Friday, 2/23 by 8:00 AM.
** Project 1 is due on Friday, 2/23 by 11:59 PM and Project 2 is due on Thursday, 3/15 by 11:59 PM.
Please note the following:
• Students must submit all homework in printed form by start of class, per the schedule.
• Students must submit all lab and project assignments on submit.cs by that week’s Wednesday at
11:59 PM, per the schedule.
• The midterm and final exams will be taken in class. The dates are fixed and will not change.

MATNI CS8 Syllabus, Winter 18 v2 Page 8 of 8

You might also like