Cmpsc 132 Syllabus - Fall 2019 PDF

Title Cmpsc 132 Syllabus - Fall 2019
Course Elementary Statistics Mts W/Stat 200H.3
Institution The Pennsylvania State University
Pages 11
File Size 319.2 KB
File Type PDF
Total Downloads 79
Total Views 200

Summary

Download Cmpsc 132 Syllabus - Fall 2019 PDF


Description

CMPSC132 - Programming and Computation II: Data Structures Fall 2019 Department of Computer Science & Engineering The Pennsylvania State University Prerequisite:

CMPSC 131 - Programming and Computation I: Fundamentals. Students are expected to be fluent with the basic syntax of Python to take this course.

Course Materials:

Required software: Python 3.5 or later from https://www.python.org/downloads/, or you can also install Miniconda (https://conda.io/miniconda.html), just be sure to get the Python 3 version. Older versions of Python are not permitted to use for any class activities. Textbook and references: o “Data Structures and Algorithms in Python” by Tamassia and Goldwasser ** o Python 3 Documentation https://docs.python.org/3/ ** An online version of the textbook is available at no cost as a Penn State Libraries E-Book. You can access the E-Book through the Library Resources link on the course navigation In Canvas. You may choose to use the E-Book as an alternative to purchasing a physical copy of the text. For questions or issues, you can contact the University Libraries Reserve Help ([email protected])

Instructor:

Griselda Conejo-Lopez Email: [email protected] Office: W119 Westgate Building

Office hours:

Instructor: Monday and Wednesday, 5:00 PM to 6:30 PM, W119 Westgate Building Virtual office hours on Thursday by appointment Teaching Assistants: TBD

Website:

Canvas - Handouts, homework, video lectures, class announcements and solutions Piazza – For class discussion. Gradescope – For assignment/exam submission

Class time and location:

This is a WEB lecture section course. However, in-person recitations classes are available to work on all the course material, including video lectures , assignments and extra credit activities. Recitation attendance is expected, especially if you need assistance with the course material. Section 1: Tu 9:05AM - 10:20AM , Keller Bldg 115 Section 2: Tu 10:35AM - 11:50AM, Keller Bldg 115 Section 3: Tu 12:05PM - 1:20PM, Willard Bldg 064 Section 4: Tu 1:35PM - 2:50PM, Keller Bldg 115 Section 5: Tu 3:05PM - 4:20PM, Keller Bldg 211 Section 6: Tu 4:35PM - 5:50PM, Willard Bldg 064 Section 7: Tu 10:35AM - 11:50AM, Willard Bldg 064 Section 8: Tu 1:35PM - 2:50PM, Keller Bldg 210 Classes begin on Monday, August 26. Recitation classes start on August 27 Classes end on Friday, December 13

Course Description CMPSC-132 builds upon the foundations of programming and computation by introducing and studying the data structures and programming language features that support the design and construction of large-scale software systems. It introduces the foundations of object-oriented programming, the design and analysis of efficient algorithms using important data structures, and programming techniques that support reusable and modular program components, including data abstraction, polymorphism, and higher-order functions. This course builds upon the foundations of programming and computation by introducing and studying: ▪ The data structures and programming language features that support the design and construction of largescale software systems. ▪ Data structures for the design and analysis of efficient algorithms ▪ Object-oriented and functional programming in Python ▪ Abstract data types ▪ Elementary complexity theory ▪ Searching and Sorting algorithms ▪ Elementary programming language theory Learning Outcomes By the end of this course students will be able to: ▪ Design and implement computational solutions to problems in standard style. ▪ Minimize and remove program errors. ▪ Analyze the efficiency of algorithms. (“Big-O” run time analysis of algorithms) ▪ Balance between metrics such as short running time and program conciseness. ▪ Design and implement a software system composed of modular reusable software components. ▪ Write, debug and predict the behavior of programs. Lectures Recordings and readings will be provided as preparation for each module. Students are expected to watch and read the material prior the completion of their assignments and before the assigned due date. The biggest factor that can help you in this course is to ask questions and keep up with the assigned activities, exercises and assignments. Time organization is one of the most important keys to succeed in this course (see the course schedule for release dates), students must watch the videos as soon as they are available. Please do not fall behind; many students who fall behind have a rough time trying to catch up. Examinations There will be two evening examinations and a final exam. Both evening examinations have two components, a conceptual part, based on material from the notes and video lectures, and a coding part, where students are asked to write working code. See the course schedule for examination dates. There will be NO make-up exams given during the semester except in extreme circumstances, as determined by the instructor. All conceptual examinations will be closed book and no cell phones allowed. Coding examinations are open book, however, you can only access course materials on Canvas and Gradescope (notes, assignments). You can read Penn State’s Examination Policy at https://senate.psu.edu/policies-and-rules-for-undergraduate-students/44-00-examinations/ Assignments Each module has problems assigned for you to work on, most of which will involve writing, debugging, and testing programs. These assignments come in t wo categories: lab exercises and homework assignments. All assignments will be collected electronically on the specified due date and time. Assignments must be turned in before the date and time indicated to be considered "on-time". Assignments turned in late will NOT be accepted. Please do not email the instructor asking to take your submission, those requests will be ignored. Each module has a due date to complete all the assignments. Don’t wait until the last minute to complete your work!

Lab Exercises: This type of assignments are simple exercises that will help you reinforce class concepts. You can complete and submit these on your own time before the scheduled due date. Lab exercises are scored on correct completion. Each Lab assignment will be graded in 10 based score, to receive credit, you must achieve the goal of the assignment and pass all test cases in order to get full credit. Partial credit will not be provided for failed test cases. Make sure you debug and test your code! Homework: This type of assignments will help you improve your skills to solve problems using Python. Start homework early, so you can have enough time to ask questions and discuss ideas with your classmates or the staff on Piazza/office hours. Each Homework assignment will be graded in 100 based score. Partial credit would be provided for failed test cases based on the effort and structure/syntax of your code. You are encouraged to discuss the assignments with other students, as long as you write your own code and submit your own work. Finding a study group is a great idea. The purpose of the assignments is for you to learn the course material, not to prove that you already know it. Therefore, you can expect to receive substantial assistance from the instructor, teaching and learning assistants when you start working on your assignments early and ask for help. Your grade will ultimately be based on showing effort on every assignment, even if you don't pass all the tests. Reasonable effort on the homework involves, at minimum: • Writing code for each function • Documenting your code • Passing all the doctests provided in the starter code • Showing that multiple attempts were made at solving the remaining problems which can be demonstrated by: - Working on problems for an extended period of time (i.e. there is evidence that work was done on the homework in advance of the night it is due) - Testing your code with your own examples to find bugs in your work - Passing a subset of the doctests provided Assignments that don’t run due to syntax errors (missing colons, indentation errors, etc) will not be graded at all. The assignment examples provided in the starter code ARE NOT EXHAUSTIVE, you are responsible for defining your own edge cases, so be clear on what counts as an edge case . You will not be given the full range of edge cases, that is part of understanding and solving the problem. Appearances can be deceptive, make sure you are always returning the right data type described in the instructions’ file. You are responsible for writing solutions yourself. If you are stuck on a problem, discuss ideas with fellow students using Piazza or come get help during recitation/office hours instead of copying the answer from someone else or the Internet. you'll still get credit and won't be flagged for cheating. You may discuss abstract design with fellow students, but when the discussion turns to Python language details, all students need to be working on their own. All assignments will be passed into a system for determining the similarity of programs. Any plagiarism detected will be reported to the University’s Office of Conduct Standards, and a 0 score will be given in that assignment for both parties involved (copied from and copier). Repeated offenders may receive a failing grade in the course, but this is handled by the College Academic Integrity committee. Office Hours Attending office hours is another excellent way to succeed in this course. You can ask questions about the material and receive guidance on assignments. Office hour schedule is available on Canvas. Gradescope Gradescope provides a language-agnostic platform that manages manage accepting student submissions, running test at scale, and distributing the results back to students. All your assignments will be submitted here (unless told otherwise). Prior the due date, your code will be tested with the examples provided in the starter code. If your

submission didn't pass the example tests, you need to fix your code in your text editor until the tests passes. The doctest is provided as an example of code functionality. Getting the same result as the doctest does not guarantee full credit. You are responsible for debugging and testing with additional cases, however, under no circumstances you should be using Gradescope for debugging or testing! The work must be done in your text editor and Python interpreter, Gradescope is the mechanism to submit your work only. Grading Method and Percentage There is no curve in this course. The course grades will consist of the following items: 5 Homework Assignments 15 Lab Exercises Quiz 1 Conceptual Part Coding Part Quiz 2 Conceptual Part Coding Part Final Exam

30% 20% (labs lowest score will be dropped) 15% 50% 50% 15% 60% 40% 20%

Letter grade guidelines are given in the following table: Score Cut-off >93 90-92.99 87-89.99 83-86.99 80-82.99 77-79.99 70-76.99 60-69.99 Under 60 Letter Grade

A

A-

B+

B

B-

C+

C

D

F

Regarding grades, Canvas should only be considered as the mechanism to store your grades. Canvas "Total score" should not be considered a guideline for course performance. For that, follow the "Grading method and percentage" provided in this syllabus. Course Policies and Expectations of Students Late drop deadline As a reminder, you may drop the course until Friday, November 15 at 11:59 pm EST Final exam conflict deadline The filing period for Final Exam Conflict is September 23 - October 13. Once the Registrar's Office announces final exam dates, it is your responsibility to file for conflict if a final exam overload situation exits. To request relief from an overload situation you can visit https://www.registrar.psu.edu/exams/exam_overload.cfm for more details Withdrawal deadline As a reminder, you may withdraw the course until Friday, December 13 at 5:00 pm EST Email Policy You may expect me to respond to emails between 9 am and 4 pm Monday through Friday. Please check the syllabus, course schedule, video lectures, announcements and assignment PDF sheets provided on Canvas before you send your question as I will not respond to requests for information contained in the course handouts. I am happy to use email to respond to fairly simple queries about class concepts, methodologies to write code or about your current code, but under no circumstances I will debug or complete code for you!

Lateness Policy Students have the responsibility for completing all class work and are expected to meet all deadlines for assignments and tests. However, everyone can encounter circumstances that prevent them from submitting assignments on time. Late coursework will only be accepted without penalty due to illness (a doctor’s note MUST be obtained as evidence for this) or due to University-approved conflict/activities (supporting documentation MUST be provided). All requests for extension must be submitted before the deadline and must be approved by the instructor. Keep in mind that excuses like 'I forgot to submit', 'I had other exams/homework/work', 'I was on a trip', etc., are not valid reasons for requesting an extension. Recitation Attendance Policy Recitation attendance is expected, especially if you need assistance with the course material. Optional discussion material will be provided in some of the recitations throughout the semester for extra practice. Attending your scheduled recitation section and working on CMPSCS132 material or discussion material only will earn you one recitation credit per attended recitation. You are allowed to attend more than one recitation per week, however, you can only earn one recitation credit per week. There are 12 recitations you can use to earn recitation credits (The first recitation of the semester and the 2 recitations designated for the coding part of the quizzes cannot be used to earn recitation credits). Recitation credits can be used to recover points on exams (1 recitation credit = 1.5 exam points) and are approved on the spot only by the Teaching Assistant in charge of the recitation. A total of 9 recitation credits can be used for this purpose. The purpose of this policy is to ensure that students who continue to invest time in the course throughout the semester are able to pass. Submission and Debugging Policy Homework assignments and Labs require code to be submitted. Take responsibility for your course work submissions; it is your job to make sure that you successfully turned in what you meant to turn in. Be sure to verify your submission. This is how you make sure that you get credit for the work you do. Excuses like 'I submitted the wrong file', ‘The file is damaged’ or ' I forgot to click Submit but I did the assignment' will not be accepted to regrade work. Although each student may have a particular style for writing their code, it is very difficult for an instructor or grader to figure out all your program errors, therefore, students are expected to write their code as clear and consistently formatted as possible. Code clarity is crucial for your assignments in this class. For this reason, using good style (good variable names and good commenting practices) is required on all coding homework assignments. Failure to sufficiently comment or use good style will result in a deduction of up to 10% of your assignment grade. It is students’ responsibility to achieve the stated goal of the homework/exercise prior the submission of their code, as neither graders, teaching assistants nor the instructor will debug it to make it work. All submitted code must run correctly in the Python 3 environment set up in Module 0, otherwise, your code might not get credit. For all assignments, no partial credit will be provided for code that does not work properly and according to the requirements established in each assignment. Assignments that do not run/compile due to syntax errors will receive zero credit. Please be sure to test the code you submit before turning in the assignment to ensure that it works. Class Discussions This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the Teaching and Learning Assistants, and the instructor. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. Find our class page at: piazza.com/psu/fall2019/cmpsc_132, the access code is 132fall. We encourage you to answer each other’s questions! However, sharing complete working code on Piazza is not allowed. Regrading Policy If you feel that there is an error in the grading of a homework, lab or exam, it should be returned to Teaching/Learning Assistants with a brief description of the error within one week of grade release during recitation or their office hours.

Take into account the information provided in the Assignments section and our Submission and Debugging Policy before requesting a regrade. If after talking with a TA/LA you are not satisfied with your grade, you may contact the instructor for further evaluation. Scores will not be reconsidered after one week, no exceptions. Requesting Assistance Policy Be prepared when you go to get help from a Learning Assistant or your instructor. Sending an email with your code asking what is wrong? Or why is not working? are not clear or helpful ways to ask for help. Remember that the LAs and the instructor are here to guide you, not to complete your homework. Instead, walk us through your code: “I am doing X to get Y but I am getting W”. Use the Python Debugger (or any other debugger you prefer) before asking for help. Collaboration Policy Collaboration with other students in this CMPSC 132 class is an important learning method that helps students to create higher quality code and improve their learning. However, collaboration has a limit, and in this class that limit is sharing code. You are free to discuss the problems with others beforehand, but you must write your own solutions. If you are unsure if what you are doing is cheating, please clarify with the instructor or Learning Assistants. The following guidelines will help you understand the difference between collaboration and plagiarism: - Students may only collaborate with fellow students currently taking CMPSC 132, the LA’s and the instructor. Collaboration means talking through problems, assisting with debugging, explaining a concept, etc. You should not exchange code or write code for others. - Your submission must not be substantially similar to another student's submission. Collaboration at a reasonable level will not result in substantially similar code. - Do not copy solutions from online sources such as Stack Overflow, Pastebin, and public repositories on GitHub. - Do not post your solutions publicly during or after the semester. If you find a solution online, please submit a link to that solution anonymously. When a solution is found online, we record it and use it to check for copying. By reporting online solutions, you help us keep the course fair for everyone. In summary, students are expected to hand in their own work. The assignments and evaluations are structured to help you learn, which is why you are here. Rather than copying someone else's work, ask for help!!! Remember that you are not alone in this course. The instructor and Learning Assistants are here to help you succeed. If you invest the time to learn the material and complete the assignments, you will not need to copy any answers. Keep in mind that you are allowed to discuss ideas with other students currently in CMPSC 132. Do give credit though using the collaboration statement. TA’s, LA’s and the instructor should be treated as course material and need not be listed in the collaboration statement. For all assignments, you must write comments at the top of each file you turn in detailing the following information: - Your name - Collaboration statement - the wording of the collaboration statement should be: o "I worked on this assignment alone, using only this semester's course materials" OR o "I worked on this homework with [give the names of the people you worked with] and referred to [cite an...


Similar Free PDFs