CSC 122: Programming 2: Data Structures: 3 hours.

15 Nov 2021 - 15:36 | Version 1 |

Description

A continuation of Programming 1. Students learn data structures including stacks, queues, trees, lists, graphs. Other data structures and sorting and searching are covered. Students learn both how to use the data structures via standard api's and how to implement them. 2 lectures and one lab per week. Lab: CSC 122. Prerequisite: CSC 121

Goals for CSC 122 are:

  1. Enhance the ability to program
  2. Understand different data structures
  3. Be able to use different data structures well

Course outcomes for CSC 122 are:

  • Upon completion of CSC 122, students will know:
    • how to use and build different data structures including stacks, queues, trees, graphs, and lists
    • a number of different searches and sorts (including O(nlogn) sorts)
    • how to identify Big-O for given algorithms
    • how to completely document code and programs
    • how to thoroughly test a program (including most error conditions)
    • how to identify some potential security issues with code being developed
    • the importance of designing before coding and practice it when warranted.

Program outcomes for CSC 122 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program\x92s discipline. (Computing student learning outcome 2)
  3. Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program\x92s discipline. (Computing student learning outcome 5)
  6. Learn new areas of technology. (Computing student learning outcome 6)

Integration

  1. Self-learning at the introductory level by having some programming assignments that include using some simple features not covered in class (such as using a pre-defined data type)
  2. Note taking at the introductory level by not posting lecture notes and holding students responsible for the content.
  3. Technical writing at the application level by requiring students to do a formal software development report and requiring quality writing (and grading the quality of the writing), Also by the end of the semester by refusing to accept reports that don't meet a bare min. standard (such as standards, spell check, using bullet lists as appropriate.
  4. Team work at the introductory level by having at least two assignments where students are working in pairs with one developing the data structure and the other using it. Students need to take on both roles during the semester. Students also might have a third assignment where they are assigned one of the two roles and they have a partner that they don't know and must only communicate via the interface.
  5. Professionalism at the introductory level by having students track how long it takes to write programs (so that they are better equip to estimate this in the future) and comment on what they learned and what they would want to to better with a program if they could.
  6. Cybersecurity at an introductory level by requiring students to document possible invalid input what happens for all programs. By the end of the semester, they should handle some of the invalid input (i.e. secure programming).
  7. Ethics at an introductory level by having at least one program assigned that could have ethical implications and having the students discuss that in their reports.

Details

  • Professor: Dr. Cathy Bareiss
  • Office SB 031
  • Class Time: MW 2:00-2:50
  • Lab Time: F 2:00-4:50
  • Class Location: S 025
  • Textbook: Data Structures and Program Design Using Java: A Self-Teaching Introduction by Dheeraj Malhotra, Neha Malhotra. ISBN: 9781683924647. Free with student membership in ACM via Skill Soft Library
  • Additional resources: (All free with ACM student membership from Skill Soft)
    • Handbook of Data Structures and Applications, Second Edition
    • Data Structures and the Java Collections Framework, Third Edition
    • Courses starting with "Data Structures & Algorithms in Java"
    • Courses starting with "Advanced Data Structures & Algorithms in Java"
  • Additional Resources from O'Reilly (also free with ACM Student membership)
    • Beginning Java Data Structures and Algorithms
    • Video: From 0 to 1: Data Structures & Algorithms in Java
  • Foundational work in Data Structures: (from O'Reilly)
    • Art of Computer Programming, The: Volume 1: Fundamental Algorithms
    • Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd Edition
    • Art of Computer Programming, The: Volume 3: Sorting and Searching
    • Art of Computer Programming, Volume 4A, The: Combinatorial Algorithms, Part 1

Course Content

Policies

Assignments

Homework

Grades

  • Homework, etc. is worth 10% of the final grade
  • Programs are worth 40% of the final grade
  • Exams are worth 50% of the final grade with the cumulative final being worth twice a normal exam
  • Grade scale
    • 93% <= average <= 100% → A
    • 90% <= average < 93% → A-
    • 87% <= average < 90% → B+
    • 83% <= average < 87% → B
    • 80% <= average < 83% → B-
    • 77% <= average < 80% → C+
    • 73% <= average < 77% → C
    • 70% <= average < 73% → C-
    • 67% <= average < 70% → D+
    • 63% <= average < 67% → D
    • 60% <= average < 63% → D-
    • 0% <= average < 60% → F

Tentative Schedule

Monday Wednesday Wed. LabSorted ascending Friday: Review and Lab
8/16: 8/18:   8/20: Lab 1
Review of Java Code
8 23: Chapter 1
Syllabus & Intro to Data Structures
8/25: Chapters 1 & 4
Intro to Data Structures & Java
  8/27: Lab 2
Turing Machine Design
8/30: Chapters 2 & 3
Arrays & Linked Lists
9/1: Chapter 5
Queues
  9/3: Lab 3
Turing Machine Code
9/6: Labor Day 9/8: Chapters 5 & 7
Queues and Stacks
  9/10: Lab 4
Hard drive simulator: Stack and Queue Design
12/6: Final Exam week
Graph code due at midnight
12/8: Final Exam:
1:00-2:50
  12/10:
10/11: Sorts/Review 10/13: Tree Exam code start 10/15: Lab 7: Tree Code
10/25: Interfaces 10/27: Hashing (Chap 10) code start 10/29: Lab 9: Sort/Search Code
11/29: Graph design due (8:00am)
Exam 4 (hashing, graphs, ethical programming)
12/1: Review coding started 12/3: Lab 13: Graph Code
9/20: Exam 1 9/22: Chapter 8
Trees
Debugging help 9/24: Lab 6
Tree Design
11/1: Secure programming 11/3: Chapter 12
Graphs
design and code 11/5: Lab 10: Sort/Search Code
9/27: Chapters 8 & 9
Trees
9/29: Chapter 9
Search Trees
Design fix 10/1: CCSC:MW
9/13: Chapter 7
Stacks
9/15: Chapter 8
Trees
Design help. 9/17: Exam Review
Lab 5
Hard drive simulator: Stack and Queue Code
10/18: Chapter 11
Files
10/20: Adv Sorts and Searches design start 10/22: Lab 8: Sort/Search Design
11/15: Graphs 11/17: Graphs
(Hash code due midnight)
design start 11/19: Lab 12: Graph Design
11/8: Chapter 12
Graphs
Sort Code due (midnight)
11/10: Exam (Sorting/Search/Interfaces/Inheritance/Files/Secure programming) Hash code start 11/12: Lab 11: Hash Code
10/4: Searches/Sorting (Chap. 6) 10/6: Searching/Sorting (Chap 6.) testing discussion 10/8: Fall Break
11/22: Ethical programming 11/24: Thanksgiving Break Thanksgiving break 11/26: Thanksgiving Break

Campus Integrity Policy

The student handbook (p. 156) states: “Any act of deceit, falsehood or stealing by unethically copying or using someone else’s work in an academic situation is strictly prohibited.

  1. A student found guilty of plagiarism or cheating will receive an “F”(zero) for that particular paper, assignment or exam. Should this occur, the professor will have an interview with the student and will submit a written report of the incident to the academic dean.
  2. If a second offense should occur, the student will be asked to appear before the professor, the academic dean and the vice president for student development.

The student should realize that at this point continuation in a course and even his/her academic career may be in jeopardy. In the event of a recommendation for dismissal, the matter shall be referred to the Student Development Committee.”

Covid Policy

Everyone should follow the current Bethel University covid policy. See: https://www.betheluniversity.edu/intheknow for details

Services

The Americans with Disabilities Act (ADA) is a law which provides civil rights protection for people with disabilities. Bethel University, in compliance with equal access laws, requests that students with disabilities seeking to acquire accommodations make an appointment with the Center for Academic Success—Disability Services. It is located in the Miller-Moore Academic Center, 033. You may also phone 574-807-7460 or email rachel.kennedy@betheluniversity.com.edu for an appointment.

DEI Statement

During this particularly difficult time, this statement momentarily underscores and deepens what is expressed in the Lifestyle Covenant regarding the dignity of all humans. The statement will remain in all Bethel Faculty syllabi until spring 2023 and then be remanded back to the Faculty. Bethel University respects the dignity of all God’s image-bearers, and stands against racism, prejudice, and discrimination. Because Christ calls us to love our neighbor as ourselves, Christian discipleship includes pursuing the good of those who suffer injustice due to their color, race, or ethnicity. Therefore, we aim to continually transform our classrooms into safe and hospitable spaces where we listen to one another with mercy, learn from and value each other with tenacity, and commit to pursuing justice for the most vulnerable in our community.

Education Majors:

Please use the link below to review all appropriate standards. Standards
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
This website is using cookies. More info. That's Fine