Você está na página 1de 8

Syllabus

ThisisCS50.HarvardUniversity.

TableofContents
Instructor
Description
Expectations
Website
Books
ForThoseLessComfortable
ForThoseMoreComfortable
Lectures
Week0
Week1
Week2
Week3
Week4
Week5
Week6
Week7
Week8
Week9
Week10
Week11
Week12
Sections
Postmortems
ProblemSets
FinalProject
AcademicHonesty
Reasonable
NotReasonable

version0

Instructor
DavidJ.Malan
malan@harvard.edu(mailto:malan@harvard.edu)
http://cs.harvard.edu/malan(http://cs.harvard.edu/malan)

Description
Introductiontotheintellectualenterprisesofcomputerscienceandtheartofprogramming.This
courseteachesstudentshowtothinkalgorithmicallyandsolveproblemsefficiently.Topics
includeabstraction,algorithms,datastructures,encapsulation,resourcemanagement,security,
softwareengineering,andwebdevelopment.LanguagesincludeC,PHP,andJavaScriptplus
SQL,CSS,andHTML.Problemsetsinspiredbyrealworlddomainsofbiology,cryptography,
finance,forensics,andgaming.Designedforconcentratorsandnonconcentratorsalike,withor
withoutpriorprogrammingexperience.

Expectations
Youareexpectedtosubmitnineproblemsetsandafinalproject.

Website
Thiscourselivesathttp://cs50.edx.org/(http://cs50.edx.org/).
Visitthecourseswebsitetowatchvideos,togethelp,todownloadhandoutsandsoftware,and
tofollowlinkstootherresources.

Books
Nobooksarerequiredforthiscourse.However,youmaywanttosupplementyourpreparation
fororreviewofsomelectureswithselfassignedreadingsrelevanttothoselectures'content
fromeitherofthebooksbelow.Thefirstisintendedforthoseinexperiencedin(orless
comfortablewiththeideaof)programming.Thesecondisintendedforthoseexperiencedin(or
morecomfortablewiththeideaof)programming.

ForThoseLessComfortable
CProgrammingAbsoluteBeginnersGuide,ThirdEdition
GregPerry,DeanMiller
PearsonEducation,2014
ISBN0789751984

ForThoseMoreComfortable
ProgramminginC,FourthEdition
StephenG.Kochan
PearsonEducation,2015
ISBN0321776410
Thebookbelowisrecommendedforthoseinterestedinunderstandinghowtheirown
computersworkforpersonaledification.
HowComputersWork,NinthEdition
RonWhite
QuePublishing,2008
ISBN0789736136
Thislastbookbelowisrecommendedforaspiringhackers,thoseinterestedinprogramming
techniquesandlowleveloptimizationofcodeforapplicationsbeyondthescopeofthiscourse.
HackersDelight,SecondEdition
HenryS.WarrenJr.
PearsonEducation,2013
ISBN0321842685

Lectures
Ascheduleoflectures,subjecttochange,appearsbelow.

Week0
Binary.ASCII.Algorithms.Pseudocode.Sourcecode.Compiler.Objectcode.Scratch.
Statements.Booleanexpressions.Conditions.Loops.Variables.Functions.Arrays.Threads.
Events.

Week1

Linux.C.Compiling.Libraries.Types.Standardoutput.

Week2
Casting.Imprecision.Switches.Scope.Strings.Arrays.Cryptography.

Week3
Commandlinearguments.Searching.Sorting.Bubblesort.Selectionsort.Insertionsort.O.
..Recursion.MergeSort.

Week4
Stack.Debugging.FileI/O.Hexadecimal.Strings.Pointers.Dynamicmemoryallocation.

Week5
Heap.Bufferoverflow.Linkedlists.Hashtables.Tries.Trees.Stacks.Queues.

Week6
TCP/IP.HTTP.

Week7
HTML.CSS.PHP.

Week8
MVC.SQL.

Week9
JavaScript.Ajax.

Week10
Security.Artificialintelligence.

Week11
Artificialintelligence,continued.

Week12
Excitingconclusion.

Sections
Lecturesaresupplementedbyweekly,90minutesectionsledbytheteachingfellows.Sections
provideyouwithopportunitiestoexplorethecoursesmaterialinamoreintimateenvironment.

Postmortems
Availableafterproblemsets'deadlinesare"postmortems,"videosviawhichthecoursesstaff
exploreactualsolutionstoproblemsets.Youareexpectedtowatchpostmortemsforinsights
intohowelseyoucouldhave(orshouldhave!)implementedyourownsolutions.

ProblemSets
Nineproblemsetsareassignedduringthesemester.Eachisdueby31December2016.
Inordertoaccommodatestudentswithdifferentbackgrounds,someproblemsetsarereleased
intwoeditions:astandardeditionintendedformoststudentsanda"HackerEdition"intended
forsomestudents.Botheditionsessentiallycoverthesamematerial.ButtheHackerEdition
typicallypresentsthatmaterialfromamoretechnicalangleandposesmoresophisticated
questions.ToreceiveaVerifiedCertificatefromHarvardX
(https://www.edx.org/school/harvardx),youmustsubmitthestandardeditionsof
problemsets.YouarewelcometodotheHackerEditionsforyourownedification,butit
isnotpossibletosubmitHackerEditionsforcredit(orextracredit).
Ascheduleofproblemsetsappearsbelow.
ProblemSet0:Scratch
ProblemSet1:C
ProblemSet2:Crypto
ProblemSet3:GameofFifteen
ProblemSet4:Forensics
ProblemSet5:Mispellings
ProblemSet6:WebServer
ProblemSet7:C$50Finance
ProblemSet8:Mashup

FinalProject
Theclimaxofthiscourseisitsfinalproject.Thefinalprojectisyouropportunitytotakeyour
newfoundsavvywithprogrammingoutforaspinanddevelopyourveryownpieceofsoftware.
Solongasyourprojectdrawsuponthiscourseslessons,thenatureofyourprojectisentirely
uptoyou.Youmayimplementyourprojectinanylanguage(s),andyouarewelcometoutilize
infrastructureotherthantheCS50Appliance.Allthatweaskisthatyoubuildsomethingof
interesttoyou,thatyousolveanactualproblem,orthatyouchangetheworld.Strivetocreate
somethingthatoutlivesthiscourse.
Inasmuchassoftwaredevelopmentisrarelyaonepersoneffort,youareallowedanopportunity
tocollaboratewithoneortwoclassmatesforthisfinalproject.Needlesstosay,itisexpected
thateverystudentinanysuchgroupcontributeequallytothedesignandimplementationofthat
groupsproject.Moreover,itisexpectedthatthescopeofatwoorthreepersongroupsproject
be,respectively,twiceorthricethatofatypicalonepersonproject.Aonepersonproject,mind
you,shouldentailmoretimeandeffortthanisrequiredbyeachofthecoursesproblemsets.
Althoughnomorethanthreestudentsmaydesignandimplementagivenproject,youare
welcometosolicitadvicefromothers,solongasyourespectthecoursespolicyonacademic
honesty.
Seehttp://cdn.cs50.net/2016/x/project/project.html
(http://cdn.cs50.net/2016/x/project/project.html)fordetails.

AcademicHonesty
Thiscoursesphilosophyonacademichonestyisbeststatedas"bereasonable."Thecourse
recognizesthatinteractionswithclassmatesandotherscanfacilitatemasteryofthecourses
material.However,thereremainsalinebetweenenlistingthehelpofanotherandsubmittingthe
workofanother.Thispolicycharacterizesbothsidesofthatline.
Theessenceofallworkthatyousubmittothiscoursemustbeyourown.Collaborationon
problemsetsisnotpermittedexcepttotheextentthatyoumayaskclassmatesandothersfor
helpsolongasthathelpdoesnotreducetoanotherdoingyourworkforyou.Generally
speaking,whenaskingforhelp,youmayshowyourcodetoothers,butyoumaynotviewtheirs,
solongasyouandtheyrespectthispolicysotherconstraints.Collaborationonthecourses
finalprojectispermittedtotheextentprescribedbyitsspecification.

Belowarerulesofthumbthat(inexhaustively)characterizeactsthatthecourseconsiders
reasonableandnotreasonable.Ifindoubtastowhethersomeactisreasonable,donotcommit
ituntilyousolicitandreceiveapprovalinwritingfromthecoursesheads.Actsconsiderednot
reasonablebythecoursearehandledharshly.

Reasonable
Communicatingwithclassmatesaboutproblemsets'problemsinEnglish(orsomeother
spokenlanguage).
Discussingthecoursesmaterialwithothersinordertounderstanditbetter.
HelpingaclassmateidentifyabuginhisorhercodeatOfficeHours,elsewhere,oreven
online,asbyviewing,compiling,orrunninghisorhercode,evenonyourowncomputer.
Incorporatingsnippetsofcodethatyoufindonlineorelsewhereintoyourowncode,
providedthatthosesnippetsarenotthemselvessolutionstoassignedproblemsandthatyou
citethesnippets'origins.
Reviewingpastsemesters'quizzesandsolutionsthereto.
Sendingorshowingcodethatyouvewrittentosomeone,possiblyaclassmate,sothatheor
shemighthelpyouidentifyandfixabug.
Sharingsnippetsofyourowncodeonlinesothatothersmighthelpyouidentifyandfixa
bug.
Turningtotheweborelsewhereforinstructionbeyondthecoursesown,forreferences,and
forsolutionstotechnicaldifficulties,butnotforoutrightsolutionstoproblemsetsproblems
oryourownfinalproject.
Whiteboardingsolutionstoproblemsetswithothersusingdiagramsorpseudocodebutnot
actualcode.
Workingwith(andevenpaying)atutortohelpyouwiththecourse,providedthetutordoes
notdoyourworkforyou.

NotReasonable
AccessingasolutioninCS50Vaulttosomeproblempriorto(re)submittingyourown.
Askingaclassmatetoseehisorhersolutiontoaproblemsetsproblembefore
(re)submittingyourown.
Decompiling,deobfuscating,ordisassemblingthestaffssolutionstoproblemsets.
Failingtocite(aswithcomments)theoriginsofcodeortechniquesthatyoudiscoveroutside
ofthecoursesownlessonsandintegrateintoyourownwork,evenwhilerespectingthis
policysotherconstraints.

Givingorshowingtoaclassmateasolutiontoaproblemsetsproblemwhenitisheorshe,
andnotyou,whoisstrugglingtosolveit.
Lookingatanotherindividualsworkduringaquiz.
Payingorofferingtopayanindividualforworkthatyoumaysubmitas(partof)yourown.
Providingormakingavailablesolutionstoproblemsetstoindividualswhomighttakethis
courseinthefuture.
Searchingfor,soliciting,orviewingaquizsquestionsoranswerspriortotakingthequiz.
Searchingfororsolicitingoutrightsolutionstoproblemsetsonlineorelsewhere.
Splittingaproblemsetsworkloadwithanotherindividualandcombiningyourwork.
Submitting(afterpossiblymodifying)theworkofanotherindividualbeyondallowedsnippets.
Submittingthesameorsimilarworktothiscoursethatyouhavesubmittedorwillsubmitto
another.
Submittingworktothiscoursethatyouintendtouseoutsideofthecourse(e.g.,forajob)
withoutpriorapprovalfromthecoursesheads.
Usingresourcesduringaquizbeyondthoseexplicitlyallowedinthequizsinstructions.
Viewinganotherssolutiontoaproblemsetsproblemandbasingyourownsolutiononit.

CopyrightDavidJ.Malan

Você também pode gostar