Instructor:
Naseef Mansoor, Ph.D. (Pronouns: He/Him/His)
Office: WH 235
TA: TBD
Class Technology:
1. Laptop or desktop with microphone and web camera.
2. High-speed Internet access capable of streaming both audio and video.
3. Software/Apps: D2L Brightspace, Zoom (For online Classes only), Zybooks, Lockdown Browser
For IT issues please consider contacting IT Solutions Center.
Course Description:
This course builds on CIS 122 (Data Structures) with coverage of advanced data structures and associated algorithms, including trees, graphs, hashing, searching, priority queues, and memory management. Analysis of best, worst, and expected cases, and the development of efficient
algorithms are emphasized.
Learning Outcomes:
Understand and use asymptotic bound notations (upper bounds, lower bounds and tight or exact bounds etc.) for measuring algorithm complexity and compare the complexity of simple algorithms.
Choose an efficient algorithmic strategy to solve a problem (e.g. brute-force, greedy, divide-and-conquer, recursion, dynamic programming, etc.)
Implement fundamental algorithms and data structures, including searching, sorting, hashing, trees, graphs, and text manipulation.
Prerequisite:
IT 214/CIS 122 and MATH 121
Course Materials:
Sign in or create an account at learn.zybooks.com. Enter the zyBook code provided in class. Subscribe.
There is a subscription fee.
Additional Resources:
Data Structures and Algorithm (Referred as GTG in the slide)
Online Python IDE (replit)
Programming Language:
We will be using Python (You should be familiar with Python from IT 210/CIS 121). As you will be doing most of the programming/coding, pick any IDE you are comfortable with.
Course Website:
Log in at https://mnsu.ims.mnscu.edu/d2l/home and find the ### CIS 223-xx Algorithms. This website will be used for:
Any related reading materials (if needed).
All class related announcements will be posted on the d2l page.
Students should check the course homepage one hour before the class for new announcements.
How to Maximize Learning in this course:
To maximize your learning, you should plan to attend lectures and participate in the class activities.
Work on any in class problems.
Work on the coding assignments and homeworks. The homework and coding assignments may require a good amount of time. Please start working on the homework and coding assignments early so that you can complete it by the deadline.
Go over the lecture slides, coding assignments, homework, in class practice and your notes before the exams.
Assessments:
Homeworks: Homeworks will be submitted via the zybook. Homeworks submitted outside the deadline will not be graded. No extension is available.
Coding Assignments: Coding assignments will be submitted via zybook. No extension is available.
Quiz: There are Four Quizzes in this course. All quizzes will be conducted via d2l and will include combination of MCQ/MSQ/Fill-in-the-blanks/written response questions (coding). Quizzes require lockdown browser. At least 25% and at most 40% grade of each quiz will be on coding. There is no partial grade for the coding problems.
Final: The final exam is scheduled during the final week of the semester and will be conducted via d2l similar to quizzes.
Note:
The use of generative AI tools (such as ChatGPT, DALL-E, etc.) are not permitted in this class; therefore, any use of AI tools for work in this class may be considered a violation of Minnesota State University, Mankato’s Academic Honesty policy, since the work is not your own. The use of unauthorized AI tools will result in an F grade. Also, check the academic honesty policy section.
Rules for Quizzes and Final: Below are the rules for the quizzes and finals. If any of these rules are violated, a zero will be assigned for that test.
Students are not allowed to use cell phones, headphones, or EarPods during the test.
Students cannot have cell phones or any other electronic device (laptop, iPad etc.) on the desk during the test.
Students are encouraged not to use the restroom during the test.
If allowed students can use cheat sheets, scrap paper, calculator for the quiz.
If any of these rules are violated, a zero will be assigned for that test.
Grading:
Your course grade will be based on the quality of work submitted for homework assignments, coding challenges, quizzes, and exams. All work will be graded numerically and weighted based on the following table for final grade calculation. Grades for each item will be posted on D2L.
Bonus: Based on your attendance and participation you will receive bonus points in the course. Below of the distribution of the bonus.
Grading Scale:
Letter grades will be assigned at the end of the semester according to the following scale. Students must have a percentage at or above the value listed to earn the corresponding letter grade. The percentage is calculated by weighing each grade item based on the table above.
Note:
Grades are based on the quality of your work and on how well you are prepared for class. If you believe something has been graded incorrectly, or if a grade has been recorded incorrectly, an email message must be sent to the instructor stating your concern no later than one week after the grade has been posted. Queries on grade after a week of grade posting will not be considered.