Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs-312:syllabus [2015/01/07 11:33]
ringger [Homework]
cs-312:syllabus [2015/04/14 16:57] (current)
ringger
Line 3: Line 3:
 == Description and Objectives == == Description and Objectives ==
  
-Welcome to CS 312!  This course will provide an introduction to the analysis of algorithms ​from both a theoretical (mathematical) and a practical perspective. ​ Algorithms solve problems, and we will explore a wide variety of problems, some relatively abstract and some down-to-earth. ​ Practical application domains include cryptography,​ geometry, 3-D graphics, image processing, bioinformatics,​ logistical planning, route planning, and artificial intelligence. ​ More abstract applications include combinatoric optimization and graph theory. ​ As such, CS 312 provides an excellent mathematical foundation and will serve as a gateway to problem solving in other domains.+Welcome to CS 312!  This course will provide an introduction to the analysis ​and design ​of algorithms.  The course adopts ​both a theoretical (mathematical) and a practical perspective. ​ Algorithms solve problems, and we will explore a wide variety of problems, some relatively abstract and some down-to-earth. ​ Practical application domains include cryptography,​ geometry, image processing, bioinformatics,​ logistical planning, route planning, and artificial intelligence. ​ More abstract applications include combinatoric optimization and graph theory. ​ As such, CS 312 provides an excellent mathematical foundation and will serve as a gateway to problem solving in other domains.  The domain of CS 312 is one of the key areas of focus for technical interviews, because of the centrality of the topic to computer science. ​ Doing well in this class will help you excel as a computer scientist and software engineer.
  
 We will explore several families of algorithms, with the ability to solve problems of increasing complexity:  ​ We will explore several families of algorithms, with the ability to solve problems of increasing complexity:  ​
Line 113: Line 113:
 Some lectures will be presented using screencasts outside of class. ​ You are expected to view the screencast and complete its associated quiz by the specified date on the course schedule. ​ Such online lectures will prepare you for the corresponding in-class problem solving session to follow the screencast lecture. ​ Without the screencast (and the associated reading), it will be difficult to participate well in the in-class problem solving. Some lectures will be presented using screencasts outside of class. ​ You are expected to view the screencast and complete its associated quiz by the specified date on the course schedule. ​ Such online lectures will prepare you for the corresponding in-class problem solving session to follow the screencast lecture. ​ Without the screencast (and the associated reading), it will be difficult to participate well in the in-class problem solving.
  
-Scheduled screencasts and the accompanying quizzes will generally be published ​two days before the date on the schedule. ​ It is advisable to watch them after having read the assigned reading up to that point on the schedule and/or after having participated in all previous lectures. ​ Screencasts may not make sense if watched prematurely.+Scheduled screencasts and the accompanying quizzes will generally be published ​a day before the date on the schedule. ​ It is advisable to watch them after having read the assigned reading up to that point on the schedule and/or after having participated in all previous lectures. ​ Screencasts may not make sense if watched prematurely.
  
 === Homework === === Homework ===
Line 127: Line 127:
  
 ==== Time Limit ==== ==== Time Limit ====
-The (non-project) homework assignments have been planned to require no more than two hours each.  Do not spend more than two hours of concentrated effort ​on a single non-project homework ​assignmentunless ​you are having fun or the assignment specifies otherwise.  ​If you run out of time, you may indicate "2 HOUR TIME LIMIT EXPIRED"​ at the end of the assignment, ​and your assignment score will be computed by normalizing the score on the completed problems. ​ Please do not abuse this privilege. ​ In particular, finishing no exercises during the two hours will nullify the two hour privilege.  Also note that it is in your best interest to finish every assignment ​to learn the methods and prepare for the exams.+The (non-project) homework assignments have been planned to require no more than two hours of concentrated effort ​per assignment unless the assignment specifies otherwise.  ​Also note that it is in your best interest to finish every assignment to learn the methods and prepare for the exams. ​ Ideally, you will need only two hours of concentrated effort to finish. ​ However, if you run out of time, you may indicate "2 HOUR TIME LIMIT EXPIRED"​ at the end of the assignment.  If you do sothen your assignment score will be computed by scoring ​the completed problems ​and ''​adding half credit for each of the untouched problems''​.  Please do not abuse this privilege. ​ In particular, finishing no exercises during the two hours will nullify the two hour privilege ​on that assignment.
  
 ==== Homework Submission ==== ==== Homework Submission ====
 Homework assignments are due on paper '''​at the beginning of class'''​ on the due date specified on the schedule. ​ '''​Late homework is not accepted, not even later during class.'''​ Homework assignments are due on paper '''​at the beginning of class'''​ on the due date specified on the schedule. ​ '''​Late homework is not accepted, not even later during class.'''​
  
-If you would prefer to submit online through Learning Suite, then you may do so '''​before the first class starts'''​ (9 a.m.).  ​Note that for homework submitted online feedback will also be given online (and not returned on paper).+If you would prefer to submit online through Learning Suite, then you must '''​type the assignment'''​ and submit your homework as a .pdf '''​before the first section ​starts'''​ (9 a.m.).  ​Doing so may be necessary if you are unable to attend class because of exceptional circumstances known in advance. ​ For homework submitted onlinefeedback will also be given online ​via Learning Suite (and not returned on paper)
 + 
 +If an illness or emergency causes you to be unable to complete and submit your homework on time, then correspond with the instructor about other special arrangements.
  
 Sometimes I teach multiple sections of 312 back-to-back,​ and students decide to attend a different section than the one for which they are registered. ​ Attending another section is fine, as long as you submit your homework at the beginning of whatever section you attend. ​ The goal is to come to class well prepared by doing what it takes to complete the homework before class, whatever section that may be. Sometimes I teach multiple sections of 312 back-to-back,​ and students decide to attend a different section than the one for which they are registered. ​ Attending another section is fine, as long as you submit your homework at the beginning of whatever section you attend. ​ The goal is to come to class well prepared by doing what it takes to complete the homework before class, whatever section that may be.
  
-==== Exceptional Submission ==== 
-If you are unable to attend class to submit your homework because of exceptional circumstances,​ submit your homework as a .pdf via Learning Suite '''​before the first class starts'''​ (9 a.m.). ​ If an illness or emergency causes you to be unable to complete and submit your homework on time, then correspond with the instructor about other special arrangements. 
  
 ==== Grading ==== ==== Grading ====
Line 155: Line 155:
 ==== Keys ==== ==== Keys ====
 After an assignment has been submitted, solutions / '''​keys for the homework'''​ will be made available online, usually a day or two after the due date for the given assignment. ​ The keys are for your eyes only during this semester and are never to be shared or re-used in a future taking of the class. After an assignment has been submitted, solutions / '''​keys for the homework'''​ will be made available online, usually a day or two after the due date for the given assignment. ​ The keys are for your eyes only during this semester and are never to be shared or re-used in a future taking of the class.
- 
 === Projects === === Projects ===
  
 There will be several projects throughout the semester, some of them more challenging than others. ​ In every project, you will have the opportunity to design the conceptual solution to a concrete problem before you write any code; the final project of the semester will require the most effort in terms of design. ​ Only once you have understood the problem and designed the solution should you begin to implement your solution and actually write code. There will be several projects throughout the semester, some of them more challenging than others. ​ In every project, you will have the opportunity to design the conceptual solution to a concrete problem before you write any code; the final project of the semester will require the most effort in terms of design. ​ Only once you have understood the problem and designed the solution should you begin to implement your solution and actually write code.
  
-==== Whiteboard ​problem-solving ==== +==== Whiteboard ​Problem-solving ==== 
-You are developing as a problem solver. ​ In this class, you are also learning the importance of solving a problem and analyzing the solution before you start writing code.  For each project, you are required to step up to a whiteboard after reading the project instructions but before writing any code. Use the whiteboard to walk through the solution with a friend.  ​Your friend could be another CS major, ​a CS 312 classmateor another technical person with an eye for detail. ​ Make sure you sketch out and understand how to represent a problem instance (both inputs and outputs) and how to map from inputs to outputs (your algorithm). ​ Simulate simple examples and a non-trivial example or two with your marker. ​ Think out loud.  Listen to your audience as he or she poses questions or identifies potential complications. ​ In short, make sure you understand what you are going to do before you write a stitch of code. If two students reciprocate for one another, then each person should take a turn as presenter and as audience member / question asker. ​+You are developing as a problem solver. ​ In this class, you are also learning the importance of solving a problem and analyzing the solution before you start writing code.  For each project, you are required to step up to a whiteboard after reading the project instructions but before writing any code.  In medical school, they use the learning pattern "learn one, do one, teach one"​. ​ Class lectures and reading help with the learning; the homework provides opportunities to actually solve similar problems; and the whiteboard experience is your opportunity to teach / explain the idea. 
 + 
 +Use the whiteboard to walk through the solution with a one-person technical audience.  ​The best person for your audience would be a CS 312 classmate.  Other pssibilities could be another CS major or another technical person with an eye for detail. ​ Make sure you sketch out and understand how to represent a problem instance (both inputs and outputs) and how to map from inputs to outputs (your algorithm). ​ Simulate simple examples and a non-trivial example or two with your marker. ​ Think out loud.  Listen to your audience as he or she poses questions or identifies potential complications. ​ In short, make sure you understand what you are going to do before you write a stitch of code. If two students reciprocate for one another, then each person should take a turn as presenter and as audience member / question asker.
  
 There are whiteboards all over campus. ​ In particular, many of the study rooms in the Lee Library have whiteboards,​ and there are whiteboard markers that can be checked out at the reference desks in each section of the library. There are whiteboards all over campus. ​ In particular, many of the study rooms in the Lee Library have whiteboards,​ and there are whiteboard markers that can be checked out at the reference desks in each section of the library.
Line 168: Line 169:
  
 ==== Whiteboard Experience Submission ==== ==== Whiteboard Experience Submission ====
-For each whiteboard experience, prepare a simple one-page PDF format report including your name, your net-ID, and the project number. Also include a photo of your "​whiteboard experience"​ with you standing ​in front of your whiteboard designs. ​ The photo is a required element of your whiteboard experience report.  ​Each project'​s ​instructions ​gives additional guidance. ​ Each project'​s whiteboard experience has a submission deadline on the course schedule in advance of the project report submission due date.  Submit via Learning Suite. ​ The reports are due by midnight on the specified due date (see the schedule). ​ Late whiteboard experiences are not accepted, but if you are late you should go through the process anyhow before writing code.+For each whiteboard experience, prepare a simple one-page PDF format report including your name, your net-ID, and the project number. Also include a photo of your "​whiteboard experience"​ with you standing ​next to your whiteboard designs. ​ The photo is a required element of your whiteboard experience report.  ​Include a caption on the photo listing the elements to be found in the picture on the board. ​ The instructions ​for each project give additional guidance. ​ Each project'​s whiteboard experience has a submission deadline on the course schedule in advance of the project report submission due date.  Submit via Learning Suite. ​ The reports are due by midnight on the specified due date (see the schedule). ​ Late whiteboard experiences are not accepted, but if you are late you should go through the process anyhow before writing code.
  
 ==== Performance ==== ==== Performance ====
Line 177: Line 178:
  
 ==== Report Submission ==== ==== Report Submission ====
-All project reports should be prepared in PDF format and submitted via LearningSuite. ​ The project reports are due by midnight on the specified due date (see the schedule).  If you submit after the due date, send email to the TA email address to inform them of your late submission, so that the responsible TA will know to look for your assignment.+All project reports should be prepared in PDF format and submitted via LearningSuite. ​ The project reports are due by midnight on the specified due date (see the schedule).
  
 There are several ways to produce PDF documents, including the following: There are several ways to produce PDF documents, including the following:
Line 188: Line 189:
 ==== Help Sessions ==== ==== Help Sessions ====
 It is intended that the project instructions should be self-contained and sufficient. ​ Even so, a help session will accompany each project. ​ Help sessions are available primarily to demonstrate a working implementation of the projects and to answer student questions about the instructions. ​ If you cannot go to a help session and the project instructions document is not meeting your needs, you are certainly welcome to post questions on the Google Group, to meet in office hours with the TAs, or to meet with the instructor to get your questions answered. It is intended that the project instructions should be self-contained and sufficient. ​ Even so, a help session will accompany each project. ​ Help sessions are available primarily to demonstrate a working implementation of the projects and to answer student questions about the instructions. ​ If you cannot go to a help session and the project instructions document is not meeting your needs, you are certainly welcome to post questions on the Google Group, to meet in office hours with the TAs, or to meet with the instructor to get your questions answered.
- 
 == Exams ==  == Exams == 
-There will be one mid-term exam and a final exam.  The mid-term exam will take place in the testing center with a three hour time limit. ​ The mid-term exam will be scheduled to allow for flexibility. ​ The final exam will be held in class according to the University’s calendar (see the course schedule). ​ As per University policy, no exceptions will be granted to final exam time or location. ​ Plan your travel accordingly.+There will be one mid-term exam and a final exam.  The mid-term exam will take place in the testing center with a three hour time limit. ​ The mid-term exam will be scheduled to allow for flexibility. ​ The final exam will be held in the classroom on the date specified on the University’s calendar (see the course schedule). ​ As per University policy, no exceptions will be granted to final exam time or location. ​ Plan your travel accordingly.
  
 The only aid you may bring to an exam is one page of notes hand-written or typed '''​by you only'''​ for the mid-term or two pages (same restrictions) to the final exam.  Since the final exam is comprehensive,​ one of your pages of notes can be the page you used for the mid-term exam.  If the notes are not hand-written or typed by you, you may forfeit the exam or incur a significant point penalty. ​ Copying and pasting other notes, including from the course slides or textbook is an example of "not by you"​. ​ You may use both sides of the page.  Your notes must be submitted with the exam.  You are encouraged to study together in preparation for the exams. The only aid you may bring to an exam is one page of notes hand-written or typed '''​by you only'''​ for the mid-term or two pages (same restrictions) to the final exam.  Since the final exam is comprehensive,​ one of your pages of notes can be the page you used for the mid-term exam.  If the notes are not hand-written or typed by you, you may forfeit the exam or incur a significant point penalty. ​ Copying and pasting other notes, including from the course slides or textbook is an example of "not by you"​. ​ You may use both sides of the page.  Your notes must be submitted with the exam.  You are encouraged to study together in preparation for the exams.
Line 237: Line 237:
 | 15% | 15%
 |} |}
 +
 +Note that the Learning Suite gradebook includes a category called "​Project Raw Scores"​. ​ That category has 0 weight and is there only for internal TA and instructor purposes. ​ Please disregard that section.
  
 === Grade Scale === === Grade Scale ===
Line 311: Line 313:
 Unless the assignment explicitly states otherwise, all students are expected to do their own work (both homework and projects), write their solutions, write their own code, and submit their own reports. ​ However, collaboration is encouraged in terms of sharing ideas and working out solutions at a conceptual level. ​ You are encouraged to work together in this way and to help one another. ​ If you work with someone else, simply acknowledge that you did so by indicating the person(s) by name on the front page of your work.  You are also welcome to post a non-assigned problem to the class'​s Google group and ask for others to show you how to work it out, but do not ask for outright solutions to assigned problems. ​ For the Google group, there is no need to give acknowledgment. ​ I understand that it is a common resource and is useful to many students. ​ Just acknowledge those with whom you collaborated on an individual basis, including for the whiteboard experience. Unless the assignment explicitly states otherwise, all students are expected to do their own work (both homework and projects), write their solutions, write their own code, and submit their own reports. ​ However, collaboration is encouraged in terms of sharing ideas and working out solutions at a conceptual level. ​ You are encouraged to work together in this way and to help one another. ​ If you work with someone else, simply acknowledge that you did so by indicating the person(s) by name on the front page of your work.  You are also welcome to post a non-assigned problem to the class'​s Google group and ask for others to show you how to work it out, but do not ask for outright solutions to assigned problems. ​ For the Google group, there is no need to give acknowledgment. ​ I understand that it is a common resource and is useful to many students. ​ Just acknowledge those with whom you collaborated on an individual basis, including for the whiteboard experience.
  
-'''​Code reviews''' ​are also permissible and encouraged ​if both parties ​have given the project serious effort individually ​(for example, someone who has not started the project should not code review for someone who is almost done).  As noted aboveall collaboration must be attributed. ​ Be sure that before you rely on someone else's idea that you have taken the time to think things through yourself. ​ The experience of working through a solution on your own is an important learning experience and an important part of this class. ​ Ideally a code-review is a face-to-face ​or at least an interactive ​experience, ​because ​the coder can step up to the whiteboard (or electronic whiteboard) and explain his/her solution before diving into the details of the code.  Think of that approach as "Plan A".  ​Sharing ​code online (not via the mailing list / Google groupwith your reviewer ​is OK but is definitely "Plan B".+=== Code Reviews === 
 + 
 +Code reviews are permissible and encouraged.  Both the reviewer and the reviewee should ​have given the project serious effort individually ​prior to meeting ​for a review. ​ For example, someone who has not started the project should not code review for someone who is almost done.  As always, be sure that before you rely on someone else's idea that you have taken the time to think things through yourself. ​ The experience of working through a solution on your own is an important learning experience and an important part of this class. 
 + 
 +Ideally a code-review is a face-to-face experience. To identify problemsit is often more productive for the coder to step up to the whiteboard (or electronic whiteboard) and explain his/her solution before diving into the code. Doing so enables conceptual debugging.  ​Generally, source ​code files should ​not be sent to the mailing list / Google group. First-round code reviews should be conducted by a classmate. ​ As noted above, all collaboration ​with other students must be attributed, so give credit to your reviewer.  If you have a stubborn bug that you cannot find with a classmate in the first round, then you may ask a TA to help you with a second-round code review, ​but only after having attempted with a classmate. Note that TAs are instructed not to put their hands on your keyboard – you are the driver! ​ The instructor ​is available for third-round code reviews as a last resort. 
  
 === Third-Party Code Policy === === Third-Party Code Policy ===
Line 324: Line 331:
 The Honor Code includes a statement of standards regarding academic honesty. ​ Academic honesty includes writing your own programs, properly citing sources in reports and doing your own work on exams. ​ Examples of academic dishonesty include sharing code for projects with other students, turning in someone else's writing as your own report, using a key acquired from a previous semester to do your homework, and cheating on an exam.   The first violation of academic honesty standards will result in your course grade being lowered one grade level, and you will be required to either redo the work or receive a 0 on the assignment. ​ The second violation will result in failing the class. ​ All violations of academic honesty are documented and reported to the Honor Code office. The Honor Code includes a statement of standards regarding academic honesty. ​ Academic honesty includes writing your own programs, properly citing sources in reports and doing your own work on exams. ​ Examples of academic dishonesty include sharing code for projects with other students, turning in someone else's writing as your own report, using a key acquired from a previous semester to do your homework, and cheating on an exam.   The first violation of academic honesty standards will result in your course grade being lowered one grade level, and you will be required to either redo the work or receive a 0 on the assignment. ​ The second violation will result in failing the class. ​ All violations of academic honesty are documented and reported to the Honor Code office.
  
-=== Inappropriate ​Use of Course Materials ===+=== Appropriate ​Use of Course Materials ===
    
 Some course materials are designated as sharable via a Creative Commons license as directly noted on the relevant materials (e.g., course lectures and PowerPoint presentations). ​ All course materials not so designated (e.g., exams and homework keys) are proprietary. ​ Students are prohibited from posting or selling proprietary course materials without the express written permission of the professor teaching this course. ​ To do so is a violation of the Brigham Young University Honor Code. Some course materials are designated as sharable via a Creative Commons license as directly noted on the relevant materials (e.g., course lectures and PowerPoint presentations). ​ All course materials not so designated (e.g., exams and homework keys) are proprietary. ​ Students are prohibited from posting or selling proprietary course materials without the express written permission of the professor teaching this course. ​ To do so is a violation of the Brigham Young University Honor Code.
Line 345: Line 352:
  
 I reserve the right to update and clarify the syllabus throughout the semester. ​ Similarly, other elements of the course wiki will be updated in light of clearer thinking on my part and prompted by your questions and requests for clarification. I reserve the right to update and clarify the syllabus throughout the semester. ​ Similarly, other elements of the course wiki will be updated in light of clearer thinking on my part and prompted by your questions and requests for clarification.
- 
cs-312/syllabus.1420655580.txt.gz · Last modified: 2015/01/07 11:33 by ringger
Back to top
CC Attribution-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0