CS计算机代考程序代写 data structure Java algorithm CS 2336

CS 2336
Computer Science II (Java)
Spring 2021 Syllabus
UTD
INSTRUCTOR INFORMATION
Name Jason Smith E-mail Address smith@utdallas.edu
Office ECSS 3.232
Office Phone 972-883-4835
Office Hours: M/W 2:00 – 3:30 PM
COURSE INFORMATION
Tu/Th 2:30 – 3:30 PM
No appointment necessary; just show up at the times above.
All office hours will be held virtually through Blackboard Collaborate.
Please use the link provided in eLearning
Questions: All questions must be in person (class time and office hours) or posted
to Piazza (http://piazza.com/utdallas/Spring2021/cs2336)
Course Number Credit Hours Meeting Time Room
CE/CS 2336.001
3
M/W 10:00 – 11:15 AM
All classes will be held through Microsoft Teams at the regular class time. Students unable to attend may download recordings of the lecture.
ASYNCHRONOUS OPTION
Any student may elect to take this class asynchronously at any time during the semester. Students
choosing the asynchronous option must email me at least 48 hours prior to the first
asynchronous class. This will give me time to adjust the attendance settings. If you elect the
asynchronous option, please note that the due dates and times still apply to you. The biggest
difference will be how/when you view the lectures. The lectures will be given in Microsoft Teams and
the recordings of all lectures will be posted in Microsoft Stream. A link to Microsoft Teams and
Microsoft Stream is available in eLearning.
Exams will be given during the scheduled class time. If you are an asynchronous student and
the time of the exam conflicts with your schedule, you may schedule your exam at a
different time on the same day. Arrangements for a different time must be made at least
48 hours in advance of the day of the exam. Once the exam starts, the exam must be
completed within the allotted time limit
DO YOU NEED ASSISTANCE?
Problem Solving Procedure
1. Trytosolveityourself–usetheinternettoresearchtheproblemandtrydifferentsolutions. If you can’t solve it after a couple of hours move to the next level.
2. Consultwithyourclassmates–PostyourquestioninPiazza(ortheclassGroupMeorDiscord server). On Piazza, you will be able to post your questions (anonymously if you wish) about anything related to the class and get a response either from me or a classmate. Private
Page 1 of 9

posts (that only I can see) should be reserved for grade related questions or questions involving large snippets of code. Since there are multiple people that can answer questions, youshouldgetaquickerresponseallowingyoutocompletethetasksyouareworkingon. If your question can’t be answered there, move to the next level.
3. VisittheCSMC–Ifyourclassmatescan’tanswerthequestion,checkwithamentoratthe CSMC (https://csmc.utdallas.edu). If the CSMC mentors can’t answer your question, move to the next level.
4. Visitmeduringofficehours–Ifyouaretrulystumped,Iwillgiveyoutheinformationyou need to move forward.
Help Desk: For help with issues regarding your computer, UTD maintains a walk-in help desk. Visit their Web site for details: http://www.utdallas.edu/ir/helpdesk/
If you need help, please make the effort to reach out. We can’t help you if we don’t know that you need help.
Resources:
• http://javabeginnerstutorial.com/core-java/
• http://stackoverflow.com/questions/tagged/java
• http://introcs.cs.princeton.edu/java/10elements/
WHAT DO I NEED FOR CLASS?
• A Webcam (Required):
If you need help obtaining any of the required class resources below, please contact me.
I will help you get access to the required tools.
This course will use Honorlock – an online exam proctoring tool. To
successfully take an exam, you must have a web camera with microphone, a laptop or desktop
computer (no tablets/phones), Chrome browser, a reliable internet connection and a photo ID
(anything with your picture and name). Before starting the exam, you will be prompted to install
the Honorlock Chrome Extension (which you can remove after you finish the test) if it is not
already installed. You will then go through the authentication process. The web camera will
monitor you throughout your test. Please see the Testing Guidelines and Support Information for
additional information.
You do not need a fancy webcam. Webcams can be purchased for less than 30 dollars on
Amazon. If your laptop has a webcam, you do not need to purchase a different one.
• Textbook (Required) o Zybooks
o CS 2336 – Computer Science II o ISBN: 978-1-394-06875-3
• Java (Required)
o All projects you submit will be executed with Java SE 11. This is a free download for all
OS’s. http://www.oracle.com/technetwork/java/javase/downloads/index.html
o You may use any IDE you prefer.
▪ If you prefer not setting up an IDE, you can use an online IDE such as Online GDB
(https://www.onlinegdb.com/)
Page 2 of 9

• Note Taking Supplies – I expect you to actively take notes. Anything we cover in class or you read in the textbook is fair game on a test. Have something available to collect all the knowledge given to you (be that in physical or digital form).
REQUIRED COURSE INFORMATION SECTION
Course Prerequisite: CE/CS/TE 1337 with a grade of C or better or equivalent.
Course Pre-/Co-requisite: currently taking CE/CS/TE 2305 or have earned a C or better in CE/CS/TE 2305 (or equivalent).
Description of Course Content: Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Includes comprehensive programming projects. Programming language of choice is Java.
Student Learning Outcomes: Students will be able to implement different data structures using the Java programming language. They will be able use different data structures to program solutions to solve real problems. It will also help them understand algorithmic analysis and complexities. After successful completion of this course, you should be able to:
• Ability to implement recursive algorithms
• Ability to implement linked lists, stacks, and queues
• Ability to implement a binary tree
• Ability to use hash tables and graphs
• Ability to understand algorithmic analysis
• Ability to create a comprehensive programming project
• Ability to implement and use generics/templates
Departmental Attendance Policy: The Computer Science Department has implemented the following attendance:
If a student misses three consecutive classes, the student will receive a letter grade reduction to his or her final grade. This deduction is cumulative, so if a student misses three consecutive classes twice, the final grade will be reduced by two letter grades. If a student misses four consecutive classes, the student will automatically receive an F for his or her final grade.
Attendance will be taken each class through eLearning. Students will be presented with a question in class during the lecture and must answer the question in eLearning. Asynchronous students must watch the lecture and complete the activity within 24 hours of the start of class for that day.
WHAT I EXPECT OF EACH STUDENT
• Ask for help at any time. If you do not understand something or are having trouble implementing a concept, reach out. During lecture, before/after class, during office hours, at 3 AM while cramming for an exam, etc. I really mean any time. The sooner you ask that question, the sooner you will get an answer. That answer will allow you to move forward. I want you to succeed; don’t be afraid to ask a question.
• Take responsibility for your education. I will treat this course as similar to a professional setting as I can. I am not the type of teacher that lectures with slides and expects students to memorize. I will teach by creating program examples in class. I will give challenging
Page 3 of 9

assignments to push you toward learning the intricacies of Java and the foundations of data structures.
Part of being a professional is learning how to teach yourself. I am going to guide you through the topics of the semester, but a significant portion of what you take with you to the next class will be things that you learned on your own.
• Practice time management skills. All assignments (homework and projects) are designed to be worked on over a period of days or weeks. I expect that you will work on the assignmentalittleatatimeratherthanwaitinguntiladayortwobeforeitisdue. Those that procrastinate will find this class to be much harder than it should be and will face the risk of below average grades.
• Attend every class. You are paying for an education. Don’t waste your money by skipping class.
• Make mistakes! This is how you learn how to do something. Don’t be discouraged when something goes wrong. Programming takes lots of practice and mistakes will always happen. Study the mistakes you made so that you can learn the correct way to do it.
• Read the chapter before the corresponding lecture (see class schedule below). I use class time to write programs that help illustrate the topics mentioned in each chapter. If a student doesn’t have minimal knowledge of the concepts that will be covered for that chapter (which are gained by reading the chapter), it will be harder to get a deeper connection to what we are accomplishing in class.
WHAT EACH STUDENT SHOULD EXPECT
• A problem solving class. This class is not a programming class. Computer science is all about problem solving. The content of this class is to teach you how to solve problems using a computer. In order to solve those problems, you will need to learn a foreign language (Java) and write solutions that the computer can interpret.
• An open environment dedicated to learning. I want students to feel free to voice their opinions. Oftentimes as we code in class, I will ask students what they would do in a certain situation. I want each student to feel as if he/she can speak freely and also be open for other students to discuss that idea, even if that means that some students will disagree.
• Class commitment of 10 hours a week on average outside of class. Students should be prepared to tackle multiple course-related activities each week (e.g. reading the textbook, studying for quizzes/exams, practicing programming, etc.). Procrastinating on an assignment will largely increase the number of hours spent each week.
• Exams focused on application. I do not create run-of-the-mill multiple choice exams that ask students to regurgitate things from memory. The exams are completely different than anything you have had in any other class (unless you’ve had me for a previous class). I expect you to apply the knowledge you have learned to the situations on the test. Questions on the test are designed to make sure that you understand what you are doing rather than repeating an example from your notes or the textbook.
• A simulated professional experience. The projects in this class require you to exercise strategies found in “the real world”. Your logic for a project may force you to learn new techniques that haven’t yet been discussed in class. You will have to perform code maintenance and improve the efficiency of previously written code. These things offer a small taste of how life might be once you graduate and are given large sums of money by a
Page 4 of 9

company seeking your skills.
• A deep understanding of Java and basic data structures. My goal is for you to know all of the topics of CS 2336 as well (if not better) than me, and I’m going to push you toward that goal. You should have peace of mind moving on in your program because you will be fully prepared to tackle what the next course in the sequence will throw at you.
Grading Scale:
Grade Components:
Project Zero 5% Projects (4) 40% Exams (2) 25% Preview Homework 10% Review Homework 20%
THE INFORMATION YOU REALLY CARE ABOUT
98-100 A+
88-89 B+
78-79 C+
68-69 D+
Below 60 F
92-97 A
82-87 B
72-77 C
62-67 D
90-91 A-
80-81 B-
70-71 C-
60-61 D
General Grade Information: All grades will be available in eLearning. The Weighted Total column will give you the most accurate information concerning your grade. The weighted total is an approximation of your grade in the class based on the grades currently in eLearning.
I do not curve grades. Assignments are combined into categories so that a low grade for one item will not destroy your grade. There are also opportunities provided to help students who may have done poorly on projects and exams.
Grade Disputes: All grade disputes must be reported within 1 week and resolved within 2 weeks of the grade in question being posted in eLearning. Uncontested grades will become final after 1 week and cannot be disputed later. Announcements are made after each grade is posted so please check your grades promptly and reach out to the proper person.
I am responsible for grading your exams. If you have questions regarding your exam, please contact me through a private post on Piazza.
Everything else will be graded by a TA. Please address any grading concerns you have regarding these grades with the TA.
Projects: Projects will be major programming assignments that supplement recently discussed topics and will be completed in two to three weeks. Projects are intended to take approximately 15-20 hours to complete overall; this includes the design, coding and testing process. Waiting until a couple of days before the due date to start the project is a bad idea. Not only does this introduce unnecessary stress into your life, it hardly ever ends well for the student. Most students score poorly on projects that are built in less than three days.
Projects will be divided into milestones as you would expect to see in the professional world. The milestones for each project are as follows:
• Design (4 days)
• Core implementation (7-10 days)
• Final implementation and testing (7-10 days)
Each milestone will be graded and the total of all three milestones will contribute toward the overall grade for the project. Each milestone will have a firm deadline and failure to meet the
When you email the TA with questions about your
grade, copy me on the email so that I am aware of the situation and can make sure it
is resolved.
Page 5 of 9

deadlines will have a negative impact on your grade.
Projects are individual endeavors and students are not to work in groups on any project. Students are permitted (and I openly encourage students) to discuss the project. Feel free to share ideas on the logic, but DO NOT SHOW YOUR CODE TO OTHER STUDENTS. When discussing logic, try to keep it general. If you give out every little piece of logic you have, there is a good chance the person you are helping will have very similar code as yours and may be flagged for being too similar. Be careful of posting your code online. Another student could use your code without your knowledge and could involve you in a code plagiarism referral.
Students should avoid using web sites like GitHub and Chegg for help on projects. Copying code from a web site is considered plagiarism and will be treated as such. If you find code on a web site, it is highly likely another student will find it as well which may cause both submissions to be flagged for similarity.
All projects will be submitted in ZyBooks and will be compared for originality. Any projects that are approximate or identical copies will be reported to the Office of Community Standards and Conduct, and I will accept their decision in regards to the grade if they believe that academic dishonesty has occurred.
Programming assignments will be graded on a 100 point basis. Not only will your project be graded on proper execution, but also things like efficiency, implementation and documentation. Keep in mind that you always want to write code that is easy to understand and is also easy to maintain. Fewer lines do not necessarily mean a better program. Please use comments liberally.
You are responsible for testing your project thoroughly before submission. I will not give you the exact test cases that will be used for grading before the project is due. As a computer scientist, you must be able to identify all possible input and make sure that your code produces proper output and does not crash.
Late Projects:
All project milestones will be due at 11:59 PM on the day listed in the project documentation. The final project code will be accepted up to 12 hours late with the following penalties
Preview Homework: Preview homework assignments are questions based on the reading. These assignments will be in the form of quizzes in eLearning. Students will read the chapter and answer basic questions about the material to illustrate how well they understand the general concepts.
Review Homework: Review homework assignments are generally short coding assignments that can be done in 1-2 hours that measure how well you understand the material we have covered. These assignments are typically due 1 week from the date given.
Exams: Exams will cover chapters as listed below in the tentative course schedule. Exams will include a variety of question types including multiple choice, multiple answer and essay questions. Students are expected to be able to apply knowledge from all previous chapters in conjunction with the tested chapters. Exams are not created to make you feel smart; they are designed for you to demonstrate your understanding of the concepts. A high score on an exam
<= 1 hour -5 points 1 – 3 hours -10 points 3 – 12 hours -25 points 12 – 24 hours -50 points Page 6 of 9 exhibits a deep understanding of the topics. An exam should not be missed except for the most extreme circumstances (such as hospitalization or death of an immediate family member). If you miss an exam, you must have documentation for the absence. A make-up exam may be given to students with valid documentation. The allowance of a make-up exam is at the sole discretion of the instructor. All exams will be given online in eLearning. Students are expected to take the exam at a location of their choosing during the window of availability decided by the professor. The exams will be closed book and closed notes. Each student is expected to take the test on their own without help from other people or internet sources. All solutions to coding problems on the test will be submitted for similarity in an effort to maintain academic integrity. You must start the exam within 15 minutes of the test start time. Failure to do so will result in a 10 point penalty on the exam. Assignment Due Date Exceptions: In general, assignments are not accepted late except for the final project code. However, I know that life has a way of bringing the unexpected at the most inopportune times. If you have a life situation (personally or academically) that is creating difficulty for you to meet the given due date of an assignment, I will work with you to give an extension as long as you contact me before the due date. ARE WE THERE YET? All dates are subject to change at the discretion of the instructor Date Topic 1/20 Introduction to CS 2336 Introduction to Debugging Elementary Java 1/25 Methods Recursion 1/26 Last day to add/swap classes 1/27 Characters and Strings Files 2/1 Single-Dimensional Arrays Multidimensional Arrays 2/3 Last day to withdraw without “W” Objects and Classes 2/8 Inheritance and Polymorphism 2/10 Inheritance and Polymorphism Arraylists 2/22 Linked Lists 2/24 Linked Lists 3/1 Exception Handling 3/3 Exception Handling Generics 3/8 Generics Page 7 of 9 3/10 Interfaces 3/12 Mid-Term Exam (Java Syntax and Concepts) SPRING BREAK! 3/15 – 3/21 3/22 Stacks, Queues 3/24 Stacks, Queues 3/29 Binary Search Trees 3/31 Binary Search Trees Last day to withdraw 4/5 Binary Search Trees 4/7 Binary Search Trees 4/12 Hashing 4/14 Hashing 4/19 Hashing 4/21 Graphs 4/26 Graphs 4/28 Graphs Measuring Algorithm Efficiency Big-O Notation 5/3 5/5 Algorithm Efficiency of Data Structures 5/14 Final Exam (Data Structures) Assignment Calendar All assignments due by 11:59 on the due date listed unless otherwise noted All submissions are made using the provided links in eLearning Assignment Post Date Due Date Project Zero Core Implementation 1/20 1/27 Project Zero Final Submission 1/20 2/3 Inheritance, Polymorphism and Arraylist Preview 1/20 2/7 Project 1 Pseudocode 2/3 2/7 Linked Lists Preview 1/20 2/14 Project 1 Core Implementation 2/3 2/14 Exception Handling Preview 1/20 2/28 Project 1 Final Submission 2/3 2/28 Project 2 Pseudocode 2/24 3/2 Generics Preview 1/20 3/7 Project 2 Core Implementation 2/22 3/9 Page 8 of 9 Interfaces Preview 1/20 3/11 Mid-term Exam 3/12 3/12 Stacks and Queues Preview 1/20 3/21 Project 2 Final Submission 2/22 3/22 Review Homework 1 3/8 3/26 Project 3 Pseudocode 3/22 3/26 Binary Search Trees Preview #1 1/20 3/28 Project 3 Core Implementation 3/22 4/2 Binary Search Trees Preview #2 1/20 4/4 Hashing Preview 1/20 4/11 Project 3 Final Submission 3/22 4/9 Project 4 Pseudocode 4/7 4/13 Review Homework 2 4/14 4/20 Graphs Preview 1/20 4/20 Project 4 Final Submission 4/7 4/30 Algorithm Efficiency Preview 1/20 5/2 Review Homework 3 4/26 5/2 Review Homework 4 5/3 5/8 Final Exam 5/14 5/14 University Policies: For all other University policies, please visit http://go.utdallas.edu/syllabus-policies Page 9 of 9