⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http:^^www.cs.hmc.edu^~keller^cs60f96.html

📁 This data set contains WWW-pages collected from computer science departments of various universities
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<li>David H. Friedel, Jr. and Anthony Potts, <!WA47><a href = "http://165.247.175.230/cgi-bin/java.cgi?page=ibook&graphics=1#JPL"><em>Java Programming Language Handbook</em></a>,Coriolis Group Books, 1996, ISBN 1-883577-77-2.<!--The entire book is also on-line in Microsoft word on KATO, the Macserver, in the folder KATO.HOME/Department Homes/CS/CS 60/.  It willbe thus viewable from Macs on the local network.  I will see aboutgetting a PC version as well.  <em>However</em>, it is <em>still</em>recommended that you purchase the book (rather than, say gettingsomeone's old version) because: (1) The book has been revisedsubstantially since the last course offering.  (2) The book is large(750 pages), and reading it all on the screen is apt to be tiresomeand inconvenient.  (3) The book can be taken into the exams, whereas aMac cannot be.--></ul><p><b><h3><a name = "assumptions">Course Assumptions</a></h3></b>Students should have had a first course in computing at the collegelevel (e.g. <!WA48><a href ="http://www.cs.hmc.edu/~hodas/courses/cs5/index.html">CS5</a>).  Prior experience in C or C++ is preferred althoughnot essential.  We will be using a number of different languages, including<!WA49><a href = "http://java.sun.com/">Java</a>, a simplified derivative of C++.It is possible to have only a knowledge of Pascal, rather than C++, when you start.This is fine, as long as you don't freak because of language syntax.You should know about procedures, arrays, andtypes at a minimum; if you are unfamiliar with these, please take CS5, 6or 50 first.<a name = "is_programming"><b><h3>Is this a "Programming Course"?</h3></b>In a sense, it is: much of the course entails programming.<em>However</em>, we  consider exposureto computer science ideas to be the important part.  The intent of theprogramming assignments is to drive home these key ideas.<p><a name = "lectures"><b><h3>Lectures</h3></b>The word "lecture" below is used very loosely.  I expect that the lectureperiods will include some traditional-style lecturing, but hope it will be more like a multilogue (set of dialogues).  You are expected to attend, askquestions, and provide comments.<p>I am planning to lecture 50-60 about minutes of the 75 minutes we have allocatedin each session.The rest of the time will be for the purpose of answering extended questionsand going into more specifics of some of the programming techniques andexamples.  If you don't have things to ask of me in this remaining time, I mayask some things of you (e.g. a quiz).<b><h3><a name = "threads">Threads</a></h3></b>There are essentially three interwoven "threads" in the course: The book,the problems, and the lectures.  I try to keep them "in synch" with oneanother, but active participation in all three threads is required.Volume-wise, the book covers more material than can be discussed in thelecture.  The lecture will cover some things not in the book.Staying attune to what is going on in lecture will help you focus onthe areas in the book that are important as far as exam emphasis.  The problems exercise some, but not all, of thethings discussed in the book and lecture.<p><b><h3><a name = "resources">Course Resources</a></h3></b>The course is planned to be interactive throughout.  We are eager toprevent programming difficulties from consuming extraordinary time, soplease <em>ask</em> when you get stuck with such difficulties.  It ismuch more efficient to <b>start early</b> on each assignment so thatyou give yourself enough time to cope with the numerous contingencieswhich inevitably materialize.  You can get help on-line by emailing tocs60help@muddcs which goes to the graders/tutors and to me.  I don'tencourage use of 'talk' because it is too slow, but I check email often.  Whenyou email a message, it will typically be answered to the entire classwith parts of your message embedded.  <em>If you do not want it to beattributed to you, please so indicate in your message.</em> <p> By carrying problem solutions through to computer implementation, youare showing that you understand the issues, principles, andtechniques.  I or the tutors will explain to you how to work any problem, to anylevel of detail, if you ask.  However, you must do so with asufficient time margin.  Telling us at the eleventh hour that you justaren't getting it and therefore want to drop the course is not availingyourself of the substantial help available.<p> You are also welcome to submit email with anyquestion you'd like to have answered or any point you would likeaddressed after lecture, or leave a note in my mailbox in 240Olin.  Of course you are encouraged to ask such questions in class aswell.  <p>There are many tools available on muddcs itself.  Use the'man' feature of UNIX to find what you need and to explore.  The command <listing>    man <em>command</em> </listing>gives information on a specific command; The command <listing>    man -k <em>topic</em> </listing>lists commands relating to a specific topic.  You can alsouse the 'info' reader in GNU Emacs for certain library, language, and editorspecifics.  In Emacs type <listing>    escape-X info</listing>Emacs is a very powerful editor which is going to be around for a long time; itis highly encouraged that you learn to use it.Helpful information, examples, on-line copies ofassignments, etc. will be kept in various subdirectories of thedirectory <listing>    <!WA50><a href = "http://www.cs.hmc.edu/~keller/cs60">/cs/cs60</a></listing>on machine muddcs.  There is a web page for <!WA51><a href= "http://www.cs.hmc.edu/rex.html"><em>rex</em></a> and <!WA52><a href = "http://www.cs.hmc.edu/~keller/isc.html">ISCAL</a> documentation.  Finally, the "cornerstore" maxim applies: <em>If you can't find what you want, ask forit.</em> <P> <b><h3><a name = "grading">Grading</a></h3></b>There will be approximately six graded assignments, most entailing programming.Programming assignments help drive home key working concepts andprinciples.  Assignments vary in difficulty and will not necessarily be equallyweighted.  There will also be some assignments which you will not submit, butshould do anyway because they will help you with other assignments.The languages for the graded assignments will probably be one in rex, two in Java,one in C++, one in Prolog,and one in assembly language (<!WA53><a href = "http://www.cs.hmc.edu/~keller/isc.html">ISCAL</a>, for a simulated machine).  Sufficient information about the languages will beprovided to enable you to complete the assignments; you do not have to know theselanguages when you enter the class.<P>Here is the nominal point breakdown we use on assignments.  This may vary somewhat,depending on the emphasis of the assignment.  <ul>    <li>40% for general correctness:    <p>        The program should run according to specification,        taking into account any DWIM (do-what-I-mean) situations        (e.g. The professor says one thing but really meant something        different;  Hopefully he or someone will catch this and        say something about it before it goes too far.)     <p>        We are a learning community here, so don't just be silent about         things that you think are errors.     <p>            <li>20% for choice or discovery of algorithm:    <p>        Sometimes the algorithm is given.  However, sometimes        such clues are ignored, resulting in loss of points        unnecessarily or unnecessary floundering.    <p>        Some people find a better way than what was suggested.        They get extra credit, at grader's discretion.      <p>        (Note: "better" does not mean more obscure or        cleverly hacked-up, but rather more elegant,        or substantially more efficient.)    <p>    <li>20% for documentation:    <p>        Comments should be included in the code which expose the method,        any subtleties, etc.    <p>    <li>10% for style:    <p>        The code should be readable without extraordinary effort.        Use spacing, braces, etc. to improve readability.        Layout characters are not at a premium, so use them liberally.    <p>    <li>10% for robustness:    <p>        The program should not break in unusual ways for minor input        aberrations.    <p>  </ul>Remember, you can always ask about things before you submit your actual product.There is no reason to lose points on most of the above.  You also lose no points or esteem for asking.<p><b><h3><a name = "tutoring">Tutoring</a></h3></b>The tutors are expected to play a key role in the course.  Everyone will need to interactwith a tutor, even if you don't need help:  <ul>  <li> You will "check in" with your tutor  on a regular basis, and show him/her your progress.  Checking in will be  a part of your grade.  <p>  <li> Your tutor will advise you on your approach to solving the problem,  documentation, and presentation.  <p>  <li> Your tutor will make an evaluation of your work when you are ready  to submit it, and recommend a grade to me.  <p>  <li> I will assign the grade for the assignment, based on the tutor's   recommendation, although I am not bound to follow the recommendation  100%.  </ul><p>Neither I nor the tutors are your adversaries.  We want you to succeed, but itrequires effort, cooperation, and timing on your part.<P><b><h3><a name = "your_directory">Your Directory ~/cs60</a></h3></b>You should have a directory ~/cs60 which has group access by group cs60.If not, the system administrator will create one for you.  Access to thisdirectory will thus be by you, the instructor, and the tutors, but preferrablyno one else.  When properly setup the directory listing, obtained by ls -l, forthis directory should look like:<listing>   2 drwxrwx---   2 <em>yourid</em>     cs60         512 Sep  8 20:32 cs60/</listing>If it does not, you should execute the following command from your home directory:<listing>   chmod 770 cs60</listing>The purpose ofthis directory is to be able to get help on programs without mailing the program.Simply indicate the file name to the instructor or tutor.  He or she can connectto the directory and write things there.  It is not necessary that you keep allof your work accessible there, just the things on which you are currently working.<b><h3><a name = "honor_code">Honor Code Standard (<em>Please read this carefully</em>.)</a></h3></b> Although <em>discussion</em> of problems with others is encouraged,programming in CS60 emphasizes individual learning, not groupprojects.  We observe the following Standard:  "You may <em>discuss</em> theassignment with other students.  You may notshare [<em>i.e. give or receive</em>]written work of any kind, inside or outside the course".Elaboration:  In the case of programming assignments, we consider"written work" to include email, computer files, fragments of files, and printed output.In developing code for a programming assignment, you candiscuss ideas with others, but discussion of ideasmust not involve wholesale examination or transcription of the actual working code ofothers, with the exception that you may use any code explicitlyprovided by the instructor. <p>The following types of activities have occurred in the past.  They have, inmost cases, resulted in receiving a failing grade in the course, one or more appearances before the judicial board (with the attendantblighted record), and in some cases eventual ITR (Ineligible to Register) status.<ul><li>Two or more students split up an assignment, then transcribe each others' contributions,sometimes changing names of variables, comments, formatting, etc.  <p><li>A student browses the directories of other students and finds someone'shomework file unprotected.  He makes a copy of the file and edits itas above to try to make it look like his own.</ul>You would be surprised how easy it is for a grader to spot violations.<strong>If you have any doubts about whether a form ofinteraction constitutes a violation of this standard, please consultwith me prior to continuing.</strong><p>If you get significant, but legitimate, help from another, you should acknowledgeit on your submission.  You do not lose credit for this.  It is onlyproper to acknowledge the other person.<P><b><h3><a name = "grading_weights">Grading Weights</a></h3></b>Here is how your overall grade is determined:<ul><li>50% programming assignments<li>25% final-examination<li>15% mid-term examination<li>10% attendance, participation, tutor-checkin, and random quizzes</ul>Exams are open book and emphasize conceptual understanding, ratherthan memorization of fine details.  <P><b><h3><a name = "late">Late Assignment Policy</a></h3></b>Submissions are done by following the <!WA54><a href="#submitting_assignments">instructions below</a>,which also establishes the time of submission.The due dates on assignments should be noted carefully.The work of an assignment should be conducted in the week or weeksbefore, not on the last day when there is no space for the necessarythinking.  <p><b><h3>Automatic Grace</h3></b>There is an automatic, fixed, one-day grace period on all assignments.  In other words, if the due datestates day N, then the assignment must be turned in before midnight onday N+1 to receive any credit.  After midnight on day N+1 work youspend on the problem is for you own edification only (which is not to say that it isn't worth doing or required; you just don't getpoints for it then).  It is best to plan to get the assignments inon the stated due date.<P><b><h3><a name = "outline">CS 60 Topic Outline</a></h3></b>The lectures will roughly follow this outline.  The progression is atthe rate of about two of the numbered topics below per week.  I shouldsay that this is what I would <em>like</em> to do.  Depending on background,some of the topics expand to longer than allocated, with the resultthat other topics get jettisoned or fall off the end.  Please keep upon the reading without it being explicitly assigned.  The notesgenerally expand on the lectures and discussions.  But the lecturesmay also expand on the notes or introduce new material.  More oftenthan not, several threads will be interwoven in the lectures over aperiod of time, in part to emphasize the commonality of concepts fromdifferent vantage points.  Brackets below indicate where chapters inthe notes start with respect to the concepts that follow.  The outlinedoes not mention every topic.  The actual lectures determine points ofemphasis.<P><ol><li>[<em>Information structures</em>].List notation.   Trees and Graphs.<p><li>[<em>High-level functional programming</em>].  Higher-order functions.  Anonymous functions.  Equivalences.<p><li>[<em>Low-level functional programming</em>].Rewrite rules.  Recursion.  Mutual recursion.  Depth-first and breadth-first search of trees and graphs.Caching. <p><li>[<em>States and Transitions</em>].Computation problems and models ofcomputation. Assignment-based programs.  McCarthy's transformation.  Turingmachines.RAM model.  Arrays.  Linear addressing principle.  Pointers.  L-values and R-values.  <P><li>[<em>Computing Objectively</em>]  Object-orientation and data abstraction.Java objects.  Inheritance.<P><li>[<em>Structural Computing</em>] The Polya library.  Translating rex to Java.  S expressions.  Low-level data structuring.  Dynamic storageallocation.  Open- vs. closed-list models<P><li>[<em>Computing Grammatically</em>]  Inductive definitions, grammars,syntax.  Parsing. Evaluation.  <P><li>[<em>Computing Logically</em>]  Proposition logic and applications.  Gaterealizations.  Physical bases for computation.  Minterm expansion.  Boole/Shannon expansion.<P><li>Logic simplification.  Hypercubes. Karnaugh maps.  "Don't care"situations. <P><li>Predicate logic.  Programming in logic.  Backtracking. <P><li>Program specification, correctness, and verification.<P><li><a name = "midterm">Mid-term examination</a>.  (<b>Date of Midterm: Wednesday, 30 October 1996</b>).<P><li>[<em>Complexity of computing</em>]  Runtime measures. Profiling.Growth-rate comparisons.  Upper bounds.  "O" notation.   Examples fromsorting: Heapsort, radix sort.<P><li>Complexity (continued).  Empirical measurements.  Amdahl's law.  Set abstraction examples.  Bit-vectors.<P><li>Weighted graphs.  Shortest paths.  Traveling salesman problem.<P><li>[<em>Finite-State Computing</em>]  Finite-state machines.  Sequentiallogic design.  Physical basis for memory.<P><li>Regular expressions and finite-state machines.<P><li>Computer components.  Registers, buses, multiplexors, etc.<P><li>[<em>Stored-Program Computing</em>]  Stored-program computer structure.  ISC (Incredibly-Simple Computer).<P><li>ISC Assembly language.  Low-level implementation of recursion.<P><li>[<em>Computing in Parallel</em>]  Parallel computation.  Multi-threading.  Networking.<P><li>[<em>Limitations of Computing</em>] Finite-state limitations.  Lowerbounds.  Incomputability.  Intractability and NP-completeness.   The glitch phenomenon.<P><li><a name = "final">Comprehensive final exam</a> (<b>Date of Final: Monday, 16 December 1996</b>).</ol><b><h3><a name = "submitting_assignments">How to submit assignments:</a></h3></b>To submit an assignment, login to muddcs and run<listing>    cs60submit <em>filename</em></listing>where <em>filename</em> is the file containing the assignment to be submitted.  The file should be an non-encoded ascii file with at most 80 characters per line.The program will ask what assignment this is (a number), and then submit theassignment properly.  Shortly thereafter (usually a few seconds), youwill recieve by e-mail an exact copy of what was submitted.  Youwill notice that some headers are attached, containing certainessential information.  These headers are commented out so that compilationof the program is not affected.  If what you recieve is notacceptable (e.g. becomes MIME encoded because it is more than 80 columns or containscontrol characters), you are responsible for noticing thisimmediately, correcting the file, and re-submitting it.  All submissionswill be kept for archival purposes, but only the latest submission beforethe time deadline will be graded.</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -