CSC 1052 Algorithms & Data Structures II Fall 2021

Section 001

SYLLABUS


Meetings
Lecture: T/Th 4:00-5:15, Mendel G87
Lab: W 4:30-5:20, Mendel G87
Instructor Dr. Thomas Way
160A Mendel Science Center
Email:   thomas.way@villanova.edu
Office hours (See my web site)
Web site
http://www.csc.villanova.edu/~tway, scroll down, click the Teaching button and follow the link for CSC 1052
Textbook We will be using an online e-textbook called Rephactor Java, as well as other online materials. To acquire the text, visit Rephactor.com, click Create Account, follow steps to pay, then join this course with the ID: F21WayCSC1052
Hardware & Software Class: Laptop, Eclipse IDE
Office Hours: Internet access, camera, Zoom
Getting Help
Free and knowledgeable help on Labs and Projects is available for all students in the class from Villanova CS Peer Tutors. To get help, visit the Learner's Studio web page and sign up for a tutoring appointment.
TAs Sam Rizzo
srizzo8@villanova.edu
Zoom office hours:
Thurs. 5:30-7:30pm
Zoom link
   
Description
This is the second course introduction to problem analysis, algorithm design, and the implementation of algorithms in an object-oriented high-level language. It is intended for computer science majors, computer engineers, and other students with a significant interest in programming and computing. The Java programming language is used in this course.
Prerequisites CSC 1051 Algorithms & Data Structures I or CSC 2014 Java Bootcamp
Objectives
In general, the first few weeks will be move at a faster paced, reviewing and covering more material, and building a solid foundation. The remainder of the semester will be weekly deep-dives into a specific concept to gain theoretical and practical mastery of each. Overall objectives are:
  • Reinforce and expand on the material of CSC 1051, with an even stronger emphasis on object-oriented design, and problem analysis and solution design.
  • Establish an understanding of interfaces, inheritance, and polymorphism.
  • Establish an understanding of recursion and recursive programming.
  • Establish an understanding of collections and data structures, including the specification, implementation, and use of: stacks, queues, Java collections, lists, and trees.
  • Establish an understanding of basic algorithm analysis issues, including time/space tradeoffs and algorithm growth rates.
Quick Checks Quizzes, Readings, Extras
Readings consist of topics in Rephactor Java, assigned on a weekly basis using the course syllabus. The reading topic syllabus is accessed from your Rephactor dashboard and should be completed prior to the class meeting that will cover them to maximize your learning.

Quick Check Quizzes at the end of each topic will be used as part of your grade and will verify that you completed the reading. Quick Check assignments, along with their due dates, will be listed on your Rephactor dashboard. They are auto-graded as you complete them. Read more about how Quick Checks are scored.

Easter Eggs are hidden somewhere in each Rephactor topic, and can be found by clicking on specific, italicized words or phrases. If you find all of the Easter Eggs for the topics in your Rephactor syllabus, you'll earn extra credit (* value to be determined).

Exercise Sets
Exercise Set assignments will be assigned on a weekly basis and will be listed on your Rephactor dashboard. These involve a small amount of programming to reinforce what is learned in each week's reading or in preparation for each week's Lab and Project assignments. They are auto-graded as you complete them.
Homeworks
Homeworks are individual and typically involve written responses to exercises, with some occasional light programming possible. They are submitted via Blackboard.
Labs
Labs are individual (or sometimes with a partner) Java programming projects involving more code writing work than Exercise Sets or Projects. They are begun during class lab time and are submitted via Blackboard.
Projects Individual Projects reinforce programming work done in Labs, typically with a slightly different and sometimes more challenging approach. Projects are intended to be done outside of class time and are submitted via Blackboard.
Exams
There will be one Midterm Exam given halfway through the semester and one Final Exam given during final exam week.
Participation
Participation is very important and includes active involvement during class meetings, keeping up with assigned readings and assignments, engaging in class discussions, asking questions, having fun, and maintaining your part in our collaborative learning experience.
Attendance
Attendance is mandatory and will be taken for each class meeting. On rare occasions when a class must be missed, contact the instructor via email ahead of time to obtain an excused absence.
Grading policy
10%  Readings, Quick Check Quizzes, Exercise Sets
10%  Homeworks
45%  Labs / Projects
10%  Midterm Exam
20%  Final Exam
  5%  Participation & Attendance (& Easter Eggs)
Final grades
95 A 87 B+ 77 C+ 67 D+
90 A- 84 B 74 C 64 D
80 B- 70 C- 60 D-
Blackboard
Blackboard will be used to communicate student grades, for handing in homework, labs, project assignments, and while taking exams to submit materials.
Late Assignment Policy
No assignments will be accepted late without the direct consent of the instructor prior to the due date of the assignment. Typical penalty is 10% off for each day an assignment is late. Absolutely no assignments will be accepted beyond the scheduled date of the final exam.
COVID Policy
It will be determined anonymously by the instructor and class members our classroom policy regarding the wearing of masks during class in light of updates to information about transmissibility and in order to accommodate any health concerns. Absences from class because of COVID-19 illness, quarantine, or self-isolation will be excused, and the student will be permitted to make up the work without academic penalty. Course materials will be made available via the course website, and may include recorded class meetings when relevant. Other accommodations will be determined as we go along based on how the semester evolved.
Academic Integrity University Policies

All students are expected to uphold Villanova’s Academic Integrity Policy and Code. Any incident of academic dishonesty will be reported to the Dean of the College of Liberal Arts and Sciences for disciplinary action. For the College’s statement on Academic Integrity, you should  consult the Student Guide to Policies and Procedures. You may view the University’s Academic Integrity Policy and Code, as well as other useful information related to writing papers, at the Academic Integrity Gateway web site.

Computing Sciences Policies

This policy is a supplement to the University policy, specifically addressing issues that relate to academic integrity in computer science courses. Students in this class are expected to conduct themselves in an ethical, professional manner. Working together with other students can be a great way to learn, so it is much encouraged in this class, subject to the following course policies:

  • Practice exercises: you are allowed full collaboration, including looking at each other's code, sharing coding ideas, and helping find bugs.
  • Lab projects: are meant to be done individually (unless designated as joint projects).
  • Discussing projects: A general discussion of an approach, or of the merits of various
    types of algorithms, is encouraged. You can discuss the project goals and help clarify
    requirements. You can also discuss code examples from the labs or other course materials
    that might help with the project.
  • Restrictions on emailing or posting code online: It is against course policy to share work for projects via email or any other electronic means with anyone other than the instructor or the TA. This means that you cannot post your solutions online or share them through any other means, now or at any future date, without explicit permission from the instructor. In cases of sharing with other students in the class, even if you did not intend for your work to be copied, you are already violating the course policies simply by sharing your work electronically. Exceptions to this rule are at the discretion of the instructor. For example, you may request permission to share your work if you would like to use a project solution as part of an e-portfolio or for a job interview.
  • All help must be acknowledged. If any portion of a student's solution uses code or specific design aspects from another source (in print, or from the Internet, or personal interaction), the student must explicitly indicate such a source. It is a clear act of plagiarism to copy a portion of code from a source without attribution, even if modifications are made.
  • Never simply copy or allow someone to copy your work. You must be able to explain in detail any work that you hand in for projects.
  • Exams are, of course, to be done individually.
  • If you have any questions regarding what constitutes plagiarism in the context of this course, do not hesitate to discuss them with your professor.
Accommodations Additional support is available to students who need it through the Villanova's offices of  Learning Support Services and Disabilities Services. It is always recommended to seek out extra assistance and advice early rather than waiting. Friendly, qualified, and confidential help is there for you. It is the policy of Villanova to make reasonable academic accommodations for qualified individuals with disabilities. For physical access or temporarily disabling conditions, please contact Disability Services at 610-519-4095 or send them email. Registration is needed in order to receive accommodations.
Absences for Religious Holidays Villanova University makes every reasonable effort to allow members of the community to observe their religious holidays, consistent with the University’s obligations, responsibilities, and policies. Students who expect to miss a class or assignment due to the observance of a religious holiday should discuss the matter with their professors as soon as possible, normally at least two weeks in advance. Absence from classes or examinations for religious reasons does not relieve students from responsibility for any part of the course work required during the absence.

Last updated: 10/07/2021