CS 106B: Programming Abstractions in C++ Course Information
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
Stanford University Autumn 201
!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(
Course &eb Site and 'mai(
http877cs106/(stanford(edu7 '.. resources fro, c.ass 1i.. /e posted here( &hec3 the 1e/ site often for any i,portant course#re.ated announce,ents( 4e a.so re%uire you to ha*e a Stanford e,ai. account( )f necessary- +et one at http877e,ai.(stanford(edu7 (
•
%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(
Com,uter Access and Soft$are
$he depart,ent operates a student co,puter c.uster7.a/ ca..ed the C LaI C .ocated on the second f.oor of $ressider @nion( Section .eaders 1i.. /e a*ai.a/.e at the ;a)9 to he.p students 1ith pro/.e,s( $he ;a)9 is open fro, Sun#$hu at the hours of 6p, # ,idni+ht( $he course 1e/ site contains a .in3 to an up#to#date .ist of current ;a)9 he.per hours( $he reco,,ended soft1are for the course is ca..ed !t Creator- as 1e.. as so,e supportin+ soft1are such as a &00 co,# pi.er and the Ja*a De*e.op,ent Eit (JDE)( $his soft1are is a.ready insta..ed for you in the ;a)9( )f you 1ant to 1or3 on ho,e1or3 on your o1n ,achine- the course 1e/ site contains .in3s to do1n.oad the soft1are free of char+e( $he soft1are runs on 4indo1s- Mac- and ;inu6( )f you prefer usin+ other editin+ soft1are- you ,ay- /ut 1e 1i.. not pro*ide support for any pro/.e,s you ha*e settin+ up or usin+ such soft1are on your ,achine(
'*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(
!ome$or+ Submission and %ateness
Su/,it your assi+n,ents e.ectronica..y fro, the course 1e/ site( Aach assi+n,ent has a specific due date7ti,e .isted on its handout and7or the course 1e/ site( 'ssi+n,ents 1i.. +enera..y /e due short.y /efore the start of a .ecture( Aach student /e+ins the course 1ith % -late days- for use on ho,e1or3 assi+n,ents( ' .ate day a..o1s you to su/,it a pro+ra, up to one .ecture .ate 1ithout pena.ty( For e6a,p.e- if a pro+ra, is due on Monday at !p,- usin+ a .ate day a. # .o1s you to su/,it it on 4ednesday at !p, 1ithout pena.ty( Gr if a pro+ra, is due on Friday at noon- usin+ a .ate day a..o1s you to su/,it it up to the fo..o1in+ Monday at noon 1ithout pena.ty( ?ou ,ay use up to ! .ate days on any +i*en assi+n,entH you ,ay not use a.. " on the sa,e pro+ra,( Gnce you are out of .ate days- each successi*e .ecture:s 1orth of .ateness on a pro+ra, su/,ission incurs a pena.ty of one +rade C/uc3etC (a ✓0 turns into a ✓- or a ✓ turns into a ✓K- and so on)( 9e+ard.ess of ho1 ,any .ate days you ha*e .eft- you may not su*mit a program more than & lectures after it is due or after the .ast .ecture day( Bote that .ate days ,ay not /e used on the *ery .ast assi+n,ent- as it co,es due durin+ the fi# na.s period nor,a..y reser*ed for this course( More specifica..y- we will not accept any late su*missions for the final assignment- e*en if you ha*e re,ainin+ .ate days( ?ou shou.d thin3 of these C.ate daysC as e6tensions you ha*e /een +ranted ahead of ti,e- and use the, 1hen you ,i+ht ha*e other1ise tried to as3 for an e6tension( 's a resu.t- e6tensions /eyond the pro*ided free C.ate daysC 1i.. +enera..y not /e +ranted( )n very special circu,stances (pri,ari.y e6tended ,edica. pro/.e,s or other e,er+encies)- e6tensions ,ay /e +ranted /eyond the .ate days( '.. e6tension re%uests ,ust /e directed to the head $' no .ater than != hours before the pro+ra, is due( $nly the head (. or instructor will *e a*le to appro,e e/tensions ( )n particu.ar- p.ease do not as3 your section .eader for an e6tension- since they cannot +rant you one( )f you e*er 1ant us to de.ete and discard your su/,ission to a +i*en assi+n,ent for any reason- you ha*e the option to retract your su*mission- no %uestions as3ed( )f you fee. a need to e6ercise this option- contact the course head $' and in # dicate 1hich su/,ission(s) you 1ou.d .i3e to retract( )n +enera. you shou.d not e*er need to do this- e6cept in rare cases 1here you fee. you ha*e su/,itted i,proper 1or3( See Ionor &ode section for ,ore infor,ation(