CS 106B: Programming Abstractions in C++ Stanford University Course Information Autumn 2013
CS 106B: Programming Abstractions in C++ Stanford University Course Information Autumn 2013
Instructor
name: email: office: office phone: office hours:
Marty Stepp stepp [at] cs [dot] stanford [dot] edu Gates 195 (650) !"#660! see course web site
!ead "A
Jess Fisher jessf [at] stanford [dot] edu Gates 160 see course web site see course web site
Course #vervie$
$his course is the successor to the prere%uisite &S 106'( )t co*ers ad*anced pro+ra,,in+ topics such as recursion- a. # +orith,ic ana.ysis- and data a/straction usin+ the &00 .an+ua+e- 1hich is si,i.ar to & and Ja*a( &S 1062 assu,es that you a.ready ha*e fa,i.iarity 1ith +ood pro+ra,,in+ sty.e and soft1are de*e.op,ent (at the .e*e. of &S 106')- and that you can use this understandin+ as a foundation on 1hich to tac3.e ne1 topics in pro+ra,,in+ and data a/straction( 4e a.so offer an acce.erated pro+ra,,in+ a/stractions course ca..ed &S 1065( )t ,o*es at a faster pace- has ,ore cha. # .en+in+ assi+n,ents and e6a,s- and p.aces you into a cohort of hi+h#po1ered students 1ho +enera..y ha*e si+nificant pri # or pro+ra,,in+ e6perience( )f you are not sure 1hether you shou.d /e enro..ed in &S 106'- 1062- 1065- or another Stanford &S c.ass- p.ease *isit the 1062 course 1e/ site for ,ore infor,ation and7or contact the instructor(
Units
under+raduate students8 5 units (re%uired) +raduate students8 " to 5 units- dependin+ on 1hat /est fits into your schedu.e 9e+ard.ess of ho1 ,any units you are enro..ed for- the course content and re%uire,ents 1i.. /e the sa,e(
CS 106%
&S 1062 is tau+ht in &00- /ut is not an in#depth study of the &00 .an+ua+e( 4e 1i.. use our o1n cus # to, .i/raries in p.ace of ,any standard .i/raries- and 1i.. not e6p.ore ,any parts of the .an+ua+e( )f you:re interested in .earnin+ ,uch ,ore a/out &00 and its .i/raries- consider additiona..y si+nin+ up for CS 106L( &S 106; is an optiona. one#unit .a/#/ased co,panion course to &S 1062 that is dedic# ated to e6p.orin+ the &00 pro+ra,,in+ .an+ua+e in depth( &S 106; is not a rep.ace,ent for the standard &S 1062 course- nor for its discussion section( So if you enro.. in &S 106; you shou.d a.so sti.. si+n up for a 1ee3.y discussion section on the 1e/ site(
%ecture "ime
M4F "815 <M # =805 <M- roo, "!0#105 ;ecture attendance is not ,andatory- and no +raded acti*ities 1i.. /e +i*en in .ecture other than the ,idter, and fina. e6 # a,s( '.. s.ides- pro+ra, code fi.es- and other resources fro, .ecture 1i.. /e posted on the c.ass 1e/ site( 2ut 1e sti.. re # co,,end attendin+ .ecture as your /asis for .earnin+ the ,ateria. and to he.p you prepare for the ho,e1or3 assi+n,ents(
)iscussion Sections
http877cs19>(stanford(edu7section )n addition to .ecture- you ,ust a.so sign up for a weekly 50-minute discussion section - he.d on *arious ti,es7p.aces on 4ed#Fri( ?our section 1i.. /e run /y an under+raduate section .eader 1ho 1i.. a.so +rade your ho,e1or3( )n section 1e ans1er %uestions- +o o*er co,,on errors in ho,e1or3 so.utions- and discuss sa,p.e pro/.e,s in ,ore detai. than 1e can in .ecture( <art of your course +rade co,es fro, attendin+ and participatin+ in your section on a re+u.ar /asis( Section si+n#ups are hand.ed on.ine durin+ the first 1ee3 of the %uarter- fro, $hu 5<M to Sun 5<M at the precedin+ @9;- a.so .in3ed fro, the c.ass 1e/ site( 'fter a ,atchin+ process- your section assi+n,ents 1i.. /e e#,ai.ed out to you /y $uesday of 4ee3 !( Sections /e+in the second 1ee3 of c.asses( '.thou+h '6ess .ists sections for this course- 1e don:t .oo3 at '6ess 1hen assi+nin+ sections( A*en if you:re enro..ed in a section throu+h '6ess- you ,ust si+n up throu+h our syste, as 1e.. to ,a3e sure so,eone 1i.. +rade your assi+n,ents(
"e*tboo+
9o/erts- Aric( Programming Abstractions in C++( )S2B 9 >#01""=5=>=0( Bo re%uired ho,e1or3 pro/.e,s or readin+s 1i.. /e assi+ned direct.y fro, the te6t/oo3- /ut it 1as 1ritten /y Stanford &S and is specifica..y tai.ored to this course- so it is a *ery usefu. reference( )t a.so contains practice pro/.e,s and sup # portin+ ,ateria.s you can use to study for e6a,s( ?ou are e6pected to either o1n a copy or ha*e fre%uent access to one( (4ee3.y ho,e1or3 assi+n,ents ha*e their o1n spec docu,ents on our 1e/ site- not direct.y fro, the te6t/oo3() $he e6# a,s in this course 1i.. /e open#/oo3- so it ,ay /e ad*anta+eous to o1n the /oo3 to /rin+ as a reference durin+ e6a,s( )n pre*ious %uarters- a pre.i,inary Ccourse readerC *ersion of the te6t/oo3 1as a*ai.a/.e in printed and <DF for,( $his o.der *ersion ,i+ht /e usa/.e for you in 1062 this autu,n- /ut so,e of its content is ,issin+ or .ess po.ished( '.so- you 1i.. not /e a/.e to use the di+ita. *ersion on your e6a,s- so it 1i.. /e .ess usefu. than the physica. te6t/oo3( 4e are not a/.e to officia..y pro*ide support for the course reader7<DF *ersion of the /oo3 and 1i.. not pro*ide he.p 1ith ,appin+ readin+ sections- pa+e nu,/ers- pro/.e, nu,/ers- etc( fro, the o.d *ersion to the current *ersion(
-rades
?our o*era.. course +rade 1i.. /e deter,ined as a 1ei+hted a*era+e of the fo..o1in+ cate+ories8 50F ho,e1or3 assi+n,ents 5F section participation !0F ,idter, e6a, ("ed# $ct %0# &01%# ':00 - 10:00pm, location TBA) !5F fina. e6a, ((hu# )ec 1&# &01%# 1&:15 - %:15pm, location TBA)
'*ams
Gur e6a,s are open-*ook for the Programming Abstractions in C++ te6t/oo3- /ut closed-notes and c.osed for a.. other resources( ?ou ,ay not /rin+ or use any other printed ,ateria.s such as handouts- s.ides- or practice e6a,s( (' synta6 reference sheet 1i.. /e +i*en to you at the e6a, if necessary() Bo e.ectronic de*ices ,ay /e used- inc.udin+ ca.cu.ators( Ma3e#up e6a,s 1i.. /e +i*en on.y in rare cases of e,er+ency( )f you ,ust ,iss an e6a,- you ,ust contact the instructor at .east one 1ee3 prior to the e6a, and e6p.ain the circu,stances c.ear.y( )f an e,er+ency occurs on or near the e6a, day- you ,ust sti.. contact the instructor /efore the e6a, (or arran+e for so,eone e.se to do so) e6p.ainin+ the situation( 4e 1i.. not appro*e any re%uests to reschedu.e e6a,s /ased on persona. reasons such as tra*e.- .eisure- or to ease e6a, 1ee3 schedu.es( Bo ,a3e#up e6a,s 1i.. /e +ranted to a student 1ho contacts us after the e6a, is o*er- e6cept in cases of dire e,er+ency( Bo specia. acco,,odations 1i.. /e ,ade for students 1ho arri*e .ate to e6a,s- re+ard.ess of the reason (,issin+ a /usH o*ers.eptH sic3H etc()(
!ome$or+ Assignments
Io,e1or3 consists of pro+ra,,in+ assi+n,ents done on an indi*idua. /asis( ?ou 1i.. ha*e rou+h.y one 1ee3 to 1or3 on each assi+n,ent- and there 1i.. /e appro6i,ate.y assi+n,ents in tota.( <ro+ra,s 1i.. /e +raded on C functionalityC (is the pro+ra,:s /eha*ior correctJ) and C styleC (is the code 1e.. 1ritten and e.e+antJ)( Disputes a/out ho,e1or3 +radin+ ,ust /e ,ade 1ithin 1 1ee3 of your interacti*e +radin+ session 1ith your S;- or 1ithin ! 1ee3s of recei*in+ the score1hiche*er co,es sooner( 9ather than a direct point#/ased scorin+ syste,- 1e ,ap ho,e1or3 scores into the fo..o1in+ C/uc3etsC8 0 KK K K 0 Bo credit( $ypica..y this ,ar3 is on.y +i*en if you do not su/,it the assi+n,ent or it sho1s no effort 1hatsoe*er( ' su/,ission that has e6tre,e.y serious issuesH sho1s a.,ost no understandin+ ' su/,ission that has *ery serious issues and does not de,onstrate si+nificant effort and understandin+( ' su/,ission that has pro/.e,s serious enou+h to fa.. short of the e6pectations7re%uire,ents for the assi+n,ent( ' su/,ission that ,eets the re%uire,ents for the assi+n,ent- 1ith a fe1 s,a.. pro/.e,s or areas of i,pro*e,ent( ' su/,ission that satisfies a.. the re%uire,ents for the assi+n,ent- sho1in+ *ery so.id functiona.ity as 1e.. as +ood sty.e( )t ref.ects a jo/ 1e.. done( )t is rare to recei*e a ,ar3 a/o*e 0- so this is +enera..y the score to ai, for( 0-00 ' su/,ission that is CperfectC or si+nificant.y e6ceeds our e6pectations for the assi+n,ent( $o recei*e the +rades- a pro+ra, often ref.ects additiona. 1or3 /eyond the re%uire,ents or so.*es the pro/.e, in a particu.ar.y e.e+ant 1ay( ' ,ar3 of 0 or 00 1i.. /e +i*en out on.y on rare occasions and shou.d not /e considered a standard +oa. for each assi+n,ent you su/,it( )t is ,ore of a 1ay of con+ratu.atin+ the rare su/,ission that +oes a/o*e and /eyond( Fro, past e6perience- 1e e6pect that most grades will *e or +( Di*idin+ the +rades into these +enera. cate+ories ,eans that your section .eader can spend ,ore ti,e ta.3in+ a/out 1hat you need to .earn fro, the assi+n,ent 1ithout /e # in+ /o++ed do1n in cata.o+in+- e6p.ainin+- and justifyin+ ,inor point deductions( $he +oa. is to ,a6i,iLe the .earnin+ e6perience and reduce focus on s,a.. differences in nu,eric +rades( For each assi+n,ent- you ,ust make an appointment for an interacti,e-grading session 1ith your section .eader( ?our section .eader 1i.. e6p.ain in section ho1 to schedu.e these sessions and +o o*er the +radin+ process in ,ore detai.( $he interacti*e#+radin+ session 1ith your section .eader ,ust /e schedu.ed 1ithin t1o 1ee3s of the assi+n,ent due date(
!onor Code
'cade,ic conduct for students at Stanford is +o*erned /y the Ionor &ode( <art of the Ionor &ode is a p.ed+e and e6# pectation to participate in c.ass 1ithout see3in+ unauthoriLed he.p on +raded 1or3 such as assi+n,ents and e6a,s( @n.ess other1ise specified- pro+ra,,in+ assi+n,ents in this course ,ust /e co,p.eted indi,idually( '.. code you su/# ,it ,ust /e your o1n 1or3( ?ou ,ay discuss +enera. ideas of ho1 to approach an assi+n,ent- /ut ne*er specific detai.s a/out the code to 1rite( 'ny he.p you recei*e fro, or pro*ide to c.ass,ates shou.d /e .i,ited and shou.d not in*o.*e de # tai.s of ho1 to code a so.ution( $his is i,portant to us part.y /ecause 1e fee. that it is i,perati*e that you .earn ho1 to app.y the c.ass ,ateria. to1ard so.*in+ cha..en+in+ pro/.e,sH you 1i.. not .earn this /y copyin+ others: so.utions( Iere are so,e specific /eha*iora. +uide.ines that 1e e6pect you to fo..o1 in this c.ass8 $n each assignment su*mission# you must indicate any assistance you recei,ed0 For e6a,p.e- if you .oo3 at an e6a,p.e in the te6t/oo3 or course 1e/ site- or a 1e/ tutoria. on.ine- cite the source( )f you recei*e any non# tri*ia. he.p fro, another person 1hi.e 1or3in+ on the assi+n,ent- or +i*e such he.p to another person- cite this as 1e..( Fai.ure to cite a si+nificant source ,ay constitute p.a+iaris,( 1ou must not consult any assignment solutions that are not your own0 4e tend to re#use so,e assi+n,ents fro, %uarter to %uarter- /ut you ,ust not e6a,ine any other person:s ho,e1or3 so.ution( 1ou must not willingly gi,e out your assignment solution to another student0 1ou must not attempt to disguise any code that is not your own0 1ou must not post your homework solution code pu*licly online0 For e6a,p.e- do not paste your code into a pu/.ic on.ine foru, or fi.e#sharin+ site (e(+( &00 Foru,s- <aste2in- Drop2o6) to as3 others for he.p( 2lease take reasona*le steps to ensure that your work is not easily copied *y others0 For e6a,p.e- .o+ out of shared co,puters- do not .ea*e printouts of your code in pu/.ic .a/s- do not post your so.utions on a pu/.ic 1e/ site (e(+( <aste/in or GitIu/)- and do not e,ai. your so.ution to other students( )f a c.ass,ate approaches you and see3s an inappropriate .e*e. of he.p on an assi+n,ent- instead point the, to c.ass resources such as .ecture e6a,p.es- the te6t/oo3- the ;a)9- course ,essa+e foru,- or e,ai.in+ the section .eader or the instructor( 4e rea.iLe that peop.e ,a3e ,ista3es and /ad decisions so,eti,es- and 1e 1ant to +i*e you .ee1ay to correct a /ad de # cision if necessary( )f you su/,it a so.ution to an assi+n,ent /ut then .ater rea.iLe that you ha*e p.a+iariLed so,eone e.se:s 1or3- or that you ha*e not fo..o1ed the Ionor &ode- or for any other reason- you ha*e the option to retract your su*mission to the assi+n,ent- no %uestions as3ed( )f you fee. a need to e6ercise this option- contact the course head $' and indicate 1hich su/,ission(s) you 1ou.d .i3e to retract( Bo further action 1i.. /e ta3en- nor records 3ept( 4e periodica..y run similarity-detection software o*er a.. su/,itted student pro+ra,s- inc.udin+ pro+ra,s fro, past %uarters and any so.utions found on.ine on pu/.ic 1e/ sites( $his soft1are is po1erfu. and is *ery +ood at findin+ inap # propriate co..a/oration- e*en if the pro+ra, is a.tered to dis+uise the si,i.arity( )f 1e fee. that a c.ear *io.ation of the Ionor &ode has occurred- and that the student(s) in*o.*ed do not ta3e ti,e.y action to retract the su/,ission and correct the pro/.e,- 1e ,ay choose to under+o uni*ersity discip.inary proceedin+s *ia the Gffice of &o,,unity Standards( 'fter a.. of the a/o*e ru.es- you ,ay /e .eft thin3in+ that you shou.d ne*er ta.3 to another student or consu.t any he.p re # source- for fear of accidenta..y *io.atin+ the po.icies( 2ut ,any 3inds of co..a/oration and resources are accepta/.e and encoura+ed( )n co,puter science courses- it is usua..y appropriate to as3 othersMthe section .eader- instructor- or c.ass# ,atesMfor ideas- hints- and de/u++in+ he.p- or to ta.3 +enera..y a/out pro/.e,#so.*in+ strate+ies and pro+ra, structure( 4e encoura+e it( 2ut these discussions shou.d not approach a .e*e. 1here you are discussin+ specific .ines of code( )f they do- /e sure to cite the assistance you recei*e- and /e ,indfu. to interact in a 1ay that is consistent 1ith the po.icies( Most Ionor &ode cases are due to .ast#,inute panic3in+ in 1hich a student ,ade a poor decision to copy 1or3 fro, so,eone e.se( ?our o*era.. course +rade 1i.. decrease if you don:t turn in one of the assi+n,ents or retract a su/,ission/ut it is un.i3e.y that a sin+.e ,issed assi+n,ent 1i.. cause you to fai. the course( More .i3e.y- your +rade 1i.. drop /y a ha.f#step or t1o (e(+( fro, an ' to an '# or a 20)( )f you are ha*in+ a hard ti,e 1ith one of the assi+n,ents and .e+iti,# ate.y fee. that you cannot finish it- it is su/stantia..y /etter to just not su/,it it than to su/,it 1or3 that is not your o1n( ?ou are far /etter off ta3in+ a s.i+ht.y .o1er +rade than facin+ any ris3 of uni*ersity discip.inary proceedin+s( <.ease fee. free to contact the instructor if you ha*e any %uestions or if you are unsure 1hether a particu.ar /eha*ior fa..s 1ithin our po.icy( 4e rea.iLe that the *ast ,ajority of &S 1062 students understand the Ionor &ode and fo..o1 it earnest.y- and 1e appreciate your hard 1or3( 4e 1i.. do our /est to pro*ide you 1ith .ots of he.p and assistance a.on+ the 1ay so that you 1i.. not fee. a need or pressure to *io.ate the Ionor &ode( This document is copyright Marty Stepp, licensed under Creative Commons Attribution 2.5 License. All rights reserved.