Syllabus for C Sc 227 Program Design and Development
University of Arizona, Fall 2013
University Catalog Description: C Sc 227 -- Program Design and Development (4 units). Programming in an object-oriented language such as Java for students with significant prior programming experience. Topics include types, control structures, classes, arrays, sorting, algorithm analysis, recursion, program development, and implementation of abstract data types using linear structures and binary trees.
When/Where:
- Lectures for all: MWF 10:00-10:50 in Bio West 301
- Recitation sections in smaller numbers (~25) at various times (SLs subject to change)
Section
/Wednesdays or Thu
/Location
/Section Leaders (SLs)
/ @email001A / 12:00 - 12:50 pm / 930 Gould Simpson / Christian Montoya / christianmontoya
002A / 1:00 - 1:50 pm / 414 Phys-AtmosSci / Kelsey Young / kyoung4
005A / 2:00 - 2:50 pm / 304 Engineering / Livio De La Cruz / ldelac01
003A / 3:00 - 3:50 pm / 151 M Pacheco ILC / MichaelCollins / michaelcollins
004A / 4:00 – 4:50 pm / 414Phys-AtmosSci / LloydMckenzie / lloydm09
006A / 11:00am Thursday / 113 Communication
701 Gould-Simpson / Daniel Belcher / danbelcher
Office Hours: 727 Gould Simpson
- See Rick's WebSite
- By appointment: r 621-6126 (email works better)
Prerequisites: This course is for students with significant programming background who can learn a new programming language like Java quickly. Many of the same concepts you learned in another language will be "covered" quickly: methods (a.k.afunctions) and parameters, the control structures--sequence, selection, and repetition. Many students take 227 after 127A (because CS does not offer 127B in the fall). This course is an accelerated one-semester alternative to the two-semester C Sc 127A and 127B sequence. This course has two semesters of concepts in one semester with 127A "covered" in the first 4 weeks.
Course Philosophy and Learning Objectives: The instructor and section leaders facilitate lectures and recitation sections to help you learn computational thinking andprogramming as we guide you in developing skills that will serve you well in this course, future courses, internships, industry,and grad school. As always, you are responsible for your own learning. Attendall lectures and sections, complete all Programming Assignments by yourself. Also please respect others, especially those who are not as confident or experienced as you.
Textbook: The textbook was written by your instructorspecifically for this course. It is provided free as apdf and as a hard copy book from Lulu for $16.00 plus shipping ($19.99):
Course Web Site: We will use D2L minimally, for grades and possibly screencasts of lectures. The real course website has all current course information. It is frequently updated with Announcements, Assignments, andLecture Outlineswhile including a few useful links (or Google mercercs or see our D2L page for the same link):
Course Grade as a Weighted Average: / Letter Grade17% Test 1: Friday 20-Sep 27-Sep
17% Test 2: Friday 1-Nov
17% Test 3: Friday6-Dec
Optional Comprehensive FinalExam to replace
thelowest test grade: Wed 18-Dec 10:30am
9% Section and Lecture Participation (drop lowest 4)
40% Programming Assignments /
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 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. I will document your ability to take a makeup test through a return email. Without previous email notification and valid excuse you will not be able to make up the missed test. Documentation maybe required.
Optional Final Exam: You will know by the last day of lecture if taking the Optional Final Exam would be of any benefit to you.It is intended to replace your lowest test score.Because the optional final exam is intended to help students with borderline grades, alternative final exam times will not be available. The optional final exam cannot be made up due to illness, nor will it be offered at an alternative time due to a conflict with another final or a desire to leave early.
Programming Assignments: These include CodingBat problems and smaller coding problems that have a specific due date. These cannot be made up, nor can they be late. There will also be ~ten 100-point programming projects using WebCat. WebCat provides feedback such as your current score and hints for any part of the project is not working correctly. You may turn in these programming assignments as often as you wish (average is about 5 times for 100%). If you are willing to take the time and apply the effort, receiving 100% on every project is quite possible. The most recent submission will be counted unless you notify your section leader to grade an earlier submission. It is possible to have a higher grade on a previous submission. These 100 point programming assignments will automatically receive a bonus for early turnin, one point for each day early. They also receive an automatic late penalty of 10 points per late day. After 3 days late, WebCat turnins are no longer accepted. You will need to be on campus or use a Virtual Private Connection (VPN) for WebCat turnin.
Absence Policy/ Section and Lecture Participation Grade: To be successful, attend all lecture and recitation sections. Section and Lecture Participation count as 9% of your overall grade.For full credit, contribute to collaborative activities, be on time, and stay until the end ofevery lecture and recitation section.There will be approximately 40 grades in this category with the lowest 4 dropped. Collaborative lecture activities are graded as a team like this:
0: Did not show up
1: Half-hearted attempt to complete
2: Answers mostly complete and/or correctwhilerespecting your teammates.
Section participation is graded similarly, but individually:
0: Did not show up
1: Arrive late or leave early
2: Paid attentionwhilerespecting your classmates
No Participation grade can be made up unless you have a valid reason, listed officially as
- All holidays or special events observed by organized religions will be honored for those students who show affiliation with that particular religion,
- Absences pre-approved by the UA Dean of Students (or Dean’s designee) will be honored
Accessibility and Accommodations: It is the University’s goal that learning experiences be as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, please let me know immediately so that we can discuss options. You are also welcome to contact Disability Resources (520-621-3268)to establish reasonable accommodations.
Please be aware that the accessible table and chairs in this room should remain available for students who find that standard classroom seating is not usable.
Classroom Behavior:Things considered disruptive include talking with others during lectures, cell phone use, game device use, laptop use for anything not course related (playing games, email, etc), 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.
The University of Arizona has an explicit policy on disruptive behavior that includes the instructor's right to kick you out:
For example, if you keep talking as I am glaring at you, I may ask you to leave the class.However, as a colleague writes: 'I know sometimes you can't resist making a comment to your friend. I don't want you to injure yourself by trying to hold it in. Go ahead and whisper that comment. Just don't let it grow into a conversation. If what you have to say is that irresistibly juicy, write a note or hold the thought until after class. I'm confident that the passage of time will not diminish its wit and hilarity. The point, of course, is to avoid distracting other students."
You are also expected to treat other with respect.We have a wide variety of student programming experience in this class ranging from someone who has forgotten almost everything from a four-year-old course to professional software developerswith years of experience and a lot of different levels in between. Disruptive behavior in my CSc 227 course also includes
- Dissing other students for not knowing what you know, intentionally or not
- Bragging about what a great programmer you are, intentionally or not
- Bragging about how quickly you finished a programming assignment or how easy it was
- Correcting others in a condescending manner
Required: You will need a running computer, Java 7 (a high-level computer programming language) and Eclipse Kepler 4.3 (an Integrated Development Environment (IDE)). All are available in 228 Gould Simpson (and possibly other computer labs). If you have your own computer, you can add therequiredsoftware for free even though it cost $100's of millions to others. Both are available for Windows, Linux, and Mac OS environments. See our website link for these two required tools:
Academic Integrity and Penalties (a.k.a. Cheating): This course requires individual attention and effort. Unless otherwise specified, 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 written by computer scientists. This system knows how cheaters change code in an attempt to hide cheating.
Students are responsible for understanding and complying with the University's Code of Academic Integrity. The Code has the full text. 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 demands that you do not turn in copied code as if it were your own work. It is immaterial whether the copying is done electronically, by retyping, looking at another person's computer screen, using solutions from the Internet, or any other means you may think of.
If your code matches another person'scode, from this semester, a previous semester, or from the Internet, or if you copy during a test, a report will be filed to the Dean of Students with these possible sanctions:
A faculty member may impose any one or a combination of the following sanctions: a written warning, loss of credit for the work involved, reduction in grade, notation of the violation(s) on the student’s transcript, a failing grade in the course, or revocation of a student’s degree. The faculty member may also impose a sanction of suspension or expulsion from the program, department, college, or University.
These sanctions also occur if you help another person cheat. Donot give your code to anyone! Do not post your code to the Internet. Don't give code to anyone, especially your friends. Do not help any person cheat in any way even when they promise you they will not use your code.
You may reuse any code from our required textbook, lecture code demos, PowerPoint slides associated with this course, and code written or presented in section.
How to AvoidSuch Serious Sanctions: 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 by any means! The work you turn in must be your own, not another's.Do not look at other's code, even if it is just on their 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. And of course, do not look at another person's test while the test is in progress or try to alter your exam after it's graded. In short, the work you turn in must be your own work, not someone else's.
Subject to Change: Information contained in this course syllabus other than the grading and absence policy is subject to change with reasonable notice.