Syllabus for C Sc 127B Introduction to Computer Science
University of Arizona Spring 2013
University Catalog Description (4 Units) Continuation of C SC 127A. Topics include classes, sorting, algorithm analysis, recursion, program development, and implementation of abstract data types using linear structures and binary trees. Weekly laboratory. This course cannot be taken if a student has credit in a higher level computer science course (C SC 245, 252, and all 300- and 400-level courses). These students will be dropped. Students with unusual circumstances should consult with a department advisor. Prereq: C SC 127A, with a grade of C or better, B or better expected of Pre-CS majors. Credit allowed for CSC 127B or CSC 227 but not for both.
Instructor Rick Mercer http://www.cs.arizona.edu/people/mercer Office hours in 727 Gould Simpson by appointment
When/Where Common lectures MWF 1:00-1:50 CESL 102. Recitation sections of approximately 25 students and your section leader are in different locations at different times, every week except the first.
1 / 10:00 - 10:50 Tuesdays / 701 GS / Daniel Belcher / danbelcher
2 / 11:00 - 11:50 Tuesdays / 813 GS / Lane Simons / lsimons
3 / 4:00 - 4:50 Tuesdays / 942 GS / Lloyd McKenzie / lloydm09
4 / 9:00 - 9:50 Wednesdays / 813 GS / Jared Eberhard / jarhead
5 / 11:00 – 11:50 Wednesdays / 813 GS / Zach Montoya / zacharymontoya
6 / 10:00 – 10:50 Wednesdays / 813 GS / James Fagan / jimbofagan
7 / 1:00 – 1:50 Tuesdays / 813 GS / Christian Montoya / christianmontoya
Web Site The course website has all current course information. It is updated three days per week with announcements, lecture outlines, and new assignments: https://sites.google.com/site/csc127bspring13/
Textbook The text book was written by your instructor. It is provided free in pdf format or as a self-published printed book for $16.00 plus shipping ($3.99 or $5.99).
Course Philosophy and Learning Objectives The instructor and section leaders will facilitate lectures and recitation sections to help you learn the process of programming and guide you in developing skills that will serve you in this course, future courses, and industry. We ask you to take responsibility for your learning by attending lecture and section, preparing for class, participating thoughtfully in all activities, and respecting others. When you successfully complete this course, you will be able to
• Analyze problems, design and implement computer based solutions
• Understand how to use existing types and build new types
• Design experiments to validate code using an industry-strength testing framework (JUnit):
"Test-driven development was the most important thing I learned in college", former student now working as a software developer.
"When I told them I was doing unit testing, they made me the offer immediately", former student now working in industry.
• Debug with an industrial-strength debugging tool
• Understand and apply encapsulation
• Analyze algorithm runtimes with Big Oh
• Use Java generics to implement generic collections
• Know classic algorithms to search, sort, insert, and remove collection elements
• Implement recursive algorithms
• Implement abstract data types such as list, stack, set, and map using a variety of data structures such as arrays, singly-linked structures, binary trees, and hash tablesCourse Grade / Letter Grades /
4% Final Project (instead of a final exam)
6% Section / In-class (lowest 5 dropped)
18% Test 1 Friday 22-February
18% Test 2 Friday 29-March
18% Test 3 Friday 25-April / A >= 90%
B 80.0 through 89.9
C 70.0 through 79.9
D 60.0 through 69.9
E < 60.0
Test Makeup If you are unable to take a test or the final at the scheduled time for a valid reason, you must contact Rick to get permission to take a makeup test. Unless you are physically unable, send an email before the test with as much lead time as possible. Describe how you can be contacted to discuss how to make up the test. Without previous notification and a valid excuse you may not be able to make up the missed test. Documentation to explain your absence may be required.
Assignments This course has many concepts understood best by doing things. Assignments help you learn and prepare you to do better on the tests. The Assignments portion of your grade consists of homework, small coding assignments, and larger programs worth 100 points each.
Absence Policy To be successful, you are encouraged to attend all lecture and recitation sections. Section attendance is part of your course grade, be on time and stay until the end to get credit for attendance. We also have in-class activities as part of your Assignments grade that can only be completed if you are in lecture. No makeups are allowed for missing a section or an in-class activity. The lowest 5 will be dropped.
Students with Disabilities If you anticipate barriers related to the format or requirements of this course, please meet with me so that we can discuss ways to ensure your full participation in the course. If you determine that disability-related accommodations are necessary, please register with Disability Resources (621-3268; drc.arizona.edu) and notify Rick of your eligibility for reasonable accommodations. We can then plan how best to coordinate your accommodations.
Software We will be using Java 6 (you may use 7) and Eclipse Juno (4.2). Both are free and available on Windows, Linux, and Mac OS. You can set up your own computer with the same tools we will be using in lab and lecture. Instructions are available on the course web page.
Classroom Behavior The University of Arizona has an explicit policy on disruptive behavior: http://policy.arizona.edu/disruptive-behavior-instructional Included in disruptive behavior are cell phone, PDA, and pager use, laptop use, talking during lectures, sleeping, eating, arriving late or departing early (without prior notification), and newspaper reading. Such activities distract others and interfere with instructional activities. Again, students should use class time to further their learning, through active engagement with the material. Please treat each other with respect.
Q&A with Piazza This semester we will be using Piazza for class discussion. The system is catered to getting you help fast and efficiently from classmates and section leaders and Rick. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza (anonymous posts are possible). Important information may be posted between lectures. Please sign up when you get the email and chose the option to receive notifications of any posting.
Academic Integrity and Penalties Assignments in this course require individual attention and effort to be of any benefit. Unless otherwise specified in the published assignment, all work is expected to be that of each student alone. You may not consult with others, except in ways specifically authorized by the course instructor. We will be using plagiarism detection software tools on selected assignments. If your code matches another's code or code from the Internet, you run the risk of having a violation of academic integrity report filed with the Dean of Students. Sanctions include failing the course or placing a cheating notation on your permanent transcript. Penalties can result if you give your code to another person. Do not give your code to anyone!
If other reports have been filed from any department, the Dean of Students may issue more severe sanctions including suspension or expulsion from the university. You are better off receiving 0 for one project rather than an E for the course and a report on your University record.
Students are responsible for understanding and complying with the University's Code of Academic Integrity. The Code http://deanofstudents.arizona.edu/codeofacademicintegrity has the full text is also available from the Office of the Dean of Students.
Among other provisions, the Code demands that the work you submit is your own, and that graded programs and exams will not subsequently be tampered with. The Code also demands that you do not copy code when it is part of a published class assignment. It is immaterial whether the copying is done electronically, by retyping the code, looking at another's computer screen, or any other means.
Avoiding Sanctions and a Record Begin your assignments as soon as possible. Do not wait until the due date! This is when desperation sinks in and you are tempted to take a chance. You are better off getting a 0 than getting caught cheating. Never copy anything from the Internet. Do not copy anything as part of your assignment. Do not look at other's code, even if it is just on the screen. Do not copy files. Do not give your code to anyone even if the other person promises not to turn it in as their own, in which case you who did all the work may suffer the same sanctions as the cheater. And of course, do not look at another person's test while the test is in progress.
Subject to Change Information contained in this course syllabus other than the grading and absence policy is subject to change with reasonable notice.