COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the...

6
COS 161 (Section 1) - Algorithms in Programming 4 Credits Spring 2019 Administrative Information 1. Instructor: Hady Ahmady Phoulady 2. Department: Computer Science 3. Meeting Time and Location: Tue/Thu, 1:15 pm - 2:30 pm, Luther Bonney Talbot Lecture Hall 4. Lab Meeting Time and Location: Tue, 2:45 pm - 3:45 pm, Luther Bonney 203 5. Office: 228 Science Building 6. Office Hours: Tue/Thu, 5:30 pm - 6:45 pm, or by appointment 7. E-Mail: [email protected] 8. Phone: (207) 228-8401 Course Description The development of algorithms and their implementations in a higher-level programming language, with emphasis on proper design principles, advanced programming concepts, and introduction to the performance analysis of algorithms. Course requirements include a substantial number of programming projects. Prerequisites COS 160 - Structured Problem Solving. Course Objectives Upon completion of this course, students will be: 1. familiar with fundamental data structures and their associated algorithms; 2. familiar with array and linked implementations of stacks, queues, and lists; 3. familiar with sorting and searching algorithms; 4. comfortable with the idea of recursion; 5. able to apply these elements in their practice. Required Textbook “Building Java Programs: A Back to Basics Approach”, by Stuart Reges and Marty Stepp. Grading Grading Rubric 1. Attendance: 10%; 2. Thirteen Lab Assignments (four graded): 10%; 3. Five Programming Projects: 35%; 4. Midterm: 20%; 5. Final exam (cumulative): 25%. Grading Scale Your weighted average for the course, using the above rubric, must be greater than or equal to <avg> in order to receive a grade of <grade>. DRAFT Copyright 2019 Hady Ahmady Phoulady

Transcript of COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the...

Page 1: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

COS 161 (Section 1) - Algorithms in Programming

4 CreditsSpring 2019

• Administrative Information

1. Instructor: Hady Ahmady Phoulady

2. Department: Computer Science

3. Meeting Time and Location: Tue/Thu, 1:15 pm - 2:30 pm, Luther Bonney Talbot Lecture Hall

4. Lab Meeting Time and Location: Tue, 2:45 pm - 3:45 pm, Luther Bonney 203

5. Office: 228 Science Building

6. Office Hours: Tue/Thu, 5:30 pm - 6:45 pm, or by appointment

7. E-Mail: [email protected]

8. Phone: (207) 228-8401

• Course Description

– The development of algorithms and their implementations in a higher-level programming language,with emphasis on proper design principles, advanced programming concepts, and introduction to theperformance analysis of algorithms. Course requirements include a substantial number of programmingprojects.

• Prerequisites

– COS 160 - Structured Problem Solving.

• Course ObjectivesUpon completion of this course, students will be:

1. familiar with fundamental data structures and their associated algorithms;

2. familiar with array and linked implementations of stacks, queues, and lists;

3. familiar with sorting and searching algorithms;

4. comfortable with the idea of recursion;

5. able to apply these elements in their practice.

• Required Textbook

– “Building Java Programs: A Back to Basics Approach”, by Stuart Reges and Marty Stepp.

• Grading

– Grading Rubric

1. Attendance: 10%;

2. Thirteen Lab Assignments (four graded): 10%;

3. Five Programming Projects: 35%;

4. Midterm: 20%;

5. Final exam (cumulative): 25%.

– Grading ScaleYour weighted average for the course, using the above rubric, must be greater than or equal to <avg>in order to receive a grade of <grade>.

DRAFT

Copyright 2019 Hady Ahmady Phoulady

Page 2: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

<avg> <grade>

90.0% A

80.0% B

70.0% C

60.0% D

0% F

– The instructor reserves the right to make minor adjustments to the grading scale based on classaverages.

– The instructor reserves the right to make minor adjustments to students’ grades based on their atten-dance, participation in discussions, or progress.

– The instructor reserves the right to use the +/- grading system.

• Course Policies & Procedures

– Exams

∗ Requests for make-up examinations will not be entertained. I will only make exceptions to thispolicy in case of excused absences. You must provide sufficient documentation to prove that yourabsence is excused.

∗ You must bring your University of Southern Maine identification card to each exam. The identi-fication card will be verified during each exam.

∗ The dates provided for the exams are tentative. Changes to an exam date will be announcedin-class at least one week prior to the exam.

– Labs

∗ Only the last 4 lab assignments (assignments 10-13) will be graded. No submission is needed forthe first 9 lab assignments. However, attendance will be counted towards the final lab grade.

∗ Late submissions will be penalized 25% of the possible points for the entire assignment for each24 hour period late.

∗ If the codes do not run you will earn 0 points for both the code portion of your grade and theresults portion of your grade. You have the opportunity of fixing your code for 25% penalty (inaddition to any late penalty).

∗ When you submit your codes to Blackboard, submit a single zip file (if there are more than onefile) including only the files that you have changed. You should skip any other files that have notbeen changed during your work.

∗ Labs should be done in groups of 2-3 students. If you do not have other students to work with,notify the instructor to put you in a group. If you submit your code by yourself your assignmentmight not be graded (unless you were previously permitted to do so).

∗ It is advised that group members try to write the codes by themselves and if they need help,discuss it with other group members, TA or instructor to help them with their own version of thecode. At the end, you can decide which code to submit and that will be graded for the wholegroup (for the last 4 assignments).

– Projects

∗ Similar to the labs assignments, you have to work in groups of 2-3 students and submit it by 11:59pm of due date in the calendar (read other related policies for group assignments from the Labssection).

∗ Late submissions and code errors will be penalized similar to the lab assignments.

∗ Projects will be graded based on the achieved results, and completeness.

– Regrade Policies

∗ Regrade requests must be submitted, in writing, to the instructor within seven calendar days ofeither: (1) the date the graded material is returned in class or (2) the date the grades are postedon Canvas, whichever occurs first.

DRAFT

Copyright 2019 Hady Ahmady Phoulady

Page 3: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

∗ Regrade requests must be written on a separate sheet of paper and must be attached to youroriginal submission.

∗ Regrade requests must specify the question(s) or parts to be regraded. Regrade requests mustinclude a brief description of why the question(s) or parts should be regraded.

∗ The instructor reserves the right to regrade the entire submission.

∗ Graded material which has been modified in any way since it was returned to the student will notbe regraded.

– Attendance Policies

∗ Students are expected to attend all classes.

∗ You are responsible for all material presented during each lecture. Material presented during thelecture may not be in the textbook or the uploaded notes/slides.

∗ Students who anticipate the necessity of being absent from class due to the observation of a majorreligious observance must provide notice of the date(s) to the instructor, in writing, by the secondclass meeting.

– Hand-written work must be legible. If your work is illegible it will not be graded (i.e., you will earn agrade of 0).

– The instructor reserves the right to interpret the class policies if confusions occur.

• Academic Integrity/Academic Dishonesty

– Everyone associated with the University of Southern Maine is expected to adhere to the principlesof academic integrity central to the academic function of the University. Any breach of academicintegrity represents a serious offense. Each student has a responsibility to know the standards ofconduct and expectations of academic integrity that apply to academic tasks. Violations of studentacademic integrity include any actions that attempt to promote or enhance the academic standing ofany student by dishonest means. Cheating on an examination, stealing the words or ideas of another(i.e., plagiarism), making statements known to be false or misleading, falsifying the results of one’sresearch, improperly using library materials or computer files, or altering or forging academic recordsare examples of violations of this policy which are contrary to the academic purposes for which theUniversity exists. Acts that violate academic integrity disrupt the educational process and are notacceptable.

Evidence of a violation of the academic integrity policy will normally result in disciplinary action. Acopy of the complete policy may be obtained from the Dean of Students Office, online at www.usm.

maine.edu/deanofstudents or by calling and requesting a copy at 207-780-5242.

• University Policies and Resources

– Americans with Disabilities (ADA) Notification / AccommodationsThe university is committed to providing students with documented disabilities equal access to alluniversity programs and services. If you think you have a disability and would like to request accom-modations, you must register with the Disability Services Center. Timely notification is essential. TheDisability Services Center can be reached by calling 207-780-4706 or by email at [email protected] you have already received a faculty accommodation letter from the Disability Services Center, pleaseprovide me with that information as soon as possible. Please make a private appointment so that wecan review your accommodations.

– Learning Commons & TutoringTutoring services include writing, critical reading, academic coaching, study skills and time man-agement. Walk-in tutoring is available at the Glickman Library in Portland, the Gorham Library,and the LAC Writing Center. For best service, we recommend making an appointment at https:

//usm.maine.edu/learningcommons/schedule-tutoring-appointment. Questions about tutoringshould be directed to Paul Dexter at 207-780-5577.

DRAFT

Copyright 2019 Hady Ahmady Phoulady

Page 4: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

– CounselingCounseling is available at USM. The best way to schedule an appointment is to email [email protected]. More information is available at https://usm.maine.edu/uhcs.

– Nondiscrimination PolicyThe University of Maine System does not discriminate on the grounds of race, color, religion, sex,sexual orientation, including transgender status and gender expression, national origin, citizenshipstatus, age, disability, genetic information or veteran’s status in employment, education, and allother programs and activities. Please contact Lynda Dec, CHRO & Affirmative Action, Equal Op-portunity, and Title IX support for USM 45 Exeter Street, Portland, ME, 207-262-7911, Email:[email protected] with questions or concerns.

– Statement on Religious Observance for USM StudentsAbsence for Religious Holy Days: The University of Southern Maine respects the religious beliefsof all members of the community, affirms their rights to observe significant religious holy days, andwill make reasonable accommodations, upon request, for such observances. If a student’s religiousobservance is in conflict with the academic experience, they should inform their instructor(s) of theclass or other school functions that will be affected. It is the student’s responsibility to make thenecessary arrangements mutually agreed upon with the instructor(s).

– Title IX StatementThe University of Southern Maine is committed to making our campuses safer places for students.Because of this commitment, and our federal obligations, faculty and other employees are consideredmandated reporters when it comes to experiences of interpersonal violence (sexual assault, sexualharassment, dating or domestic violence, and stalking). Disclosures of interpersonal violence mustbe passed along to the University’s Deputy Title IX Coordinator who can help provide support andacademic remedies for students who have been impacted. More information can be found onlineat http://usm.maine.edu/campus-safety-project or by contacting Sarah E. Holmes at [email protected] or 207-780-5767.

• Tentative Schedule

– Orientation

– Lecture 1: Java Basics and Static Methods (A Review) (chapters 1-6 – 3 meetings)

– Lecture 2: Semantics and Multidimensional Arrays (chapter 7 – 1 meeting)

– Lecture 3: Eclipse IDE (1 meeting)

– Lecture 4: Classes, Objects, Constructors and Encapsulation (chapter 8 – 3 meetings)

– Lecture 5: Inheritance, Polymorphism and Interfaces (chapter 9 – 4 meetings)

– Lecture 6: ArrayList and Comparable Interface (chapter 9 – 2 meetings)

– Lecture 7: LinkedList and Iterators (section 11.1, and chapter 16 – 2 meetings)

– Lecture 8: Sets and Maps (sections 11.2-3 – 2 meetings)

– Lecture 9: Recursion (chapter 12 – 4 meetings)

– Lecture 10: Searching and Sorting (chapter 13 – 2 meetings)

– Lecture 11: Stacks and Queues (chapter 14 – 2 meetings)

We may also cover case studies in some of the chapters.

DRAFT

Copyright 2019 Hady Ahmady Phoulady

Page 5: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

Sunday Monday Tuesday Wednesday Thursday Friday Saturday

Jan 20th 21st

MartinLuther King,Jr. Day

22nd 1

Lab 1Orientation,Lecture 1

23rd 24th 2

Lecture 1(cont.)

25th 26th

27th 28th 29th 3

Lab 2Lecture 1(cont.)

30th 31st 4

Lecture 2

Feb 1st 2nd

3rd 4th 5th 5

Lab 3Lecture 3

6th

Project 1 Out

7th 6

Lecture 4

8th 9th

10th 11th 12th 7

Lab 4Lecture 4(cont.)

13th 14th 8

Lecture 4(cont.)

15th 16th

17th 18th

President’sDay

19th 9

Lab 5Lecture 5

20th

Project 2 Out

21st 10

Lecture 5(cont.)

22nd 23rd

24th

Project 1 Due

25th 26th 11

Lab 6Lecture 5(cont.)

27th 28th 12

Lecture 5(cont.)

Mar 1st 2nd

3rd 4th 5th 13

Lab 7Midterm(Chapters 1-9)

6th 7th 14

Lecture 6

8th 9th

10th 11th 12th 15

Lab 8Lecture 6(cont.)

13th

Project 3 Out

14th 16

Lecture 7

15th 16th

17th

Project 2 Due

18th 19th

Spring Break

20th 21st

Spring Break

22nd 23rd

24th 25th 26th 17

Lab 9Lecture 7(cont.)

27th

Project 4 Out

28th 18

Lecture 8

29th 30th

31st

Project 3 Due

Apr 1st 2nd 19

Lab 10Lecture 8(cont.)

3rd 4th 20

Lecture 9

5th 6th

7th 8th 9th

No Class

10th 11th 21

Lecture 9(cont.)

12th 13th

Lab 10 Due

14th 15th 16th 22

Lab 11Lecture 9(cont.)

17th

Project 5 Out

18th 23

Lecture 9(cont.)

19th 20th

DRAFT

Copyright 2019 Hady Ahmady Phoulady

Page 6: COS 161 (Section 1) - Algorithms in Programming · results portion of your grade. You have the opportunity of xing your code for 25% penalty (in addition to any late penalty). When

Sunday Monday Tuesday Wednesday Thursday Friday Saturday21st

Project 4 Due

22nd 23rd 24

Lab 12Lecture 10

24th 25th 25

Lecture 10(cont.)

26th 27th

Lab 11 Due

28th 29th 30th 26

Lab 13Lecture 11

May 1st

Lab 12 Due

2nd 27

Lecture 11(cont.)

3rd 4th

5th

Lab 13 DueProject 5 Due

6th 7th 28

Final Exam(1:30 pm – 3:30pm)

8th 9th 29 10th 11th

• Last day to drop/add: Monday, February 4, 2019.

• Last day to withdraw: Thursday, March 28, 2019.

DRAFT

Copyright 2019 Hady Ahmady Phoulady