Instructor: Dr. Phill Conrad, Lecturer (PSOE), Dept. of Computer Science (Joint Appointment, College of Creative Studies).
Website: http://www.cs.ucsb.edu/~pconrad/cs10
Course Meetings:
LEC MWF 100- 150 PHELP 1425
Discussion Sections (all held Fridays in Cooper Lab, ESB 1003)
Enrollment code: 65912, 1000am-1050am
Enrollment code; 07781, 1100am-1150am
Enrollment code: 07799, noon-1250
Contact Email: pconrad@cs.ucsb.edu
Course Office Hours are shown in the table below.
| Mon | Tue | Wed | Thu | Fri | |
|---|---|---|---|---|---|
| Who | Phill Conrad |
Esra Kucukoguz |
Phill Conrad | Murali Yeleswarapu |
Yiming Li |
| Where | HFH 1113 | Phelps 1413 | HFH 1113 | Phelps 1413 | Phelps 1413 |
| When | 2:15-4:15pm | 4:15-5:15pm | 3:15-4:15pm | 3-4pm | 2-3pm |
Prof. Conrad is also available by appointment—email him to request an appointment. Include CS10 in your subject line, and indicate your available times.
TAs:
This is not an introductory course in programming, but rather an intermediate course in programming—i.e., software development.
We assume you are already a beginning programmer in some language (which might or might not be Java, but should be a language such as Java, Python, C, C++, or Visual Basic. Prior experience with web pages and HTML is NOT enough background to be successful in this course.)
What this course provides is an opportunity to become an intermediate level programmer in Java, and become prepared to take CS20 and CS40.
I say that the course "provides an opportunity", because you will only become an intermediate level programmer in Java if you put a lot of time and effort into this course—that is true no matter how much thought and attention I put in my lectures, assignments, and exams.
You cannot learn to swim, play guitar, or paint from a textbook or a lecture. You can only
The same is true of programming. Programming is not a serious of facts to be memorized—you cannot "cram" for a computer science exam. You must practice, practice, practice.
As a result, the workload in this course may feel 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 an intermediate programmer.
So, what is it that you need to know to be an intermediate programmer in Java? Here's the minimum list of what you'll need to be ready for CS20:
Mastery of:
Have experience in:
Have some exposure to:
But even this minimum list is not really enough! There is other information that is essential, and other skills that are important. Here are a few skills that you'll definitely need.
Here are a few that, while not strictly speaking "essential", are nevertheless really helpful in working with Java:
Finally, here is a list of some things you need to begin to appreciate that are more subtle, but perhaps even more important in the long run. In terms of "the real world"----i.e. what employers want us here at UCSB to "do better at"---these are the things they almost always bring up. Companies that hire programmers don't complain that UCSB grads lack technical skills, but they do wish they were better at these things:
These last four points are often difficult to convey in a 10 week class at the introductory/intermediate level, but we are going to do our best to try!
As mentioned above, one of the things we really want to convey in this course is that real-world software development is very seldom an 'individual sport'—is it much more often a 'team sport'. Companies want to hire CS and CE graduates that know how to collaborate with others on producing software.
In the CS Department at UCSB, we understand the value of this. However, it puts us in a tricky position.
On the one hand, we want to encourage working together in ways that help you develop your skills and teamwork, and help you understand that programming can be a social, collaborative, creative activity—not something done only by loner nerds in cubicles. The sooner you start with activities such as pair programming, code reviews, and other collaborative software development activities, the more skill you'll develop, and the sooner you'll be ready for the real world. Plus, for many people, working together with others is a lot more enjoyable and fun than being a loner.
On the other hand, we need to avoid any situations where freeloaders are "coasting" through courses by leaning too much on others—never developing independent skills as programmers. This situation creates huge problems. Mostly it is damaging to the freeloaders themselves, who eventually crash and burn, perhaps far too late to choose another career path without significant difficulty. However, it also creates problems for everyone else—some hardworking students become demoralized by the unfairness of it all, and the value of a UCSB education is diminished by the freeloaders' lack of accomplishment.
Thus, we must strike a balance.
Our emphasis on collaboration means:
It doesn't not mean, however:
The bottom line:
A final note: the emphasis on collaboration in this course does not necessarily extend to other CS courses you make take in the future.
Introduction to programming and computers. Basic programming concepts: algorithms, data and control
structures, debugging, program design, documentation, structured programming, object oriented programming
Mathematics 3A
Students with no prior programming background are encouraged to take CMPSC 5JA before taking 10.
Big Java, 3rd Edition, by Cay Horstmann
Publisher: Wiley, 2007. ISBN 978-0-470-10554-2
For more information,
See: http://www.cs.ucsb.edu/~pconrad/cs10/09S/textbook/
50% Assignments/Quizzes/Homework + 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.
This course moves quickly. So attendance is very important.
We'll be trying to master the material from about 14 chapters in the book, at about 2 chapters per week. We need to go at that pace, because we'll lose a couple of weeks to exams, and the last few lectures the quarter, you can't really start anything new, because there isn't time to put it into practice with programming assignments. If you don't put it into practice, you aren't very likely to learn it in any way that is going to stick with you, so there isn't much point in just "going through the motions".
As a result, there will be something you have to turn in at almost every class. In this way, attendance is taken, and required.
These things you have to turn in will be a combination of in-class activities, and homework completed outside of class, but handed in on paper during class.
Missing in-class activites.
If you miss a class, you miss the opportunity for the points on that in-class assignment, or homework that was due. Period.
There is no makeup, except for
To make up an assignment from a "sick-day/personal-day", you must email me within 48 hours of the absence, to make an appointment to make up the assignment during the next scheduled office hours following your absence (or at an appointment time to be negotiated, if you have a conflict with those hours.) This make up must happen within two weeks of the absence, or 24 hours before the final exam, which ever is earlier.
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.
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. (Also see the section on collaboration, earlier in this syllabus.)
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)
This syllabus is as accurate as possible, but is subject to change as the instructors discretion, within the bounds of UC policy.