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/20 22:42]
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 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 so, then your assignment score will be computed by scoring the completed problems and ''​adding half credit for each of the incomplete ​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.+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 so, then 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 ====
Line 159: Line 159:
 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.  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. 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.
  
Line 178: 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 190: Line 190:
 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 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.1421818965.txt.gz · Last modified: 2015/01/20 22:42 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