CS-11 Introduction to Programming, C++ Syllabus Learning Outcomes 1. Design elementary computer algorithms. 2. Develop small C++ programs that implement basic algorithmic designs. 3. Organize and document program code following the principles of software engineering. Course Objectives 1. Analyze problems and develop computer algorithms to solve novel problems. 2. Write, document, test and debug C++ programs, making use of variables, expressions, selection, and looping statements. 3. Organize program code into modules using functions following the software engineering principles of modularity and abstraction. 4. Assemble data and functions into classes at an introductory level following the software engineering principles of encapsulation and data hiding. 5. Make use of arrays and vectors to store and process lists of data. 6. Read, interpret, analyze, and explain introductory C++ programs. 7. Use editors to compose programming code and compilers to produce executable software. Course description Presents an introduction to computer programming using the C++ programming language beginning with basic principles and progressing to object-oriented programs. Includes: algorithms, data types, declarations, expressions, selection, repetition, functions, libraries, arrays, classes, objects, files and streams. Who Should Take This Course Students who want to learn basic programming skills. Students preparing for CS 19: C++ Programming. Programmers who want to learn a smaller subset of C++ than CS 19, and at a slower pace. Student Preparation All students are requested to have an e-mail account. Please keep your email current in SelfService. You need Internet access to view course materials, to turn in assignments, participate in class discussion, and to take tests. Internet access is available in the CTC and STEM Center for all students enrolled in this course. Technical Skills Students need technical skills in the following areas to be successful in this course: Computer operation and program installation and configuration File and folder (directory) management Compressing and Uncompressing archives (.zip) Text editing Email usage Web browser usage Using an online CMS (such as Canvas) for discussion, exams, and assignments use of an online, interactive textbook, such as Zybooks (bonus skill) Binary number arithmetic and conversion between binary and decimal Time Requirements The time required per week will vary quite a bit between students depending on several factors including your computer background. You should expect to spend about twelve hours per week for this course. Textbook and Course Materials This class uses an online interactive text from Zybooks. Many of the class exercises and course work come from this environment. This textbook is a required part of the course. Full credit is awarded for work completed before the deadline, partial credit will be awarded at instrcutor’s discretion for work completed late. Responsibilities Your responsibilities include the assigned Zybook sections, the recorded lab/lecture videos, assignments, discussion, exams. Keeping up with the assigned work and the course lectures is important for successful completion of the course. During the lab/lecture videos, I recommend that you will take paper notes. You are responsible for maintaining the system(s) you use to complete the course work, and for keeping backup copies of your work. Your participation in the class discussion not only enhances your own learning, it benefits other students in the class. Canvas All course materials will be distributed through the class Canvas shell. Students will need to go to Canvas frequently in order to obtain file downloads, submit completed work and to view items of interest throughout the semester. Grading Policies Your final grade is weighted based on your performance in the following areas: Zybook Exercises/Labs/etc. 40% Assignments (programming projects) 30% Midterm exam 8% – 10% Final exam 10% – 12% Class Participation (Discussion) 10% Assignments The programming assignments let you apply what you have learned to new situations, analyze problems and see the patterns in the programming language. Assignments, including in-class exercises and online labs, are due at the date and time shown in Canvas. I will generally accept late assignments (up to one wek) for partial credit, and assignments that are turned in one time may be re-submitted after the deadline to earn back some of the points lost on an assignment. Some assignments have some extra-credit suggestions. Since we turn-in work online, you can submit your programs from any computer connected to the Internet. Midterm and Final exams The midterm and final exams must be taken when scheduled, except by prior arrangement with the instructor. Grade interpretation Grading within each area is based on the following scale: A 90.0%–100% B 80.0%–89.9% C 70.0%–79.9% D 60.0%–69.9% F 0.0%–59.9% Your scores (except for class participation) will be posted – either in Canvas or via some other method and you are responsible for reviewing them frequently. Note that I have not setup Canvas with the actual class grading paramteres, so you can view raw scores, but don’t trust Canvas to report your overall grade. You’ll need to calculate that yourself. If you have questions about problems you missed on any exercise or assignment, please see me right away. I want to ensure both that you understand the material and that your grades are accurate and fair. Alternate Grading and Incompletes Pass/No-Pass Option You may request a pass/no-pass grading option. If so, you must complete the course work at a satisfactory (that is a "C") or better level to pass. For more information, see the Cabrillo Academic Policies and Procedures document. Incompletes You may request an incomplete from the instructor if you are "doing passing work and regularly attending at least 75% of a course, but are unable to take the final exam (or otherwise complete the course) because of illness or other unforeseeable emergency and justifiable reasons." (Quotation from the Academic Policies and Procedures document.) Tutors Tutors are often available in the CTC and in the STEM Center during the regular Fall and Spring semesters. Tutor availability is limited durring the Summer. Tutors can provide a valuable service by helping you learn the material. However, tutors do not help if they do the work for you. Thus, you should not allow tutors to type code for you or tell you what to type. Tutors can show you how to use computers and computer programs such as our compiler. They can discuss problems and suggest ideas for solving problems. They can also look at your code and point out errors. Tutors help you to learn the material, but must not write any code for you. If a tutor writes code for your assignments, you are cheating. Scholastic Honesty Policy Scholastic dishonesty is any act designed to give an unfair or undeserved academic advantage. Students who are scholastically dishonest hurt both themselves and other students. They rob themselves of both the knowledge of the course and the experience of learning how to learn. They harm other students as well because they may unfairly get a higher grade and nobody can trust that the graduates of a course know the material. Scholastic dishonesty includes: Cheating: Intentionally violating the rules of the course by possessing, communicating, using, or attempting to use unauthorized materials or to take actions that the instructor has prohibited. Plagiarism: Use of distinctive ideas, words or code belonging to another person, without sufficiently acknowledging that person's contribution. Collusion: Unauthorized collaboration with another person in the preparation of an academic assignment offered for credit. Misrepresenting facts: Providing false information for academic advantage such as claiming a death in the family in order to postpone an exam or extend a deadline on an assignment, when in fact there was no such problem. For any work submitted in this course, you are not authorized to copy or use work from any source unless it is specifically stated in the assignment instructions. If you use distinctive ideas from another source, such as a book or the Internet, you must credit the source well enough so that it is easy for the instructor to find. Note that the instructor may use various services and tools to detect cheating by comparing your work with other students, books and the web. Any person caught cheating, colluding, plagiarizing or misrepresenting facts will be given a grade of zero for the assignment or exam. The second offense, or a single severe violation, will result in being dropped from the course or given a failing grade after the last drop time has passed. These offenses may be reported to the Dean of Student Services for inclusion in your academic record. Assignment Integrity In this course, you must personally complete the entire assignment yourself. To complete the entire assignment means that you must write all your own program code. You may discuss assignments with other people, but ultimately you must write the code yourself. Not writing all the code yourself is cheating. If the assignment seems too hard to complete without more help, then you should contact me. My job is to help you understand the material. As an option, you may discuss your assignment, and show your code to, another Cabrillo College Computer Science Instructor, if they agree. Note that this list does not include tutors. Tutors must follow the same rules for acceptable help as other non-students. You may still help other students, and receive help from other students (or tutors), and I encourage you to do so. The following lists are intended to help clarify the rules about appropriate assistance for assignments: Acceptable Help Showing others how to use, or solve problems with, computer applications such as compilers, text-editors and debuggers. Discussing problems and ideas for solving problems with other students or tutors. Describing your algorithms to other students using diagrams, psuedocode or natural-language statements (unless that was the assigned homework). Looking at another person's code and pointing out an error, as long as you do not write or type any information, or dictate what program code to type or write. Tip: if you need to write code when explaining a problem, then use an example that is not part of the assignment. Unacceptable Help Typing or writing any project code (or other parts of a homework problem) for another person, or allowing someone to type or write homework code for you. Looking at another person's code while typing or writing your own project code. Listening to someone else dictate project code for homework while typing or writing, or dictating to some else the program code to type or write Providing a copy of your assignment code, or any portion of your code, to any person other than the instructor, including posting your code online or emailing it to someone, until after the assignment due date has passed. Communicating your answer for an assigned problem to anyone by any means until after the assignment due date has passed. Providing a copy of the instructor's posted solutions (or any solution) to another student, or receiving a copy of the instructor's solution (or any non-original solution) before the assignment due date. These are not all-inclusive lists. Students are expected to interpret and apply the overall concepts of accademic honesty in good faith. If you have questions about what is permissible, please ask me. Also, note that these rules do not prohibit you from sharing assignment solutions with other students after an assignment is due and turned in. Reviewing other people's solutions can help you learn, but only after you complete the assignment on your own. Assessment Integrity Cheating on exams includes, but is not limited to, the following: Communicating with anyone but the testing proctor during the test period Failing to comply with instructions given by the testing proctor Copying from another student Using, buying, stealing, soliciting for, or transporting some or all of the contents of a test or test rubric Substituting for another person, or permitting another person to substitute for oneself, in taking a test This is not an all-inclusive list. If you have questions about what is permissible, please ask me. Students automatically consent to re-take an exam, or an exam deemed to be equivalent by the instructor, if the instructor has any question about the integrity of the results. SEVEN KEYS FOR ACADEMIC SUCCESS 1. Study With and Get to Know Other Students 2. Use a Study Schedule and Time Management Strategies 3. Come to Every Class Session 4. Communicate with Your Instructor 5. Expect to Use Textbooks and Readings 6. Set Academic Goals 7. Support Services Are Here for You - Free! Find out more about the seven keys! NONDISCRIMINATION AND ACCESSIBILITY NOTICE The District is committed to equal opportunity in educational programs, employment, and all access to institutional programs and activities. The District, and each individual who represents the District, shall provide access to its services, classes, and programs without regard to national origin, religion, age, gender, gender identity, gender expression, race or ethnicity, color, medical condition, genetic information, ancestry, sexual orientation, marital status, physical or mental disability, pregnancy, or military and veteran status, or because he/she is perceived to have one or more of the foregoing characteristics, or based on association with a person or group with one or more of these actual or perceived characteristics. Cabrillo College values diversity. Students needing academic support/accommodations should contact the instructor as soon as possible. As required by the Americans with Disabilities Act (ADA), accommodations are provided to ensure equal opportunity for students with verified disabilities. If you need assistance with an accommodation, please contact the Accessibility Support Center (ASC) at (831) 479-6379 or (831) 479-6370, asc@cabrillo.edu, or located in the HUB/2nd floor of the library, room 1073 at the Aptos campus or the Student Resource Center at the Watsonville Center. Thank you for reading the course syllabus. The first student to email me that they have read the syllabus this semester will earn some extra credit. SUPPORT SERVICES Cabrillo College has many programs and services designed to help you during your academic journey. You can visit the website at www.cabrillo.edu for a complete listing of support services (under the Student Services tab). Please take advantage of the services provided to you by the college. FINANCIAL AID Cabrillo College provides several financial aid opportunities for students. For tuition and/or book assistance information, go to https://www.cabrillo.edu/services/finaid/ STUDENT RIGHTS AND RESPONSIBILITIES You are expected to contribute to a positive learning environment. Your responsibilities as a student include • Respect for your fellow students, staff, and faculty • Actively participating in the learning environment • Taking responsibility for learning and progressing in your course • Requesting assistance from the instructor when needed • Adhere to all academic integrity principles • Reading and understanding the Cabrillo Student Rights and Responsibilities Handbook. (The student grievance procedure is outlined beginning on pg. 18 of the handbook.) • Following all school policies and procedures. All policies and procedures can be found at http://www.cabrillo.edu/associations/governingboard/BoardPolicies.html STUDENT EQUITY Here's a link to the Cabrillo Office of Student Equity website. VETERANS For help with financial aid, counseling, or general information, please visit the Veterans Information Center (Room 914.) CAMPUS RESOURCES Please come see me if you have questions about the resources and support that is available on campus. Some of the resources on Campus (one page; .pdf)