Algorithms and Data Structures I is an introductory course in the computer science major/minor. No prior experience is required. This course will introduce fundamental concepts of programming and algorithmic design using an object-oriented approach. Topics include data representation, numeric expressions, control sequences, recursion, conditional statements, functions, classes, object-oriented design, collections, sorting, runtime analysis, and error handling. Though the course will be taught using the Java programming language, the concepts are widely transferable to other programming languages.
At the conclusion of the course, students should be able to:
- Establish an understanding of fundamental object-oriented software concepts, including objects, classes, and encapsulation.
- Establish an understanding of core programming concepts, including algorithms, data storage, control structures, and method invocation.
- Design and implement a small program/application that makes use of library classes and one or two student-created classes.
- Demonstrate a fundamental proficiency in programming using the Java programming language.
Course Materials and Resources
- Textbook: Rephactor (Course code: NovaFa23_CS1051_Grant)
- IDE: jGRASP bundled with OpenJDK (download here)
- Microsoft Teams (link, Code: zr5sy0t)
- Reading Quizzes (5%)
- Labs (20%)
- Homework (20%)
- Exam 1 (10%)
- Exam 2 (10%)
- Exam 3 (10%)
- Final Exam (20%)
- Attendance and Participation (5%)
Final letter grades will be assigned as such:
A: >= 94%, A-: >=90, B+: >= 87, B: >= 83, B-: >=80, C+: >= 77, C: >= 73, C-: >=70, D+: >= 67, D: >= 63, D-: >=60, F: <60
There will be an opportunity for extra credit at the end of the semester.
Late submission and missed work Policies
- Late penalty. Homework will be accepted up to 24 hours after the due date without a penalty.
- Dropping the lowest score. You will be allowed one excused homework assignment (the lowest grade will be dropped).
- Excused absences and extensions. No assignments will be accepted after one week of its due date, including those for university official excused absences. This allows graded material to be returned at a reasonable time and for the solution to be disseminated to all students. Excused absences requiring greater than a week to complete missing work will be dropped, increasing the weight of all other assignments.
Take a moment to review the University’s policies and guidelines for academic integrity, including the university’s new policies regarding the use of artificial intelligent systems such as ChatGPT. Additionally, please review the supplemental academic integrity policy from the computing science department (below). Violations of the academic honor code will be reported, which may result in grade penalties up to and including failure of the course.
Computing Sciences Academic Integrity 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:
- For lab assignments and other practice exercises you are allowed full collaboration, including looking at each other’s code, sharing coding ideas, and helping find bugs.
- Programming projects and homework assignments are meant to be done individually (unless designated as a joint project)
- 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 submit.
- Quizzes and exams must be completed individually.
- If you have any questions regarding what constitutes plagiarism in the context of this course, do not hesitate to discuss your concerns with your professor.
Attendance is mandatory at all class meetings. Where possible, students should inform the instructor if they plan to be late or absent from class. Excused absences do not count toward a failure in the course for first year students. Four or more unexcused absences may result in failure of the course. Absence from class does not release the student from work assigned. Students who miss an in-class obligation (exam, presentation, etc.) due to an excused absence will not be penalized – arrangements including a make-up assignment, alternate time for a presentation, or exemption from the assignment will be made in such circumstances.
Please make a concerted effort to minimize classroom distractions. Refrain from using computers, tablets, cell phones, etc. for non-educational purposes or for work not related to this class. Drinks with a closed lid are permitted, but please refrain from eating in class.
Office of Disabilities (ODS) and Learning Support Services (LSS)
It is the policy of Villanova to make reasonable academic accommodations for qualified individuals with disabilities. All students who need accommodations should go to Clockwork for Students via myNOVA to complete the Online Intake or to send accommodation letters to professors. Go to the LSS website or the ODS website for registration guidelines and instructions. If you have any questions please contact LSS at 610-519-5176 or email@example.com, or ODS at 610-519-3209 or firstname.lastname@example.org.
It is common for college students to feel overwhelmed by academic or personal matters. The University Counseling Center, located in 206 Health Services Building, offers individual counseling to discuss personal concerns. More information can be found on their website or you can also reach them by phone: (610) 519-4050.
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.
Villanova University supports an inclusive learning environment where diversity and individual differences are respected, appreciated, and recognized as a source of strength and intellectual inquiry. Our different backgrounds, experiences, and perspectives enrich our learning together; they are welcome and valued in this course. We will demonstrate respect and diligence in understanding how other peoples’ perspectives, behaviors, and world views may be different from our own and how they inform our own understanding. As it is every member’s responsibility to contribute to the creation of a healthy and safe community, students are required to comply with University health and safety directives, guidelines, rules, regulations and protocols in times of emergency and/or public health concern. Violations may be referred for action under the Code of Student Conduct.
The materials used in Villanova University courses (“Course Materials”) generally represent the intellectual property of course instructors, third parties and/or the University which may not be disseminated or reproduced in any form for public distribution (e.g., sale, exchange, etc.) without the written permission of the course instructor. Course Materials include all written or electronic documents and materials, including syllabi, current and past examination questions/answers, and presentations such as lectures, videos, PowerPoints, etc., provided by a course instructor. Course Materials may only be used by students enrolled in the course for academic (course-related) purposes. None of these materials may be (i) retained after the course term expires, (ii) further disseminated, or (iii) accessed by or made available to others. Published course readings (book chapters, articles, reports, etc.) available in Blackboard are copyrighted material. These works are made available to students through licensed databases or fair use. They are protected by copyright law and may not be further disseminated or reproduced in any form for distribution (e.g., uploading to websites, sale, exchange, etc.) without permission of the copyright owner.