Instructor: Phill Conrad
Course Meetings:
LEC MWF 100- 150 PHELP 3519
Discussion Section:
Wed 3-3:50pm, MESA LAB (Phelps 1525) ... not Girvetz 2116 as published on your schedule
Contact Email: pconrad at cs.ucsb.edu,
Office Hours: Tuesday/Thursday, 2pm-3pm, or by appointment, Harold Frank Hall Room 1113
What this course is about:
In the 21st century, computing is pervasive. We encounter computing devices not only in the "laptops" and "desktops" that we conventionally call "computers", but embedded inside our cars, our cell phones, road signs, MP3 players, and so forth.
All of these devices do what they do as a result of a program. Programming is the art and science of specifying a clear set of instructions that can be carried out mechanically to acheive some task.
Learning to program can be both a useful practical skill, and a rewarding intellectual challenge. It is related to problem solving and figuring out puzzles. Learning to program can be useful in training your brain to think in new ways—ways that can be useful in many other fields, even if you never "write a program" in your future career. Learning about programming can also give you insight into why some computing devices are easy to use and work well, while others are frustrating and work poorly.
We'll learn the Python programming language. This is a language that has been shown to be easier for beginners to pick up than other languages you may have heard of, such as Java, Visual Basic, or C++. It is also a powerful language—one that allows us to do some cool things a lot more easily than these other languages—things like simple game programming, working with images and sound, and working with web pages.
To get to the cool stuff, we also have to learn some fundamentals—these are analogous to "learning to dribble" before playing basketball, or "learning your scales" when learning to play a musical instrument. We'll try to strike a balance between fundamentals, and interesting projects, to make the class both intellectually deep, as well as fun.
Catalog Description:
Introduction to Computer Programming
Not open for credit to students who have completed Computer Science 10 or Engineering 3. May not be repeated with a different suffix.
Introduction to programming and the organization of computers. Basic programming concepts, algorithms, data and control structures, debugging, program design, documentation, structured programming.
Prerequisites: none
Textbook(s): Think Python: An Introduction to Software Design, v1.15 (free, available online)
Grading:
50% Assignments/Quizzes + 30% Midterm Exams (2 at 15% each) + 20% Final Examination
Quizzes may occur at anytime, announced or unannounced. Missed quizzes may not be made up.
Thus attendance is required, and reading the assigned readings is required.
A conventional 10 point scale will be used to map your numeric average into a letter grade, with the lower three and upper three points of each range representing plus/minus.
| grade >= 93 | A | 73<= grade < 77 | C | |
| 90 <= grade < 93 | A- | 70<= grade < 73 | C- | |
| 87 <= grade < 90 | B+ | 67 <= grade < 70 | D+ | |
| 83<= grade < 87 | B | 63<= grade < 67 | D | |
| 80<= grade < 83 | B- | 60<= grade < 63 | D- | |
| 77 <= grade < 80 | C+ | grade < 60 | F |
This 10 point scale represents the minimum letter grade you will be assigned—at the instructor's discretion, the letter grade scale may be altered in the students' favor if this will be better reflect the students' mastery of the material. Thus, if there is a "curve", it will be applied at the end, not to individual assignments.
Academic Honesty:
You should read and understand the UCSB policy on academic honesty listed below. You should also understand that I take academic honesty and personal integrity very seriously, and will do my best to uphold and enforce this UCSB policy.
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 be 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, General Standards of Conduct)
Course Goals:
Here is a possible list of more specific topics, subject to change. The order and exact coverage may be adjusted as the quarter progresses.
This syllabus is as accurate as possible, but is subject to change as the instructors discretion, within the bounds of UC policy.