代做EECS 280: Programming and Introductory Data Structures Fall 2024代写C/C++编程

EECS 280: Programming and Introductory Data Structures

Fall 2024

Computer science fundamentals, with programming in C++. Build a satistical analysis tool, an image processing program, a Euchre card game, a machine learning algorithm, and a text editor. Analyze and implement foundational data structures.

Course Overview

Lectures are offered via in-person, recorded, and asynchronous formats.

· You may attend or engage with any lecture, regardless of your registered lecture section.

· Participation in live lecture is optionally worth 3% of your overall grade. We'll compute it both ways and take the higher. You can max out this credit even if you miss a few lectures.

Labs are in-person, with exercises completed in small groups. Course staff facilitate lab sessions and are available for questions. Lab attendance is required. We will drop the two lowest lab scores for each student at the end of the term.

Projects may be completed either alone or in a partnership and turned in to an autograder. Exams will be in-person, on-paper, at a scheduled time.

Office hours will be held in-person and virtually, both one-on-one and in groups.

Communication

eecs280.org links to all course resources and is required reading.

Ed is the course discussion forum, best for technical questions and project help. Do not publicly post your code.

Administrative request forms via eecs280.org are best for:

· Assignment extensions/exceptions due to medical or personal emergencies · Assignment extensions for students adding the course late

· Excused lab absences due to illness (separate from the regular lab drops)

· SSD documentation and accommodation requests

· Alternate exam requests

eecs280admin@umich.edu reaches the EECS 280 faculty and administrators (not IAs or GSIs).

Canvas is where we publish important announcements and grades. It is your responsibility to verify you can receive Canvas announcements. Please do not send messages to instructors via Canvas. It is difficult to track these messages and we want to ensure you receive a prompt reply.

Discord is best for social stuff.

Getting Help

Ed is the course discussion forum, best for technical questions and project help. Do not publicly post your code.

Staff office hours. Check the calendar.

Professor office hours. Check the calendar.

Administrative request forms via eecs280.org for things like extension requests.

Tutoring outside the course.

Diversity and Inclusion

We care about our course community and want it to be a place where all students feel included, valued, and safe to learn from and with others. Diversity of thought and of people are important to us. We ask that you treat all other students with respect and work to create an inclusive community, and we hold ourselves to the same standard. Please feel free to contact us with any problem, concern, or suggestion. You may also report any concerns or misconduct via the resources linked at https://cse.engin.umich.edu/about/reporting-concerns-and-misconduct/.

Computer and Network Recommendations

We recommend you have a personal laptop consistent with CAEN recommendations.

Test your internet connection with the U-M Custom Speedtest website and make sure it meets the minimum requirements for any UM service. You'll need more bandwidth if there will be multiple simultaneous users in your household.

Resources for help with computing equipment:

Information and Technology Services (ITS) Laptop loaner program

College of Engineering (CoE) Office of Student Affairs, email requests to coe-studentaffairs@umich.edu

You may also use computer workstations in CAEN labs on campus or connect remotely.

Curriculum

EECS 280 is a second-semester foundational programming course. You'll learn how to write correct programs that are easy for others to understand and modify. We focus on computer science concepts including:

Value and reference semantics               Container Data Structures

Functional abstraction                            Recursion

Data abstraction                                    Generic Programming

Inheritance and Polymorphism                Higher-Order Functions

Dynamic resource management              Testing and debugging

Compound Types                                   Stacks and queues

Encapsulation                                        Linked lists and binary trees

In our exploration of these concepts, we cover many elements of the C++ language:

Arrays and Vectors              Derived types

File and stream I/O             The Big Three

Strings                               Templates

Pointers                              Iterators

Structs and classes               Functors

Operator overloading             Exceptions

Textbook

The course notes cover the same material as lecture, sometimes in more depth or with additional examples.

(Optional) C++ Primer by Lippman, Lajoie and Moo. 5th edition. May be used as a reference for the C++ language.

Many C++ reference materials are freely available online.

Prerequisites

ENGR 101 or ENGR 151 or EECS 180 or EECS 183 or ROB 102 with a minimum grade of "C". Prerequisites may be waived with transfer credit or a proficiency exam. Contact the CSE Advising Office in Beyster 2808 or at ugadmin@eecs.umich.edu.

Exams

There will be one midterm exam and one final exam, administered in-person, on-paper, at a scheduled time. Exam dates are posted on eecs280.org.

Alternate Exams

We may provide alternate exam times for students with a valid, documented conflict with a required activity in another course or official university-affiliated activity, or to help students avoid negative academic consequences when their religious obligations conflict with academic requirements.

We also provide alternate exams in cases of unanticipated medical or personal emergencies.

All requests for alternate exams must be submitted through the administrative form. linked on the course website.

Labs

Lab sessions are 110 minutes, starting at the scheduled time. Course staff facilitate labs and are available for questions. At the start of the term, you'll receive two lab group assignments, group A and group B. You'll work on two deliverables during lab:

1. Main Worksheet ~85 min

Work with group A on practice exercises, tutorials, and group coding mini-projects. Submit a single main worksheet as a group to Gradescope.

2. Debrief Worksheet ~20 min

Work with group B on a short "debrief" worksheet, reviewing or building on your work from the main exercises.

Submit a single debrief worksheet as a group to Gradescope.

Every other lab, the roles of groups A and B switch. e.g. For lab 1, work with A for main exercises and debrief with B. For lab 2, work with B for main exercises and debrief with A. And so on...

Labs are graded on completion of both worksheets and submission to Gradescope. Attendance is required to earn any credit for lab. Attendance is taken 30 minutes into the main worktime. Individuals will not receive credit for the lab unless they are present when attendance is taken. Students who leave before completing the debrief with their second group will not receive attendance credit.

Projects

You will complete six major programming projects ranging in size from ~100 to ~1,000 lines of code.

Project 1: Statistics. Implement a two-sample statistical analysis tool.

Project 2: Computer Vision. Resize images without distortion.

Project 3: Euchre. Simulate a card game popular in Michigan.

Project 4: Machine Learning. Automatically identify the subject of EECS 280 forum posts.

Project 5: Text Editor. Interactively edit text files via the terminal.

Project 6: Binary Search Tree. Implement an efficient map using a binary search tree.

NOTE: In previous terms of EECS 280, we released projects 4 and 6 as a single, combined project. This term, it is split into two individual projects, but the overall workload is unchanged.

We update and improve the projects from time to time, so they may change any time before the project release date.

Retaking the Course

If you are retaking the course and plan to work alone on a project, you are allowed to reuse your own code. If you choose to work with a partner, you should start the project from scratch to ensure the best learning experience for you and your partner.

Project Partnerships

Partnership Availability

Project 1 is done independently by each student.

You may work either alone or in a partnership for the remaining projects.

Partnering Rules

Eligibility: You may only partner with students registered in EECS 280 this term (any section).

Collaboration: Both students must engage fully in all aspects of the project. Dividing the project into separate components to work on independently is not allowed.

Changing Partners: You may change partners between projects but not during a project. In exceptional cases, you may request partnership dissolution via email to eecs280admin@umich.edu. If dissolution is granted, both partners may use previously shared code, but both must work alone on the remainder of the project.

Submission and Grading

Registration: You must register your partnership on the autograder before submitting.

Submissions: You and your partner share the same number of submissions allowed per day as granted to individuals.

Grading: Both partners receive the same final grade overall for a project.

Collaboration Strategies

If you are working with a partner, collaboration is key to your success. Adopt the following strategies to work effectively as a team:

Collaboration: Complete most of the project together during shared worktime, whether in person or virtual.

Pair Programming: Write code together (e.g. one person types, the other reviews) to enable collaborative learning opportunities, catch errors earlier, and promote better program design.

Task Rotation: Rotate roles and responsibilities regularly to ensure both partners gain experience with all aspects of the project.

Planning and Communication: Set expectations for work habits and milestones for project completion. Establish means of communication and expected norms for response time.

Shared Documentation: Maintain a shared document for notes, ideas, and updates to keep everyone on the same page.

Mutual Support: Offer and seek help from your partner when faced with difficulties. Collaboration is about leveraging each other's strengths.

Discuss these strategies with potential partners before you begin working together. If you don't agree on these strategies, you should opt to work alone or seek other partners. Not everyone is a great fit together, and that's okay.

Responsibility and Honor Code

Accountability: Each student is responsible for the complete project. Both must understand and be able to explain every component of the project.

Honor Code: Any honor code violation, such as plagiarism or unauthorized collaboration, will be the responsibility of both students in the group. Work together with integrity and adhere to the honor code at all times. By following these strategies, you will enhance your learning experience and develop valuable teamwork skills essential in the professional world.

Project Grading

We use a web-based autograder to evaluate correctness, style, and the thoroughness of your tests.

Before the deadline, you may submit up to 3 times per day. After each submission, the autograder shows the results of the public tests released with the project.

After the deadline, the autograder shows the results of private tests, which are usually more thorough than the public tests.

Your final project score is a combination of public and private tests. We use the submission that received the combined best score. If multiple submissions share the best score, we grade the last.

Some projects have a checkpoint worth a small portion of the overall course grade. The full submission for each project is worth the remaining portion. See the course schedule and project specifications for more details.

Programming Environment

You are free to develop on any platform. You are responsible for any differences between your preferred platform. and the autograder platform, so use only ANSI/ISO standard C++17 and compile with the provided Makefile or equivalent compiler options. It is essential to submit your code early and often so that you can identify and fix any compatibility issues reported by the autograder.

Project Tips

Tips for doing well on the projects include:

Start early. This is the most common problem.

Try a debugger. One major goal of this course is for you to learn to test and debug your programs independently.

Ask for help. We want to help you in office hours!

Back up. We can't help you with lost data.

Grades

Letter grades are assigned on a straight scale with curved exams. In general, our goal is be consistent with past semesters.

You can estimate your letter grade using our grade calculator.

Assignment Weighting

We calculate your total weighted score using these weights.

Assignment Weight

Lab (all labs equal weight)                                                                     5%

Projects (P1=4%, P2=10%, P3=10%, P4=5%, P5=10%, P6=5%)            44%

Midterm Exam                                                                                      25%

Final Exam                                                                                           25%

Entry and Exit surveys                                                                            1%

Total                                                                                                    100%





热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图