CS1110 - Computer Science I - Spring 2016 Syllabus & Policies Instructor Dr. Kaminski Office: B247 Email: donna.kaminski@wmich.edu “Office” Hours: Thurs 2:15-3:30 & briefly after class in classroom Course Website (Dr. Kaminski’s 2 sections) homepages.wmich.edu/~kaminski/1110 Class Meetings - all in room C224 - you MUST be registered for 1 lecture & 1 lab Lectures: Tues/Thurs 11:30-12:45 Dr. KAMINSKI Tues/Thurs 1:00 - 2:15 Dr. KAMINSKI Mon/Wed 4:00 – 5:15 Dr. GUPTA Labs: Monday 11:30am - 1:20pm Tuesday 2:30pm - 4:20pm Wednesday 8:30am -10:20am Wednesday 6:30pm - 8:20pm Required Texts 1. Starting Out with Java – From Control Structures through Objects **CS 1110 Textbook**, by Tony Gaddis, Pearson CUSTOM – Computer Science, (2013) ISBN 10: 1269046780; ISBN 13: 9781269046787, Pearson Learning Solutions, Boston, MA. 2. Pearson’s MyProgrammingLab is bundled with the custom book at the WMU bookstore. If you have purchased the full book or a used custom book, you may have to purchase the access code for MyProgrammingLab separately. Catalog Description “A first course in the science of programming digital computers. Analysis of problems and development of correct procedures for their solution will be emphasized along with the expression of algorithmic solutions to problems in a structured high-level computer language. Applications will solve both numerical and non-numerical problems for the computer. Co-requisite: MATH 1180 (or beyond that level of math)”. Programming Language & Environment Java programming language and the NetBeans environment will be used for the course this semester. Prerequisites No prior programming experience is expected. It’s assumed that you are comfortable using a Windows-based computer environment (used in the classroom/lab), installing software on your own machine, working with files and folders, etc. Those with prior programming experience (in any language) or who’ve had a programming logic course will find many familiar concepts and find this course somewhat easier than those new to programming. E-Learning & Course Website WMU E-Learning will be used to manage much of the course, such as disseminating information outside of class and posting assignments, quizzes and readings. It will also be used to track grades, giving you on-line access to your scores. Your instructor may also use his/her course website to post assigned readings, in-class examples and lab-tasks. E-mail Read your WMU email regularly. Instructors may notify their class of changes in assignment specs or deadlines, cancelled classes due to weather or instructor illness, etc. Also, if you email your instructor, always use your @wmich account and a descriptive subject starting with CS1110 – otherwise you may not get a timely response to your email. Attendance You are expected to attend every lecture and every lab, arrive on-time, stay the whole class period and actively participate in the in-class activities. In lecture, your instructor will generally show new programming concepts by developing or showing program examples, with students following along (e.g., downloading and running these examples on their own lab workstation). Most lecture sessions will also have students doing small programming tasks. Attendance may be monitored by using an attendance sheet or by quizzes or in-class activities submitted during that class. Course Outcomes Students who complete this course with a grade of “C” or better should be able to: 1) consistently follow a problem solving process; o Understand, design, implement, & test 2) read, develop, and implement algorithms to solve simple problems; o Define, recognize, design, and implement algorithms (pseudo code) 3) understand and use basic concepts of high-level language procedural programming; o Main program, Declarations, Assignment-statements, I/O-statements, Selection-statements, Loop-statements, Method Call-statements, Statements vs. Expressions 4) understand and use basic concepts of OOP; 5) consistently document programs effectively and efficiently; o Program Identification, Sectional Comments, Side-by-Side Comments, Redundant vs. Non -redundant Comments, Use of white-space and indentation, Use of readable identifiers 6) understand and use basic components of an integrated development environment (IDE); 2 o Context-sensitive Editor, Build/Compile, Execute, Symbolic Debugger 7) know the basic phases of the software life cycle & software development cycle; o Concept, Development, Maintenance, Retirement o Requirements, Design, Code & Debug, Test 8) know basic introductory searching and sorting algorithms; o Linear and binary search; o Selection and insertion sort; 9) gain an initial and elementary understanding of algorithm complexity; o Big O Notation Academic Requirements 1. exams (40% of final grade) – in LECTURE a. two midterm exams (each 10% of final grade) b. a final exam (20% of final grade) 2. quizzes, programming tasks, MyProgrammingLab exercises (10% of final grade) - in LECTURE - the two lowest (or missed) quizzes/tasks/exercises will be dropped. 3. programming assignments & related lab work (50% of final grade) - in LAB. This consists of: a. eight to ten programming assignments (~600 points – 50-100 pts each) started in lab and finished as homework afterwards. b. pre-lab or in-lab quizzes/tasks (~50 points – 5 points each) c. two in-lab tests (programs) (~100 points) The course instructor reserves the right to adjust course requirements should special unforeseen circumstances arise during the semester. Your final grade for the course will use the following % of point totals: A (90-100%) C (70-74%) BA (85-89%) DC (65-69%) B (80-84%) D (60-64%) CB (75-79%) E less than 60% NOTE: CS majors, CS minors and CSE majors need at least a “C” grade in this course in order to proceed to CS1120, since CS1110 is its prerequisite. Quizzes, Programming Tasks, MyProgrammingLab Exercises Points will be given for in-lecture activities. Quizzes or programming tasks may consist of writing a short program, adding a chunk of code to an existing program or making corrections to an existing program. The work may occur during the lecture session, between two lectures or across several lectures (i.e., homework). Your instructor will explain graded tasks prior to or as they occur. These points are associated with lecture work, not with lab work. No “make-up’s” for these activities will be provided if you are absent or do not submit them at the designated time. Assignment Submission & Due Dates/Times Assignments must be submitted to your lab instructor electronically through ELearning. (Lab instructors will explain the procedure). Assignments will NOT BE ACCEPTED VIA EMAIL. Submission dates/times will be posted. Assignments will NOT BE ACCEPTED LATE (except under valid, documented, extreme circumstances – see your lab instructor for his/her policy on this). Programming Help with Assignments Start work on assignments as soon as they are given out to leave enough time before the due date to deal with unexpected problems and bugs (which always come up) – allowing time to get help. Get one-on-one help from: your lab instructor during your lab session (though he/she has 20+ other students who may also want help) your lab instructor during his/her “office” hours one of the other lab instructors during his/her “office” hours CS tutor at Student Success Centers, evenings on main campus (in several dorms) – see http://www.wmich.edu/step/peermentors.php . Lab instructors do NOT generally handle your programming problems and debugging issues via email – it’s always easier to help with programming issues IN PERSON. Your lecture instructor may not always be familiar with all the details of the assignments – so see LAB instructors for help on assignments. Grading of Programming Assignments Programming assignments will be graded using established rubrics for grading programming solutions. Correct output (formatted as described in the assignment specs) is of primary concern – although using the designated, appropriate programming concepts and format will also affect your grade. No credit will be given for a program that does not “build” (compile), a program that “crashes” before solving any of the problem assigned, or a program that produces no viewable-output. While a program consisting of several hundred lines of code represents a large amount of work, if the program doesn’t compile, run, and solve the problem (at least partially) it will receive NO points. To avoid this pitfall, build your programs incrementally (i.e., piece by piece), always keeping the program in a working state which produces SOME output, and gradually build it to completion. This approach helps because if you’ve written a working program consisting of several components, and then add one more component resulting in a non-working program, chances are that the error is in the most recently added component. 3 Lab-Tests & Exams Unless otherwise stated in advance, exams and lab-tests will be closed book, closed notes, with NO calculators/computers/tablets/phones allowed and NO bathroombreaks allowed. Exams/lab-tests are cumulative (i.e., they cover topics from the beginning of the course up to the time of the exam/test). You are responsible for the material even if you are absent or late for class. Exam/lab-test dates will be announced in class and on the course website. For the 3 in-lecture exams, you may bring one sheet of 8.5”x11” handwritten notes. Exams are based on the material in the textbook, including questions at the ends of chapters, in-class/website/E-Learning discussions and examples and assigned external readings/research, if any. The 2 lab-tests will require you to write a working program on the lab computer, completing it within the allotted time in lab. IF YOU MISS AN EXAM or LAB-TEST at the scheduled day/time, you will receive a 0 for that exam/test. If an emergency arises causing you to miss an exam/lab-test AND you have sufficient WRITTEN documentation of the situation (verbal stories do NOT suffice), then alternative arrangements may be made for handing the exam/lab-test. If you violate academic honesty while taking an exam or lab-test, the situation will be handled according to the WMU Academic Integrity statement included below. The penalty for academic dishonesty in this course is an ‘E’ grade for the course. Course Etiquette The classroom is a computer lab which allows students to follow along with the instructor’s example programs and to do assigned programming tasks on their lab machine. However, you may NOT use the lab computers (nor your own laptop) during class FOR ANY OTHER PURPOSE. Once class starts there must be NO: WEB SURFING, TEXTING, CHECKING EMAIL/FACEBOOK, MAKING/RECEIVING PHONE CALLS, GAME-PLAYING, WORKING ON OTHER CLASSES, WORKING ON CS1110 ASSIGNMENTS, etc. It is inappropriate, counter-productive to learning, rude and distracting to the instructor and fellow students. You will be asked to leave the class if you do not show appropriate behavior in class. You are expected to come to class on time, be attentive in class, follow along with the examples as presented by the instructor, stay for the entire class period and work on the projects which the instructor designates. (In lab, you may leave early if you have ALREADY fully completed and submitted the assignment and all scheduled lab activities for that day). Do NOT temporarily leave in the middle of class to make a phone call or visit the restroom (except in an emergency, but certainly do NOT take a break during an exam or quiz). No eating or drinking is allowed in any computer lab; no headphones during class, and turn off your cell phone. Course Philosophy This course is aimed at college freshmen and other students seeking a basic knowledge of computer programming. As a freshman level course it has two types of goals: 1) to develop basic knowledge, skills, and attitudes relating to students of computing and computer science, and 2) to develop basic knowledge, skills, and attitudes for general college level academic life and professional work life beyond. The course is very structured, as is appropriate for freshmen. Like most college courses, this course requires students to take responsibility for their own learning. The course follows a strict schedule of reading, writing, assignments and quizzes. Each week a chapter or part of a chapter of the textbook will be covered. Students are expected to read the material and review the exercises BEFORE coming to class. The reading, program writing, and exam schedule is fixed. Students are required to develop the discipline to follow the schedule. As is typical of many college courses, this course will require one or more tests during the term and a comprehensive final examination. Classroom activities, unlike the readings and quizzes, are somewhat less structured. This allows for tangents in discussions, the use of occasional visiting guests, unforeseen instructor absences, holidays, etc. The flexibility of the classroom does not tie students or instructor to the textbook readings, but does complement and enhance those readings. Students are responsible for material in the textbook, whether or not the material is addressed in the classroom. Students are also responsible for material and skills presented or discussed in class. If you have difficulty meeting the academic requirements, contact your instructor using e-mail, as soon as possible before or immediately after the problem occurs. Contact your instructor if you will miss or be late for a class meeting, if you have material submission problems, miss or anticipate missing course deadlines, or have personal problems that affect your work in this class. HOWEVER, just because you notify your instructor does NOT mean that you will necessarily be given deadline extensions. 4 Incomplete (‘I’) Grade Policy A grade of “I” (Incomplete) will be issued ONLY IF 1) you could not complete the course as a result of some situation outside of your control, 2) AND you provide written documentation of the situation, 3) AND you had a passing grade at the time you requested the incomplete grade, 4) AND the work remaining to be completed is minimal. A grade of “I” allowed as a replacement for a low or failing grade. Note that it’s generally better to request a special withdrawal from all classes (from the Registrar’s Office), rather than to request ‘I’ grades in courses, since all work needed to make up the incomplete is done without getting course credit for that new semester. And generally, students are also registered for other courses in that new semester – so making up the incomplete work is “overtime” (and may lead to poor work in those other courses). Important Dates See WMU Academic Calendar for holidays, drop dates, and other dates relevant to your academic scheduling: http://www.wmich.edu/registrar/calendars/academic/ Disability Services for Students (DSS) Both in compliance with and in the spirit of the Americans with Disabilities Act (ADA), we would like to work with you if you have a disability that is relevant to your work in this class. If you have a documented disability and wish to discuss academic accommodations, please contact your instructor in a timely fashion with your DSS verification card. You may also contact the Office of Disability Services for Students if you need to register with the DSS office, 269-387-2116 (or at www.wmich.edu/disabilityservices). Academic Integrity You are responsible for making yourself aware of and understanding the University policies and procedures that pertain to Academic Honesty. These policies include cheating, fabrication, falsification and forgery, multiple submission, plagiarism, complicity and computer misuse. (The academic policies addressing Student Rights and Responsibilities can be found in the Undergraduate Catalog at http://catalog.wmich.edu/content.php?catoid=22&navoid=882). If there is reason to believe you have been involved in academic dishonesty, you will be referred to the Office of Student Conduct. You will be given the opportunity to review the charge(s) and if you believe you are not responsible, you will have the opportunity for a hearing. You should consult with your instructor if you are uncertain about an issue of academic honesty prior to the submission of an assignment or test. Students who take this class must be prepared to submit electronic copies of some or all assignments. The University expects that all students will be evaluated and graded on their own work. If you use language, data or ideas from other sources, published or unpublished, you must take care to acknowledge and properly cite those sources. Failure to do so constitutes plagiarism. Throughout the term you will be required to write computer programs to solve problems. Unless assigned as a joint project, these are to be YOUR OWN WORK! Learning can certainly take place through discussions regarding programming assignments, and you may ask for hints, ideas, or help with debugging code that you have written; however, when discussion is occurring, CODING OR TAKING NOTES IN ANY FORM SHOULD NOT TAKE PLACE DURING THAT DISCUSSION. You are to write code COMPLETELY by yourself for problem solutions. Here are additional rules to follow, when writing your solutions: • Do not look at or copy code that someone else has written for the same or similar solution. • Do not give your code in part or whole, either in hardcopy or electronic form, to anyone else. • Do not put yourself in a position of having access to another person’s files. • Do not give another person access to your files. A GOOD PRACTICE TO FOLLOW: When you discuss a program, don’t take notes. After the discussion play a computer game, watch an episode of your favorite TV show, or participate in some activity not associated with the assignment. After you have done this, then program your solution ON YOUR OWN.