CS1A: Computer Programming and Organization
Syllabus, Fall 2009 

College of Creative Studies, UC Santa Barbara

Instructor:
Dr. Phill Conrad, Lecturer (PSOE), Dept. of Computer Science
Joint Appointment, College of Creative Studies.

Website: http://www.cs.ucsb.edu/~pconrad/ccs/cs1a

Course Meeting Time: Tuesday/Thursday 1-3pm, Bldg 494, Old Little Theatre 160B

Textbook: There is no printed textbook you need to purchase for this course—instead, we'll use:

Contact Email: pconrad@cs.ucsb.edu

Course Office Hours are shown in the table below.

These office hours are in effect every day of the Fall Quarter at UCSB that classes meet (i.e. between 9/24 and 12/04, except University Holidays), unless otherwise announced on the course email list (and the Gauchospace main course forum.)

  Mon Wed
Where HFH 1113 HFH 1113
When 2:15-4:15 4:15-5:15

I am also available by appointment—email me to request an appointment. Include CS1A in your subject line, and indicate your available times.

What this course is about

This course is the first half of a two quarter sequence (CS1A/CS1B) designed to prepare students to take upper division courses in Computer Science, and participate in undergraduate research projects in Computer Science under the direction of CCS and College of Engineering Computer Science faculty.

In both quarters, the course is paired with this course, CS1L, "Programming Lab", where students undertake individual and group programming projects to build and reinforce their skills and knowledge.

CS1A provides students with the opportunity to build skills and knowledge in the following areas: problem solving and algorithm development, Java, C and C++ programming, software development tools, programming language paradigms (structured, functional and object-oriented programming), basic UNIX utilities and tools, basic data structures including arrays and linked lists representations of lists, stacks, queues, and binary trees, binary and linear search, sorting techniques, iteration vs. recursion, basic running time analysis, data representation.

In addition to basic skills in C, C++, and Java (which is a fundamental preparation for upper division CS courses at UCSB), other programming languages such as Scheme, Python, JavaScript and others may be explored either because of the principles they illustrate, or based on student interest.

Team and Communication Skills

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:

Grading—CCS Style

In CCS, we do not assign letter grades for courses. Instead, at the end of the quarter, you'll have earned between 0 and 6 units for the work you did this quarter in CCS CS1L. (If you are taking both CCS 1A and CCS 1L, this is a separate "grade" from the one you'll earn for CCS 1A, and will be evaluated separately.)

To help you (and me) to determine what you've accomplished, you'll be required to put together an electronic "portfolio" of your work as a web site. Each time you complete an assignment, you'll add it to your portfolio. At the end of the quarter, we'll determine the number of units you've earned, based on how your portfolio reflects what you've accomplished in terms of mastery and learning. (If you are taking both 1A and 1L, this can be the same website—you can just identify on the site which parts are for 1A and which are for 1L).

Please know that my philosophy of education is based on our being a learning community that supports one another. CCS CS1A is not a collection of individual "independent studies", but a group learning experience. As a result, it is important that you are in class for each class meeting so that you can contribute your part to creating that community. It is for that reason that attendance is required.

Academic Honesty

Although I would not expect an issue like this to arise in a CCS course, nevertheless for sake of completeness: 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)

Accomodations for disabilities

Information about how UCSB supports students with disabilities is available at the campus ADA website: http://www.ada.ucsb.edu. If you require any special accomodations due to disabilities, please let me know as soon as possible. You may contact me by email to request an appointment: .

Disclaimer

This syllabus is as accurate as possible, but is subject to change as the instructors discretion, within the bounds of UC policy.