CSC122F2020Syllabus

From BU Computer Science
Jump to navigation Jump to search

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

Description

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:

  • Enhance the ability to program
  • Understand different data structures
  • 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.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.
  7. Learn new areas of technology

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 for Fall 2020

  • Professor: Dr. Cathy Bareiss
  • Office SB 027
  • Class Time: 2:00-2:50 PM , MW
  • Lab Time: 2:00-3:50 PM, F
  • Class Location: S 025
  • Textbook: Student membership in ACMl Resources include
    • Skillsoft Learning Center
      1. Data Structures and Algorithms in Java, Sixth Edition by Michael T. Goodrich: Wiley: ISBN: 9781118771334
  • Documentation (java): https://docs.oracle.com/en/java/javase/14/docs/api/index.html

Course Content

Policies

  * Integrity
  * Late work 

Assignments

  1. Turing machine class for Turing Machine Project
  2. Turing machine changes
  3. Stacks and Queues assignment
  4. Lists assignment (war)
  5. Programming in general
  6. Binary Search Tree and Hash Table

Grades

  • Homework and quizzes -> worth 10% of the final grade
  • Programs -> worth 45% of the final grade
  • Exams -> worth 45% of te final grade with the comprehensive final 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 Friday (Lab)
8/18: Review of Programming 8/20: Objects 8/21: Objects
8/24: Linked Lists 8/26: Recursion 8/28: TM Lab 1
8/31: Stacks 9/2: Stacks 9/4: Tm Lab 2
9/7: Queues 9/9: Lists 9/11: Stack/Queue lab
9/14: Exam 9/16: Hashing 9/18: Review Phase 1
9/21: Searching and Hashing 9/23: Exam 9/25:
9/28: Hashing 9/30: Testing 10/2: Review Phase 2
10/5: Sorting 1 10/7: Review and Trees 10/9: Review Phase 3
10/12: Exams 10/14: Trees 10/16:
10/19: Search Trees and Heap sort 10/21: Exam 10/23:
10/26: Priority Queues 10/28: 10/30:
11/2: 11/4: 11/6:
11/9: Exam 11/11: Graphs 11/13: Graph lab
11/16: Graphs 11/ 18: Graphs 11/20: Project lab
11/23: Finals week 11/24: NOTE Tuesday
Final Exam: 1:30pm-3:00pm
11/27: End of Semester

Services

ADA Statement for Syllabi: 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.edu for an appointment.

COVID-19 Adjustments

  • SEATING – After choosing your seat for this class, please consistently sit in the same seat all semester.
  • FACECOVERINGS - All students must wear face coverings in all classes. You have been provided face coverings for this purpose. If you forget your face covering, and can’t retrieve it and be back in the classroom quickly, you will need to find a private space to synchronously livestream this class or be counted absent.
  • LIVESTREAMING - This class is being livestreamed and stored in Canvas for watching only by a student enrolled in this class. The purpose of the livestreaming/recorded lecture is to accommodate a student who is being quarantined or isolated due to COVID-19. Abusing this feature by letting other students not enrolled in this class view the recording or privately videotaping the recording will be considered a violation of the Campus Lifestyle Covenant. However, when you are ill or participating in a campus sponsored event (like a sport team) you are encouraged to view the recording at a later time.