Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Syllabus   version  7       Instructor     David  J.  Malan  ’99   [email protected] http://www.cs.harvard.edu/malan/

+1-­‐617-­‐523-­‐0925       Description     Introduction  to  principles  of  software  engineering  for  mobile  devices  and  best  practices,  including  code   reviews,   source   control,   and   unit   tests.     Topics   include   Ajax,   encapsulation,   event   handling,   HTTP,   memory   management,   MVC,   object-­‐oriented   design,   and   user   experience.     Languages   include   HTML5,   JavaScript,  Objective-­‐C,  and  PHP.    Projects  include  mobile  web  apps  and  native  iOS  apps.       Note     Students  are  encouraged,  but  not  required,  to  have  a  Mac  (running  Lion)  as  well  as  an  iPad,  iPhone,  or   iPod  touch;  students  without  a  Mac  will  have  access  to  Macs  in  labs  on  campus.    Students  will  work  on   projects  in  pairs;  students  are  encouraged  to  enroll  with  a  friend.       Prerequisite     Computer  Science  50  or  equivalent.                            

0  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Expectations     You   are   expected   to   attend   all   lectures   and   labs   and   to   meet,   with   the   same   partner   for   each,   four   milestones  for  each  of  four  projects.       Grades     A  student  must  ordinarily  meet  all  milestones  in  order  to  be  eligible  for  a  passing  grade  (i.e.,  A  to  D–)   unless  granted  an  exception  in  writing  by  one  of  the  course’s  heads.     Each  project’s  proposal,  design  doc,  style  guide,  and  code  reviews  are  evaluated  primarily  along  axes  of   clarity  and  thoroughness.    Each  project’s  alpha  is  evaluated  primarily  along  axes  of  scope.    Each  project’s   release   is   evaluated   primarily   along   axes   of   scope,   correctness,   design,   and   style.     Axes’   weights   may   vary  by  project.     The   course   is   not   graded   on   a   curve.     The   course   does   not   have   pre-­‐determined   cutoffs   for   final   grades.     Scores   on   projects’   milestones   may   be   normalized   across   graders   at   term’s   end.     Each   student’s   final   grade   is   individually   determined   after   input   from   the   teaching   fellows.     Prior   experience,   remarkable   effort,  and  upward  trending  may  be  considered.     Partners   ordinarily   receive   the   same   letter   grade   at   term’s   end,   except   in   cases   where   one   partner’s   contributions  to  projects  fall  short  of  expectations.       Website     The  address  of  this  course’s  website  is:     https://www.cs164.net/

  Visit   the   course’s   website   to   watch   videos,   to   get   help,   to   download   handouts   and   software,   and   to   follow  links  to  other  resources.      

1  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Books     No   books   are   required   for   this   course,   but   the   below   are   among   those   recommended   by   the   staff.     Realize  that  free,  if  not  superior,  resources  can  be  found  on  the  course’s  website.     Beginning  iOS  5  Application  Development   Wei-­‐Meng  Lee   John  Wiley  and  Sons,  Inc.,  2012   ISBN  978-­‐1-­‐118-­‐14425-­‐1     Design  Patterns:  Elements  of  Reusable  Object-­‐Oriented  Software   Erich  Gamma,  Richard  Helm,  Ralph  Johnson,  John  Vlissides   Addison-­‐Wesley,  1995   ISBN  978-­‐0-­‐201-­‐63361-­‐0     Don’t  Make  Me  Think:  A  Common  Sense  Approach  to  Web  Usability,  Second  Edition   Steve  Krug   New  Riders  Publishing,  2006   ISBN  0-­‐321-­‐34475-­‐8     Mythical  Man-­‐Month,  The   Frederick  P.  Brooks,  Jr.   Addison  Wesley  Longman,  Inc.,  1995   ISBN  978-­‐0-­‐201-­‐83595-­‐3     PHP  in  Action:  Objects,  Design,  Agility*   Dagfinn  Reirsøl,  Marcus  Baker,  Chris  Shiflett   Manning  Publications  Co.,  2007   ISBN  978-­‐1-­‐932394-­‐757     Pro  JavaScript  Design  Patterns   Ross  Harmes,  Dustin  Diaz   Apress,  2008   ISBN  978-­‐1-­‐59059-­‐908-­‐2     Programming  in  Objective-­‐C,  Fourth  Edition   Stephen  G.  Kochan   Pearson  Education,  Inc.,  2012   ISBN  978-­‐0-­‐321-­‐81190-­‐5  

*

 Out  of  print  but  available  used.   2  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Lectures     Lectures  take  place  in  Harvard  Hall  104  on  Mondays  from  1:00pm  until  3:00pm.         Each   lecture   is   filmed   and   made   available   within   48   hours   in   streaming   and   downloadable   formats     (MP3  and  MP4).    Once  posted,  these  recordings  remain  available  until  semester’s  end.    You  are  welcome   to  watch  or  listen  to  a  recording  if  you  are  unable  to  attend  some  lecture  in  person.    You  are  encouraged   to  watch  or  listen  to  these  recordings  for  the  sake  of  review.       A  schedule  of  lectures,  subject  to  change,  appears  below.       Lecture  0:  Introduction   Mon  1/23     Lecture  1:  MVC   Mon  1/30     Lecture  2:  Relational  Databases   Mon  2/6     Lecture  3:  Design  Patterns   Mon  2/13     Lecture  4:  Objective-­‐C   Mon  2/27     Lecture  5:  iOS   Mon  3/5     Lecture  6:  iOS,  continued   Mon  3/19     Lecture  7:  iOS,  continued   Mon  3/26     Lecture  8:  Unit  Tests   Mon  4/2     Lecture  9:  Scalability   Mon  4/9     Lecture  10:  Windows  Mobile   Mon  4/16     Lecture  11:  Security   Mon  4/23  

3  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Projects     A  schedule  of  deadlines  for  projects’  milestones,  subject  to  change,  appears  below.    Extensions  are  not   ordinarily  granted.     Project  0:  Staff’s  Choice  of  Web  Apps    

Mon  

Tue  

Wed  

Thu  

Fri  

 

 

 

 

2/6   Design  Doc,  Style  Guide    

 

 

 

 

 

 

 

     

2/3   Proposal   2/10   Beta    

 

2/24   Release  

    Project  1:  Students’  Choice  of  Web  Apps    

Mon  

Tue  

Wed  

Thu  

Fri  

2/20   Proposal    

 

 

 

 

2/28   Design  Doc,  Style  Guide   3/6   Alpha    

 

 

 

     

 

 

 

 

 

 

 

3/23   Release  

       

    Project  2:  Staff’s  Choice  of  Native  Apps    

Mon  

Tue  

Wed  

Thu  

Fri  

 

 

 

 

 

3/27   Design  Doc,  Style  Guide   4/3   Alpha    

 

 

3/23   Proposal    

 

 

 

 

 

4/13   Release  

   

    Project  3:  Students’  Choice  of  Native  Apps    

Mon  

Tue  

Wed  

Thu  

Fri  

 

4/10   Proposal   4/17   Design  Doc,  Style  Guide   4/24   Alpha    

 

 

 

 

 

 

 

 

 

 

5/3   Release  

 

     

4  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

  Sections     Lectures   are   supplemented   by   weekly   sections   led   by   a   teaching   fellow.     Sections   provide   you   with   opportunities   to   explore   and   discuss   course   materials   in   a   more   intimate   environment,   with   only   the   teaching  fellow  and  a  handful  of  classmates  present,  as  well  as  to  dive  into  hands-­‐on  activities.     Each   section   is   filmed   and   made   available   within   48   hours   in   streaming   and   downloadable   formats     (MP3  and  MP4).    Once  posted,  these  recordings  remain  available  until  semester’s  end.    You  are  welcome   to  watch  or  listen  to  a  recording  if  you  are  unable  to  attend  some  section  in  person.         A  schedule  of  sections  appears  on  the  course’s  website.           Design  Reviews,  Code  Reviews,  Office  Hours     Lectures   are   also   supplemented   by   design   reviews,   code   reviews,   or   office   hours,   depending   on   the   week.    Design  reviews  are  opportunities  to  discuss  your  projects’  designs  with  a  teaching  fellow.    Code   reviews   are   opportunities   to   review   your   projects’   code   with   a   teaching   fellow.     And   office   hours   are   opportunities  for  one-­‐on-­‐one  assistance  with  your  projects.     A  schedule  of  design  reviews,  code  reviews,  and  office  hours  appears  on  the  course’s  website.           SEAS  Design  Fair     From  11am  until  4pm  on  Tue  5/1  in  Maxwell  Dworkin  is  the  SEAS  Design  Fair,  a  school-­‐wide  display  of   projects   designed   by   students   in   courses   in   Applied   Mathematics,   Computer   Science,   and   Engineering   Sciences.    Not  only  is  the  SEAS  Design  Fair  a  venue  at  which  to  see  classmates’  projects  and  demo  your   own,  it  is  an  opportunity  to  mingle  with  students,  faculty,  and  staff  from  across  campus.    Attendance  is   expected  of  all  students.    Family  and  friends  are  welcome  to  join.        

5  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Academic  Honesty       All  work  that  you  do  toward  fulfillment  of  this  course’s  expectations  must  be  the  work  of  you  and  your   partner.     Collaboration   with   anyone   other   than   the   partner   with   whom   you   begin   the   semester   is   not   permitted   unless   one   of   the   course’s   heads   approves   a   change   of   partner   in   writing.     Partners   must   contribute   equitably   to   each   milestone:   you   may   not   implement   most   or   all   of   some   project’s   milestone   and  submit  it  on  behalf  of  your  two-­‐person  team.    

Viewing  or  copying  another  individual’s  work  (even  if  left  by  a  printer,  stored  in  an  executable  directory,   or   otherwise   exposed)   or   lifting   material   from   a   book,   website,   or   other   source—even   in   part—and   presenting  it  as  your  own  constitutes  academic  dishonesty,  as  does  showing  or  giving  your  work,  even  in   part,   to   another   student   or   soliciting   the   work   of   another   individual.     Similarly   is   dual   submission   academic   dishonesty:   you   may   not   submit   the   same   or   similar   work   to   this   course   that   you   have   submitted   or   will   submit   to   another.     Nor   may   you   provide   or   make   available   solutions   to   projects   to   individuals  who  take  or  may  take  this  course  in  the  future.    Moreover,  submission  of  any  work  that  you   intend  to  use  outside  of  the  course  (e.g.,  for  a  job)  must  be  approved  by  the  staff.        

You  may  read  and  comment  upon  classmates’  code  toward  fulfillment  of  projects’  code  reviews  but  only   for  classmates  whose  code  is  assigned  to  you  by  the  course’s  staff  for  review.    You  may  integrate  ideas   and  techniques  that  you  glean  from  your  reviews  of  classmates’  code  and  from  classmates’  reviews  of   your   code   into   your   own   work,   so   long   as   you   attribute   those   ideas   and   techniques   back   to   your   classmates,  as  with  comments  in  your  own  code.    As  for  classmates  beyond  your  own  partner  and  those   with   whom   you’re   involved   in   reviews,   you   may   discuss   projects,   including   designs,   but   you   may   not   share  code.    In  other  words,  you  may  communicate  with  those  classmates  in  English,  but  you  may  not   communicate   in   PHP,   JavaScript,   or   Objective-­‐C.     If   in   doubt   as   to   the   appropriateness   of   some   discussion,  contact  the  course’s  heads.        

You  may  turn  to  the  Web  for  instruction  beyond  the  course’s  lectures  and  labs,  for  references,  and  for   solutions   to   technical   difficulties,   but   not   for   outright   solutions   to   projects   or   portions   thereof.     However,   failure   to   cite   (as   with   comments)   the   origin   of   any   code   or   technique   that   you   do   discover   outside   of   the   course’s   lectures   and   labs   (even   while   respecting   these   constraints)   and   then   integrate   into  your  own  work  may  be  considered  academic  dishonesty.    

All   forms   of   academic   dishonesty   are   dealt   with   harshly.     If   the   course   refers   some   matter   to   the   Administrative   Board   and   the   outcome   for   some   student   is   Admonish,   Probation,   Requirement   to   Withdraw,   or   Recommendation   to   Dismiss,   the   course   reserves   the   right   to   impose   local   sanctions   on   top   of   that   outcome   for   that   student   that   may   include,   but   not   be   limited   to,   a   failing   grade   for   work   submitted  or  for  the  course  itself.        

6  <  8    

Computer  Science  164:  Mobile  Software  Engineering   Harvard  College   Spring  2012  

Acknowledgement     Computer  Science  164  (CS164)  plans  to  make  video  and  audio  recordings  of  this  course’s  lectures  and/or   labs  and/or  other  events,  with  the  aim  of  making  the  content  of  the  course  more  widely  available.    The   recordings,  or  edited  versions  of  them,  may  be  made  available  to  other  Harvard  students,  to  students  at   other   educational   institutions,   and   to   the   broader   public,   via   the   Internet,   television,   DVD,   or   other   means.     It   is   also   possible   that   video   and   audio   recordings   of   CS164   may   be   used   to   make   other   derivative   works   in   the   future.     Students   may   elect   not   to   take   part   in   this   CS164   recording   and   dissemination  project  (the  “Project”),  and  may  still  participate  fully  in  CS164.         By   enrolling   in   this   course,   you   affirm   that   you   understand   that,   if   you   do   not   wish   to   be   included   in   the   video  recordings  of  CS164,  you  must  sit  in  the  “no  film”  section  of  the  classroom.    From  the  “no  film”   section,  you  will  be  able  to  participate  fully  in  CS164  discussions,  and  no  video  recording  of  you  will  be   used  as  part  of  the  Project.    Though  you  understand  that  your  name  and/or  voice  might  still  be  recorded   by  microphones  outside  of  the  “no  film”  section.    You  recognize  that,  if  you  choose  at  any  time  to  sit  in   the  part  of  the  classroom  that  is  being  filmed  or  walk  within  sight  of  any  cameras,  you  will  be  consenting   to  be  recorded  on  video  for  use  in  the  Project.    In  that  event,  you  agree  that,  even  if  you  do  not  sign  any   other   authorization,   CS164   may   make   video   and   audio   recordings   of   you   and   your   participation,   and   may  use  the  recordings  as  it  sees  fit  without  further  obligation  or  liability  to  you.     By  enrolling  in  this  course,  you  affirm  that  you  are  at  least  18  years  of  age  and  competent  to  agree  to   these  terms.†    This  Acknowledgement  is  a  binding  agreement  and  is  agreed  to  as  a  document  under  seal   governed  by  the  laws  of  the  Commonwealth  of  Massachusetts.    



 Students  who  are  not  at  least  18  years  of  age  may  still  enroll  but  must  first  alert  the  course’s  instructor  via  email.   7  <  8    

Syllabus - cs164

Computer Science 164: Mobile Software Engineering ... Description .... intend to use outside of the course (e.g., for a job) must be approved by the staff. ... Administrative Board and the outcome for some student is Admonish, Probation, ...

123KB Sizes 0 Downloads 380 Views

Recommend Documents

Untitled - cs164
High Performance MySQL. Page 12. partitioning. High Performance MySQL. Page 13. high availability. High Performance MySQL. Page 14. realtime apps ...

Specification - cs164
need a Mac for the course until Mon 3/19, but Xcode comes with iOS Simulator, which might prove handy for testing in the short term. If you do have a Mac, know ...

Specification - cs164
Computer Science 164: Mobile Software Engineering. Harvard College .... Log into your Bitbucket account and create a new, private repo as follows: □ Select ...

Evil Hangman - cs164
thereafter, you might also want to sign up for the iOS Developer Program at ... Because the course is part of the iOS Developer University Program, you will be ...

Mobile Software Engineering - cs164
singletons, factories, observers, ... Page 23. unit testing. PHPUnit, Selenium, ... Page 24. UX. Page 25. performance latency, caching, ... Page 26. source control git, subversion. Page 27. IDEs. Xcode, ... Page 28. PHP frameworks. CodeIgniter. Page

Specification - cs164
Fri. 2/3. Proposal. 2/6. Design Doc, Style Guide. 2/10. Beta. 2/24. Release ... or otherwise exposed) or lifting material from a book, website, or other ... Help is available throughout the week at http://help.cs164.net/, and we'll do our best to res

Untitled - cs164
web hosts. Bluehost. DreamHost. Go Daddy. Host Gator pair Networks ... Page 3. VPSes. DreamHost. Go Daddy. Host Gator. Linode pair Networks. Slicehost.

design patterns - cs164
sections labs design reviews, code reviews, office hours alphas new release cycle. Page 5. new release cycle. Page 6. workload. Page 7. project 1. Page 8 ...

Evil Hangman - cs164
thereafter, you might also want to sign up for the iOS Developer Program at ... Because the course is part of the iOS Developer University Program, you will be ...

iOS: Evil Hangman Walkthrough - cs164
Mar 21, 2012 - Property Lists. Equivalence. Classes. Protocols. Transitioning. Between. Views. Settings. iOS: Evil Hangman Walkthrough. CS164 Walkthrough ...

lecture1/html/cs164/css/index.html
lecture1/html/cs164/css/index.html. . 10. 11. . 12. 13. . 14. . 15. . 16. . 17.

lecture1/html/cs164/css/index.html
Syllabus. 24. ...... lecture1/html/mvc/8/application/views/homepage/lecture.php.

Evil Hangman - CS50 CDN - cs164
should be prompted to Create an Apple ID or Use an existing Apple ID. Review the explanation beneath each option, select the appropriate one, click Continue, then follow the on-‐screen prompts. If you plan to submit an app to Apple's App Store, whe

iOS: Evil Hangman Walkthrough - cs164
Mar 21, 2012 - for each word in set: determine equivalence class for word; add word to equivalence class; determine largest equivalence class; remove all ...

Syllabus
To contact the staff, email: [email protected] ... HTML, XHTML, and CSS: Your visual blueprint for designing effective Web pages. Rob Huddleston ... A schedule of lectures, subject to change, appears below. Lecture 1: Hardware.

Syllabus
Description. This course is all about understanding: understanding what's going on inside your computer when you flip on the switch, why tech support has you ...

lecture7/Gestures/Gestures/AppDelegate.h // 1. // AppDelegate ... - cs164
111. 112. // listen for right swipe. 113. ... listen for left swipe. 118. swipeGesture ...... CGRect square = CGRectMake(0.0f, 0.0f, 10.0f, 60.0f);. 18. [[UIColor ...

Syllabus
Prior programming experience in any object-oriented language and familiarity with HTML is assumed. Distance students must have access to an Intel-based ...

Syllabus
Movie Night: Pirates of Silicon Valley. Mon 2/8. Lecture 3: The Internet. Mon 2/22. Lecture 4: The Internet, Continued. Mon 3/1. Lecture 5: Multimedia. Mon 3/22.

Syllabus
Instructor. : Fikret Ercal - Office: CS 314, Phone: 341-4857. E-mail & URL : [email protected] http://web.mst.edu/~ercal/index.html. Office Hours : posted on the class website. **If there is no prior notice and the instructor is late for the class, stude

Syllabus
Computer Science E-‐1: Understanding Computers and the Internet ... do on the Internet can be watched by others, and how your computer can become ...

path=/ Set-Cookie: secret=12345 - cs164
Apr 23, 2012 - Page 12. public-key crypto http://ww.nuitari.de/crypto.html. Page 13. Diffie-Hellman (DLP). Radia Perlman. Page 14. Radia Perlman. Page 15 ...

iOS: XCode and Interface Builder - cs164
Mar 7, 2012 - +: class methods, sent to class, not object (e.g. alloc). Page 5. iOS: XCode and Interface. Builder. Tommy. MacWilliam. Objective-C. Review.