Uploaded by Timmy Quinn

syllabus2560F20-Sec02-4

advertisement
EECE 2560: Fundamentals of Engineering Algorithms
Department of Electrical and Computer Engineering
Fall 2020, MWR 10:30 am - 11:35 am, Kariotis Hall 304
Syllabus
Instructor: Ningfang Mi
E-mail: ningfang@ece.neu.edu
Virtual Office: https://northeastern.zoom.us/j/93240626077
Office hours: Monday noon-1pm or by appointment
Teaching Assistant: Danlin Jia
E-mail: jia.da@husky.neu.edu
Virtual Office: https://northeastern.zoom.us/j/97856445491?pwd=S0s2WE53bitTVzV5SG9LcWpoNUdldz09
Office hours: Wednesday 3-4pm and Thursday 3-4pm
CONTENT
In EECE 2560, you will study a collection of classic algorithmic techniques that are useful for solving engineering
problems. These algorithms include sorting algorithms (e.g., selection sort, quicksort, heapsort), recursive backtracking search, tree algorithms (traversals, binary search algorithms), and graph algorithms (traversals, spanning trees
forests, shortest paths, etc.).
The course covers exhaustive approaches, divide and conquer, greedy algorithms, backtracking, branch and bound,
and iterative improvement. We will also cover algorithm analysis, asymptotic notation, and recursion. Data structures covered include vectors, stacks, queues, trees, graphs, priority queues, hash tables and heaps.
TEXTBOOKS (Optional)
• Introduction to Algorithms, by Cormen, 3rd Edition, 2009.
Other References:
• Introduction to the Design and Analysis of Algorithms by Levitin, 2nd Edition, Addison Wesley, 2007.
• Data Structures With C++ Using STL by Ford and Topp, 2nd Edition, Prentice Hall, 2002.
• Problem Solving, Abstraction, and Design Using C++ by Friedman and Koffman, 5th Edition, Addison-Wesley,
2006.
PREREQUISITES
To take this course, you must:
1. know how to write programs in C++ using arrays, loops, conditional statements, functions, parameters, and
simple I/O,
2. know how to use object-oriented techniques, including classes, constructors, destructors, copy-constructors,
public and private members, reference parameters, and function overloading,
3. know how to use introductory data structures, including arrays, pointers, vectors, stacks and queues,
4. know how to translate high-level descriptions of algorithms in pseudo-code into working C++.
STRUCTURE AND REQUIREMENTS
In this course,
• There will be no midterm or final exam.
• There will be around 5 programming projects (may vary depending on time), which represent 50% of your final
grade. Every about two weeks, I will introduce a new project. Lectures will cover the algorithms and data
structures needed to solve the problem, and I will answer your questions about the assignment.
• Most projects will have two parts. In the first part, you will implement the basic infrastructure, i.e., the classes
and data structures, for the project. In the second part, you will develop, implement and evaluate algorithmic
techniques.
• Projects can be completed in groups of two students. There will be one project submission for each group.
However, each student must completely understand everything about the solutions they turn in.
• There will be a weekly quiz/homework, which represent 50% of your final grade. Each will evaluate your
understanding of the material covered on past projects and lectures.
• Lectures will cover much, but not all, of the required material for the course. There will be reading assignments
that accompany each lecture. Reading assignments will be posted and you are also responsible for this material.
• You are strongly encouraged to attend all lectures, complete all projects, and regularly do the reading.
• We will also use Piazza discussion forum (https://piazza.com/) where you should participate in discussions.
The instructor and the TA will be available to answer questions and give you feedback on your work.
GRADING
Your final grade for the class will be based on the following breakdown:
• Projects 50%
• Quizzes/Homework 50%
Quizzes, homework, and projects are graded on an absolute scale. The class is not graded on a curve.
• The lowest one of your quiz grades will be dropped. But all projects grades will be considered for the final
grade.
• Grades are determined from the total points as follows: 95-100: A; 90-94: A-; 85-89: B+; 80-84: B; 75-79: B-;
70-74: C+; 60-69: C; 50-59: C-; < 50: F.
• Your grades are rounded to the closest integer value when computing your final grade.
POLICIES
• All assignments have fixed due dates and times, by which the assignment files have to be uploaded to Blackboard.
No late submission will be accepted (the Canvas link for the upload will disappear after the due date/time).
• Class attendance is required. If you miss a class, you are responsible for all material that was covered, announcements that were made, and handouts that were distributed in class.
2
• If you miss a quiz or a homework, you will not be allowed to retake it. All requirements must be completed
during the semester. No incomplete will be given.
• You are encouraged to discuss assignments with one another, but all writing of code must be done individually
or within your group. You must not look at another student’s code, or allow another student to see your code.
Copying someone else’s work and presenting it as your own, or submitting the same solution as someone else,
is not allowed.
• If you have a question about the grading of a homework problem you should first contact the teaching assistant
directly. If the issue is not resolved to your satisfaction, please contact me.
• Changes to project and quiz/homework scores will only be made in the first week after the graded work has
been returned to you.
• You should check the class website on Canvas daily for announcements and other information.
• You must adhere to Northeastern University’s Policy on Academic Integrity. If you violate this policy will
receive a lower grade in the course, and may receive an F. You will also be referred to Northeastern’s Office of
Student Conduct where penalties range from deferred suspension to expulsion from the university.
• Exceptions to any course policy may be made if you have a personal emergency that prevents you from
participating in the course. In this case you must make arrangements with me as soon as possible, preferably
within 24 hours.
OTHERS
• Recording of Classes
Classes will be recorded to enable all students to review material covered in synchronous classes. Please contact
me if you have any concerns.
• Academic Integrity
A commitment to the principles of academic integrity is essential to the mission of Northeastern University. The
promotion of independent and original scholarship ensures that students derive the most from their educational
experience and their pursuit of knowledge. Academic dishonesty violates the most fundamental values of an
intellectual community and undermines the achievements of the entire University.
As members of the academic community, students must become familiar with their rights and responsibilities. In
each course, they are responsible for knowing the requirements and restrictions regarding research and writing,
examinations of whatever kind, collaborative work, the use of study aids, the appropriateness of assistance,
and other issues. Students are responsible for learning the conventions of documentation and acknowledgment
of sources in their fields. Northeastern University expects students to complete all examinations, tests, papers,
creative projects, and assignments of any kind according to the highest ethical standards, as set forth either
explicitly or implicitly in this Code or by the direction of instructors.
Go to http://www.northeastern.edu/osccr/academic-integrity-policy/ to access the full academic integrity policy.
• Student Accommodations
Northeastern University and the Disability Resource Center (DRC) are committed to providing disability
services that enable students who qualify under Section 504 of the Rehabilitation Act and the Americans with
Disabilities Act Amendments Act (ADAAA) to participate fully in the activities of the university. To receive
accommodations through the DRC, students must provide appropriate documentation that demonstrates a
current substantially limiting disability.
For more information, visit http://www.northeastern.edu/drc/getting-started-with-the-drc/.
3
• Diversity and Inclusion
Northeastern University is committed to equal opportunity, affirmative action, diversity and social justice while
building a climate of inclusion on and beyond campus. In the classroom, members of the University community
work to cultivate an inclusive environment that denounces discrimination through innovation, collaboration and
an awareness of global perspectives on social justice. It is my intention that students from all backgrounds and
perspectives will be well served by this course, and that the diversity that students bring to this class will be
viewed as an asset. I welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities,
gender expressions, national origins, religious affiliations, sexual orientations, socioeconomic background, family
education level, ability – and other visible and nonvisible differences. All members of this class are expected
to contribute to a respectful, welcoming and inclusive environment for every other member of the class. Your
suggestions are encouraged and appreciated.
Please visit http://www.northeastern.edu/oidi/ for complete information on Diversity and Inclusion.
• TITLE IX
Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination,
including discrimination based on gender-identity, in educational programs and activities that receive federal
financial assistance.
Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual
assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community,
including male, female, transgender students, faculty and staff.
In case of an emergency, please call 911.
Please visit www.northeastern.edu/titleix for a complete list of reporting options and resources both on- and
off-campus
4
Download