Difference between revisions of "CISC181 F2017"

From class_wiki
Jump to: navigation, search
(Schedule)
(Schedule)
 
(115 intermediate revisions by the same user not shown)
Line 15: Line 15:
 
|-
 
|-
 
|valign="top"|'''Instructor'''
 
|valign="top"|'''Instructor'''
|Prof. Christopher Rasmussen<br>E-mail: cer@cis.udel.edu<br>Office: Smith 446<br>Office hours: xxx day, yyy time
+
|Prof. Christopher Rasmussen<br>E-mail: cer@cis.udel.edu<br>Office: Smith 446<br>Office hours: Wednesdays, 10:15 am-12:15 pm
 
|-
 
|-
 
|valign="top"|'''TA'''
 
|valign="top"|'''TA'''
|Chunbo Song, E-mail: songcb@udel.edu, office hours: ??? in Smith 201 (during weeks when there are labs)
+
|Chunbo Song, E-mail: songcb@udel.edu, office hours: Fridays 2-3 pm, Mondays 3-4 pm in Smith 201 (during weeks when there are labs)
|-
 
|valign="top"|'''Discussion'''
 
|We will be using Piazza as a forum for questions about labs, homeworks, exams, and any other course topic. Rather than sending e-mail to a TA or the professor, post your question there so that everyone else can see the answer, and other students can contribute their knowledge.  If your question involves posting code, make sure it is the minimum amount necessary to explain the problem you are having.
 
* To enroll: http://www.piazza.com/udel/fall2017/cisc181010
 
* After you enroll: http://piazza.com/class#fall2017/cisc181010
 
 
|-
 
|-
 
|valign="top"|'''Schedule'''
 
|valign="top"|'''Schedule'''
Line 36: Line 31:
 
|
 
|
 
* Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below)
 
* Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below)
** Click the "Sign up" link at [http://www.zyante.com zyante.com] and follow the instructions (the cost should be about $48).  The class code is "UDELCISC181RasmussenFall2017".
+
<!--** ''This is an online textbook.  As of 8/29, I am still waiting for a sign-up code which will give everyone access.  The cost should be about $50''-->
 +
** Click the "Create account" link at [http://www.zyante.com zyante.com] and follow the instructions (the cost should be about $48).  The class code is "UDELCISC181Fall2017"
 
* Programming platform: [http://developer.android.com/sdk/index.html Android Studio] (available free for Windows, Mac OS X, and Linux)
 
* Programming platform: [http://developer.android.com/sdk/index.html Android Studio] (available free for Windows, Mac OS X, and Linux)
 
** [[CISC181_F2017_NewAndroidStudioProject | How to make a new, pure-Java (not Android) project from scratch]]
 
** [[CISC181_F2017_NewAndroidStudioProject | How to make a new, pure-Java (not Android) project from scratch]]
Line 42: Line 38:
 
|valign="top"|'''Grading'''
 
|valign="top"|'''Grading'''
 
|
 
|
<!--* 10%  [[CISC181_F2017_ActivityCompletion|Activity completion in ZJ]] -->
+
* 36%  Labs (4% each).  These are sets of small-to-medium tasks/programs which must be done '''individually'''.  Labs 0-7 go out each Tuesday and must be completed by '''Monday night of the following week'''. Lab #8 will take place completely during the lab session (if you absolutely cannot attend, you will have an opportunity to make it up at home). [[CISC181_F2017_LabGrading|Lab grading details here]]
* 40%  Labs (4% each).  These are sets of small tasks/programs which must be done '''individually''' and are due '''Friday night of the same week'''. [[CISC181_F2017_LabGrading|More details here]]
+
* 9%  [[CISC181_F2017_ActivityCompletion|Activity completion in ZJ]] before day of midterm
* 20%  [[CISC181_F2017_ProjectRequirements | Programming project]] This is a two-step, two-week assignment which may be done as part of a '''pair'''
 
 
* 20%  Midterm exam
 
* 20%  Midterm exam
 +
* 15%  [[CISC181_F2017_ProjectRequirements | Programming project]] This is a two-step, two-week assignment which may be done as part of a '''pair'''
 
* 20%  Final exam (functionally, this is a second midterm)
 
* 20%  Final exam (functionally, this is a second midterm)
 
* "Bonus 2%"  Complete end-of-semester course evaluation
 
* "Bonus 2%"  Complete end-of-semester course evaluation
Line 55: Line 51:
 
For the overall course grade, a preliminary absolute mark will be assigned to each student based on the percentage of the total possible points they earn according to the standard formula: A = 90-100, B = 80-90, C = 70-80, etc., with +'s and -'s given for the upper and lower third of each range, respectively.  Based on the distribution of preliminary grades for all students (i.e., "the curve"), the instructor may increase these grades monotonically to calculate final grades.  This means that your final grade can't be lower than your preliminary grade, and your final grade won't be higher than that of anyone who had a higher preliminary grade.   
 
For the overall course grade, a preliminary absolute mark will be assigned to each student based on the percentage of the total possible points they earn according to the standard formula: A = 90-100, B = 80-90, C = 70-80, etc., with +'s and -'s given for the upper and lower third of each range, respectively.  Based on the distribution of preliminary grades for all students (i.e., "the curve"), the instructor may increase these grades monotonically to calculate final grades.  This means that your final grade can't be lower than your preliminary grade, and your final grade won't be higher than that of anyone who had a higher preliminary grade.   
  
We will post "if the course ended now" letter grades twice: after the midterms are graded and just before the final. There will be '''NO''' extra credit opportunities at the end of the semester (save the course evaluation), so do your best work early! If you have any questions about grading or expectations at any time, please feel free to ask me.
+
<!--We will post "if the course ended now" letter grades twice: after the midterms are graded and just before the final. -->There will be '''NO''' extra credit opportunities at the end of the semester (except the course evaluation), so do your best work early! <!-- If you have any questions about grading or expectations at any time, please feel free to ask me.-->
 +
|-
 +
|valign="top"|'''Discussion'''
 +
|We will be using Piazza as a forum for questions about labs, homeworks, exams, and any other course topic. Rather than sending e-mail to a TA or the professor, post your question there so that everyone else can see the answer, and other students can contribute their knowledge.  If your question involves posting code, make sure it is the minimum amount necessary to explain the problem you are having.
 +
* To enroll: http://www.piazza.com/udel/fall2017/cisc181010
 +
* After you enroll: http://piazza.com/class#fall2017/cisc181010
 
|-
 
|-
 
|valign="top"|'''Academic honesty'''
 
|valign="top"|'''Academic honesty'''
Line 65: Line 66:
 
|
 
|
 
* Online Java compilers
 
* Online Java compilers
** [http://www.tutorialspoint.com/compile_java_online.php codingground]
+
** [https://www.tutorialspoint.com/compile_java8_online.php codingground]
 
** [https://ideone.com/ Ideone]
 
** [https://ideone.com/ Ideone]
 
** [http://www.browxy.com/ Browxy]
 
** [http://www.browxy.com/ Browxy]
Line 96: Line 97:
  
 
''Note'': The blue squares in the "#" column below indicate Mondays. <br>
 
''Note'': The blue squares in the "#" column below indicate Mondays. <br>
[https://udcapture.udel.edu/2017s/cisc181-080/ UDCapture link] (the lecture from 2/9 is missing because UDCapture didn't know we had moved to Penny)
+
[https://udcapture.udel.edu/2017f/cisc181-010/ UDCapture link]  
 
<br><br>
 
<br><br>
  
Line 112: Line 113:
 
|Course details; IDE overview; Hello, Java
 
|Course details; IDE overview; Hello, Java
 
|ZJ 1.2-1.3, 1.5, 1.10, 16.1
 
|ZJ 1.2-1.3, 1.5, 1.10, 16.1
|<!--[[CISC181_S2017_Lab1 | Lab #1: Getting started]]<br>--><!--[https://docs.google.com/presentation/d/1TQzn7Hda-1JyF9OsY196BN5pjxNLmkPk7Mi_8SBbQ0A/edit?usp=sharing slides]-->
+
|<!--[[CISC181_S2017_Lab1 | Lab #1: Getting started]]<br>-->[https://docs.google.com/presentation/d/1I8mVBMvJ4d63nN7inNRQ4MX5cs321gGQsVunC6DwTZs/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|
 
|style="background:rgb(102, 204, 255)"|
Line 119: Line 120:
 
|
 
|
 
|
 
|
|
+
|''[[CISC181_F2017_Lab0 | Lab #0: Math, formatting, branching]] (Sep. 5)''
 
|-
 
|-
 
|2
 
|2
Line 126: Line 127:
 
|Basic input, output; <tt>Scanner</tt> and <tt>Math</tt> class, expressions, formatting for printing; naming, formatting, commenting styles
 
|Basic input, output; <tt>Scanner</tt> and <tt>Math</tt> class, expressions, formatting for printing; naming, formatting, commenting styles
 
|ZJ 1.4, 1.11, 2.2-2.7, 4.1, 4.2, 16.3
 
|ZJ 1.4, 1.11, 2.2-2.7, 4.1, 4.2, 16.3
|<!--[https://docs.google.com/presentation/d/1Gb4AED65H57gYjEyp4U7Ug0oAbA_6M6igEW42PgteUM/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1Y46VKQw0Ilp9ppLzE_1_JdtidG0daQpcF0a2vVtMqeU/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|3
 
|style="background:rgb(102, 204, 255)"|3
|Sep. 11
+
|Sep. 11<br>
 +
''Register/add deadline Sep. 12''
 
|Variables, expressions, branching
 
|Variables, expressions, branching
 
|Data types, constants, type conversions; <tt>if/else</tt>, <tt>switch</tt>, comparisons
 
|Data types, constants, type conversions; <tt>if/else</tt>, <tt>switch</tt>, comparisons
 
|ZJ 2.6, 4.3-4.5, 4.7-4.8, 5-5.6, 5.11-5.13
 
|ZJ 2.6, 4.3-4.5, 4.7-4.8, 5-5.6, 5.11-5.13
|''[[CISC181_S2017_Lab1 | Lab #1: Math, formatting, branching]] (Feb. 13)''<!--<br>
+
|''[[CISC181_F2017_Lab1 | Lab #1: More math, basic loops]] (Sep. 12)''<br>
[https://docs.google.com/presentation/d/1io9vyIkkjZ-c1hvEHYt6D-1VUZuI0JSDIlzb3yU8oLc/edit?usp=sharing slides]-->
+
[https://docs.google.com/presentation/d/1WT1UiwcqoVFUKU8kgHW1zdAptGIUc3x_gh7yAW7W3iE/edit?usp=sharing slides]
 
|-
 
|-
 
|4
 
|4
 
|Sep. 13
 
|Sep. 13
 
|Loops
 
|Loops
|<tt>while</tt>, <tt>for</tt> (single and nested); <tt>break</tt>, <tt>continue</tt>; randomness
+
|<tt>while</tt>, <tt>for</tt> (single and nested); <tt>break</tt>, <tt>continue</tt>
 
|ZJ 6-6.6, 6.8-6.9, 4.9
 
|ZJ 6-6.6, 6.8-6.9, 4.9
|<!--[https://docs.google.com/presentation/d/1xkQteTx8aRYLYQTb8qWG_SPAZ21TreA3kcJXjBK9c6k/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1cXLfYiU7YJaXANzIi9ZBHAW2-CA5Ai6JxJbotKgYVuA/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|5
 
|style="background:rgb(102, 204, 255)"|5
|Sep. 18<br>
+
|Sep. 18
''Register/add deadline Feb. 20''
+
|Basic arrays and graphics
|Basic graphics
+
|Randomness; single-dimensional arrays; graphics class: shapes, color, text; programming tips and API lookup
|Graphics class: shapes, color, text; programming tips and API lookup
 
 
|<!--ZJ 5, -->[http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html Making windows in Swing], [http://docs.oracle.com/javase/tutorial/2d/overview/index.html Java 2D API]
 
|<!--ZJ 5, -->[http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html Making windows in Swing], [http://docs.oracle.com/javase/tutorial/2d/overview/index.html Java 2D API]
|''[[CISC181_S2017_Lab2 | Lab #2: Basic graphics]] (Feb. 20)''<br>
+
|''[[CISC181_F2017_Lab2 | Lab #2: Basic arrays and graphics]] (Sep. 19)''<br>
<!--[https://docs.google.com/presentation/d/1ZaOoNufsEeJm4_2TVUMlZmsdJxSlVpsxqMvLKFJLUyA/edit?usp=sharing slides]-->
+
[https://docs.google.com/presentation/d/1a3ZKMl2g7wf6Qh6EwTHgQbtKBhJa-E9YeiCGFK-I0Lw/edit?usp=sharing slides]
 
|-
 
|-
 
|6
 
|6
Line 157: Line 158:
 
|Class concepts, reference variables, constructors, overloading, overriding; intro to access
 
|Class concepts, reference variables, constructors, overloading, overriding; intro to access
 
|ZJ 3-3.5, 9.2-9.4, 10.3
 
|ZJ 3-3.5, 9.2-9.4, 10.3
|<!--[https://docs.google.com/presentation/d/1pStnMQSurKqYAlL1jZvJufoAWypA9QxRb6pM5aUFuO4/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1kZvwZUzYMmjLTIPDcVFj_aowcs2YUqiK8OfCwIPgClk/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|7
 
|style="background:rgb(102, 204, 255)"|7
 
|Sep. 25
 
|Sep. 25
 
|Objects/methods/classes
 
|Objects/methods/classes
|More about public/private, accessors/mutators, static, primitive wrapper classes; <tt>this</tt>; pass-by-value vs. pass-by-reference
+
|More about public/private, accessors/mutators, <tt>static</tt>
 
|ZJ 2.10, 3.7, 9.5-9.6, 9.11
 
|ZJ 2.10, 3.7, 9.5-9.6, 9.11
|''[[CISC181_S2017_Lab3 | Lab #3: Objects]] (Feb. 27)''<!--<br>[https://docs.google.com/presentation/d/1Gc9mkwBPMXUpvJuZ-HpvlPtweIKUJXmrnhltriTMmRk/edit?usp=sharing slides]-->
+
|''[[CISC181_F2017_Lab3 | Lab #3: Objects]] (Sep. 26)''<br>[https://docs.google.com/presentation/d/128WV4DsV3z7LpnZE8wYOQ5CmBTt_WyJVMUUfhXszJAI/edit?usp=sharing slides]
 
|-
 
|-
 
|8
 
|8
 
|Sep. 27
 
|Sep. 27
 
|Objects/methods/classes
 
|Objects/methods/classes
|Inheritance (derived classes, polymorphism), abstract classes
+
|Primitive wrapper classes; object comparison; <tt>this</tt>; start inheritance
 
|ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6
 
|ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6
|<!--[https://docs.google.com/presentation/d/1hCkf4qGxH5lI-P7CvyM2fXMZC7R1r2D0Yg3MlFZS0YQ/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1RWAjqgN6bC9g_tY_hF2Ndlisd5-HPBfFSBteg7x62os/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|9
 
|style="background:rgb(102, 204, 255)"|9
 
|Oct. 2
 
|Oct. 2
|Arrays and interfaces
+
|Objects/methods/classes
|Interfaces; single-, multi-dimensional arrays; <tt>ArrayList</tt> (collections); <tt>Comparable vs. Comparator</tt>; enhanced <tt>for</tt>
+
|Finish inheritance (derived classes, polymorphism)  
|ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5, [https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html Object ordering]
+
|
|<!--[https://docs.google.com/presentation/d/15Z1oUTufq0rgNGFQrhBTOkL8KNA-3DK8oX5hUKHb474/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1_dxpCAN7eIjtRbDQceX0n75sInU8ETGaEFkGvuZaHuA/edit?usp=sharing slides]<br>-->''[[CISC181_S2017_Lab4 | Lab #4: Arrays]] (Mar. 6)''<br>[https://docs.google.com/presentation/d/13QHNLujB-XxbmaXq3jGA6aC9So2q0BlpFCzWd-eyaLE/edit?usp=sharing slides]
+
|<!--[https://docs.google.com/presentation/d/15Z1oUTufq0rgNGFQrhBTOkL8KNA-3DK8oX5hUKHb474/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1_dxpCAN7eIjtRbDQceX0n75sInU8ETGaEFkGvuZaHuA/edit?usp=sharing slides]<br>-->''[[CISC181_F2017_Lab4 | Lab #4: Array lists]] (Oct. 3)''<br>[https://docs.google.com/presentation/d/1fxtgrhycw30CrmSUXUnQxbum_Noclshws0lLRb_xn6U/edit?usp=sharing slides]
 
<!--[[CISC181_S2017_CardClass | Card class]], [[CISC181_S2017_DeckClass | Deck class]]-->
 
<!--[[CISC181_S2017_CardClass | Card class]], [[CISC181_S2017_DeckClass | Deck class]]-->
 
|-
 
|-
 
|10
 
|10
 
|Oct. 4
 
|Oct. 4
|Strings & streams
+
|Arrays and array lists
|Basic string operations; stream types, URLs
+
|Multi-dimensional arrays; <tt>ArrayList</tt> (collections), pass-by-value vs. pass-by-reference
|ZJ 5.7-5.10, 16.4, [http://download.oracle.com/javase/tutorial/networking/urls/index.html URL tutorial]
+
|ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5
|[https://docs.google.com/presentation/d/1sW_7WUyubV8aqwurltT8Z-bWtrFWdpW99WSmVW6O4iM/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1B0FBSoGbNGqSAzMJdr_wcJVVb7oIfou-UuQNHGmQBjg/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|11
 
|style="background:rgb(102, 204, 255)"|11
 
|Oct. 9
 
|Oct. 9
|Strings & streams
+
|Interfaces and strings
|Reading, writing text files; <tt>String.split()</tt>; regular expressions; using <tt>ArrayList</tt> and <tt>enum</tt> for cards
+
|Abstract classes, <tt>Comparable vs. Comparator</tt>, basic string operations
|ZJ 16.5, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation]
+
|ZJ 5.7-5.10, 16.4, [https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html Object ordering]
|[https://drive.google.com/open?id=1DnSnRiRXdtWQTfcNAKarvhHifePBbj_2RGuVC9pORBk slides]
+
|[https://drive.google.com/open?id=1Ru3DH8vx5rnGrH3cLQjL6nEL3OZNlyJ4MC-nZDvxLQs slides]
''[[CISC181_S2017_Lab5 | Lab #5: Files]] (Mar. 13)''
+
''[[CISC181_F2017_Lab5 | Lab #5: Files]] (Oct. 10)''
 
|-
 
|-
 
|12
 
|12
 
|Oct. 11
 
|Oct. 11
|Miscellaneous
+
|Streams and patterns
|
+
|Stream types, reading text files; <tt>String.split()</tt>; regular expressions
|
+
|ZJ 16.5, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation]
|
+
|[https://docs.google.com/presentation/d/11XdFO8KrfDq8i3WYCB3T5bFSqeKn1rIGW0re0Ok7-hI/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|13
 
|style="background:rgb(102, 204, 255)"|13
Line 208: Line 209:
 
|
 
|
 
|
 
|
|[https://docs.google.com/presentation/d/1Wlb27QLH5Pmlg5vAdpfx3HSFmaNi6VMbGMNb3UpnhIM/edit?usp=sharing slides]<br>
+
|'''NO LAB Oct. 17 -- Activity completion deadline!'''<br>
 +
[https://docs.google.com/presentation/d/1-TMi3y49l7pO9p_LVyJjfcBcps1uO7sPd3_oF6ptjJI/edit?usp=sharing slides]<br>
 
[http://nameless.cis.udel.edu/class_data/181_s2017/2011_midterm.pdf Partial sample midterm]
 
[http://nameless.cis.udel.edu/class_data/181_s2017/2011_midterm.pdf Partial sample midterm]
 
|-
 
|-
Line 219: Line 221:
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|15
 
|style="background:rgb(102, 204, 255)"|15
|Oct. 23
+
|Oct. 23<br>''Withdraw deadline Oct. 24''
|
+
|Generics, collections
|
+
|Generic methods, classes; <tt>Collection</tt> vs. <tt>Collections</tt>; <tt>Set</tt> interface
|
+
|[https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]
|
+
|'''NO LAB on Oct. 24'''<br>
 +
[https://docs.google.com/presentation/d/165RXSCezQBQLWeAWInmr2VgKbtPYzHqFdmAqas_Qzrw/edit?usp=sharing slides]
 
|-
 
|-
 
|16
 
|16
 
|Oct. 25
 
|Oct. 25
 
|Go over midterm; testing, error-handling
 
|Go over midterm; testing, error-handling
|Exceptions
+
|<tt>Map</tt> interface, exceptions
 
|ZJ 17-17.3, [https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html Exceptions]
 
|ZJ 17-17.3, [https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html Exceptions]
|<!--[[CISC181_S2017_Lab7 | Lab #7: Inheritance]]<br> [https://docs.google.com/presentation/d/141leM8Mo-mX1Ms1cZKXASO_LdMjmV3pKybNtNcxVxjU/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1QUpjkKT6lsqD17I0I_h7nbCD8ZFC92KWWkiXdVOPmps/edit?usp=sharing slides]
''[[CISC181_S2017_Lab6 | Lab #6: Testing and exceptions]] (Apr. 3)''<br>[https://docs.google.com/presentation/d/1ZseNfzKA7vim7b87LMcIXVstOQPxTgZHQy37w51gDBA/edit?usp=sharing slides]
+
<!--<br>[https://docs.google.com/presentation/d/1ZseNfzKA7vim7b87LMcIXVstOQPxTgZHQy37w51gDBA/edit?usp=sharing slides]-->
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|
 
|style="background:rgb(102, 204, 255)"|
Line 238: Line 241:
 
|
 
|
 
|
 
|
|
+
|[[CISC181_F2017_Lab6 | Lab #6: Maps]] (Oct. 31)''
 
|-
 
|-
 
|17
 
|17
 
|Nov. 1
 
|Nov. 1
|Testing, error-handling
+
|Finish maps, error-handling
|Assertions, unit testing
+
|
|ZJ 3.6, 8.2
+
|
|[https://docs.google.com/presentation/d/19hvvuXKstg18w8WcLWlzaXA88x_aQQz3rAjXU287TeY/edit?usp=sharing slides]<!--[https://docs.google.com/presentation/d/1cGkOUQpqQLP4bi44pZhiGmNBQz3-MIiH81yoD0a0-7M/edit?usp=sharing slides] [https://docs.google.com/presentation/d/19meBNl8uuQK-T3MzJaRZ8Eyx-C8VvQXOqkPLelETVRU/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1KnTnWwhgU-qNci7O-EFBnuOwvkJOnpCLE174V7L8uQg/edit?usp=sharing slides]<!--[https://docs.google.com/presentation/d/1cGkOUQpqQLP4bi44pZhiGmNBQz3-MIiH81yoD0a0-7M/edit?usp=sharing slides] [https://docs.google.com/presentation/d/19meBNl8uuQK-T3MzJaRZ8Eyx-C8VvQXOqkPLelETVRU/edit?usp=sharing slides]-->
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|18
 
|style="background:rgb(102, 204, 255)"|18
|Nov. 6<br>''Withdraw deadline Apr. 10''
+
|Nov. 6
|Generics, collections
+
|Testing
|Generic methods, classes; <tt>Collection</tt> vs. <tt>Collections</tt>; <tt>Set</tt> and <tt>Map</tt> classes
+
|Assertions, unit testing
|<!--ZJ 14,--> [https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]
+
|ZJ 3.6, 8.2<!--ZJ 14,-->  
|<!--[https://docs.google.com/presentation/d/1UrXB0JhLZAQ6wsQ6F5sBR7j4wk_AH_xF9BRVHc9Df7I/edit?usp=sharing slides]<br>-->''[[CISC181_S2017_Lab7 | Lab #7: Testing and collections]] (Apr. 10)''<br>[https://docs.google.com/presentation/d/1i1VHKTk0TwVpaWZvWIzzJFO_PRawQ8h7oeFx3RuTbps/edit?usp=sharing slides]
+
|<!--[https://docs.google.com/presentation/d/1UrXB0JhLZAQ6wsQ6F5sBR7j4wk_AH_xF9BRVHc9Df7I/edit?usp=sharing slides]<br>-->''[[CISC181_F2017_Lab7 | Lab #7: Hello, Android]] (Nov. 7)''<br>[https://docs.google.com/presentation/d/1lTXnYKKXMn66K8vL6_pWrXtbmfmgW7KMZ9t26UMNtPk/edit?usp=sharing slides]
 
|-
 
|-
 
|19
 
|19
 
|Nov. 8
 
|Nov. 8
|Coding challenge
+
|Android
 +
|SDK; "Hello, world" app; running
 +
|[https://developer.android.com/training/basics/firstapp/creating-project.html Creating an Android project], [https://developer.android.com/training/basics/firstapp/running-app.html Running your app]
 +
|<!--[https://docs.google.com/document/d/1NhxKevLLYrWjQuuwpE7xoY6PUP1ewIoiQy9-FtfcvEU/edit?usp=sharing Challenge problems]-->[https://docs.google.com/presentation/d/18vqdRuuglBYWuUnfydYMYs8MSpkVBB_qdSiVU3a_3vY/edit?usp=sharing slides]
 +
<!--
 
|
 
|
 
|
 
|
|[https://docs.google.com/document/d/1NhxKevLLYrWjQuuwpE7xoY6PUP1ewIoiQy9-FtfcvEU/edit?usp=sharing Challenge problems]<!--[https://docs.google.com/presentation/d/19Ah4_HZvdA5pNTWINFq-6w38PBBabxJ-a6TnYP-6a1o/edit?usp=sharing slides]-->
+
''Withdraw deadline Apr. 10''
<!--
+
|
 
|
 
|
 
|
 
|
''Withdraw deadline Apr. 10''
 
|Dates and times
 
|<tt>Calendar</tt>, <tt>nanoTime</tt>
 
|[https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times]
 
 
|[[CISC181_S2017_Lab8 | Lab #8: Testing and exceptions]]<br>[https://docs.google.com/presentation/d/1y_hpwpNf_4RiaMB4_SKYkAG2WhTuExE0LLiY0e9Fu2w/edit?usp=sharing slides]
 
|[[CISC181_S2017_Lab8 | Lab #8: Testing and exceptions]]<br>[https://docs.google.com/presentation/d/1y_hpwpNf_4RiaMB4_SKYkAG2WhTuExE0LLiY0e9Fu2w/edit?usp=sharing slides]
 
-->
 
-->
Line 272: Line 275:
 
|style="background:rgb(102, 204, 255)"|20
 
|style="background:rgb(102, 204, 255)"|20
 
|Nov. 13
 
|Nov. 13
|Android
+
|Android<!--Dates and times-->
|SDK; "Hello, world" app; running
+
|Layout, UI elements, event handling, multiple activities<!--<tt>Calendar</tt>, <tt>nanoTime</tt>-->
|[https://developer.android.com/training/basics/firstapp/creating-project.html Creating an Android project], [https://developer.android.com/training/basics/firstapp/running-app.html Running your app]
+
|[https://developer.android.com/training/basics/firstapp/building-ui.html Building a simple UI], [http://developer.android.com/training/basics/firstapp/starting-activity.html multiple activities]<!--[https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times]-->
 
|<!--[https://docs.google.com/presentation/d/1dzj1zna_AaPzHH-bsGs0pB8bYvOBaoKgbD0p0c1MDoQ/edit?usp=sharing slides]-->
 
|<!--[https://docs.google.com/presentation/d/1dzj1zna_AaPzHH-bsGs0pB8bYvOBaoKgbD0p0c1MDoQ/edit?usp=sharing slides]-->
''[[CISC181_S2017_Lab9 | Lab #9: Hello, Android]] (Apr. 24)''<br>[https://docs.google.com/presentation/d/1v2qME-AOCc0TG0crvyliv4vXEZzho9vzGMR9evDCfPc/edit?usp=sharing slides]
+
''<!--[[CISC181_S2017_Lab9 | Lab #8: Coding challenge]]-->Lab #8 (Nov. 14)''<br>[https://drive.google.com/open?id=1R3bHrVnmVHNzQAmfHL1ZhMEZibTJTIuvR_4HF20G9wc slides]
 
|-
 
|-
 
|21
 
|21
 
|Nov. 15
 
|Nov. 15
 
|Android
 
|Android
|Layout, UI elements, event handling, multiple activities
+
|More multiple activities, basic graphics, [http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_F2017_ProjectRequirements project explanation]
|[https://developer.android.com/training/basics/firstapp/building-ui.html Building a simple UI], [http://developer.android.com/training/basics/firstapp/starting-activity.html multiple activities]
+
|[http://developer.android.com/guide/topics/graphics/2d-graphics.html Canvas and drawables]
|<!--[https://docs.google.com/presentation/d/15H-NVg-EONFyfKEsrpzpQQQRKn88u5L0BPqXOAk8H3k/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1qlltcZwG1Eqgot-8o6lc-O9dvAtjq4ASW1QS8Ltu6Mk/edit?usp=sharing slides]-->[https://docs.google.com/presentation/d/1DqJAMUoUYlSYLIDBa7yWQPvk4rkNJ7-6o-3EbXEOVvM/edit?usp=sharing slides]
+
|<!--[https://docs.google.com/presentation/d/15H-NVg-EONFyfKEsrpzpQQQRKn88u5L0BPqXOAk8H3k/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1qlltcZwG1Eqgot-8o6lc-O9dvAtjq4ASW1QS8Ltu6Mk/edit?usp=sharing slides]-->[https://drive.google.com/open?id=1FRsqr4mjNrrVGhcdtjB9bJKHq7eEYW9tZk5O3bTsWkU slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/myviewzoo MyViewZoo], [http://nameless.cis.udel.edu/class_data/181_s2017/simpledraw SimpleDraw]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|
 
|style="background:rgb(102, 204, 255)"|
Line 290: Line 293:
 
|
 
|
 
|
 
|
|''[[CISC181_S2017_Lab8 | Lab #8: Maps]] (Apr. 17)''
+
|<!--''[[CISC181_S2017_Lab8 | Lab #8: Maps]] (Apr. 17)''-->
 
|-
 
|-
 
|
 
|
Line 302: Line 305:
 
|Nov. 27
 
|Nov. 27
 
|Android
 
|Android
|More multiple activities, basic graphics, [http://developer.android.com/guide/topics/graphics/2d-graphics.html canvas and drawables], [http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2017_ProjectRequirements project explanation]
+
|More basic graphics, touch, animation, sound
 
|
 
|
|<!--[[CISC181_S2017_Lab10 | Lab #10: Android]]<br> [https://docs.google.com/presentation/d/14abdA7NMofbamXCEaURycwSxkNfxukTV6iADL9u5724/edit?usp=sharing slides]--> ''[[CISC181_S2017_Lab10 | Lab #10: Android activities]] (May 1)''<br>[https://docs.google.com/presentation/d/1hI0EShU6ZxfghQxOveawL9vl0AjV1ObBK2ikD9tWGD4/edit?usp=sharing slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/myviewzoo MyViewZoo], [http://nameless.cis.udel.edu/class_data/181_s2017/simpledraw SimpleDraw]
+
|'''LAB on Nov. 28 is Project Help only'''<!--[[CISC181_S2017_Lab10 | Lab #10: Android]]<br> [https://docs.google.com/presentation/d/14abdA7NMofbamXCEaURycwSxkNfxukTV6iADL9u5724/edit?usp=sharing slides]--> <!--''[[CISC181_S2017_Lab10 | Lab #10: Android activities]] (May 1)''<br>[https://docs.google.com/presentation/d/1hI0EShU6ZxfghQxOveawL9vl0AjV1ObBK2ikD9tWGD4/edit?usp=sharing slides]<br>, [http://nameless.cis.udel.edu/class_data/181_s2017/simpledraw SimpleDraw]-->[https://docs.google.com/presentation/d/16mFmyjEaP7saSDh46QwmrN494uXmqAk0iAGYuPRwOI0/edit?usp=sharing slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/simpleanimate SimpleAnimate], [http://nameless.cis.udel.edu/class_data/181_s2017/simplemultimedia SimpleMultimedia]
 
 
 
|-
 
|-
 
|23
 
|23
 
|Nov. 29
 
|Nov. 29
|Android
+
|Android; Java dates & times
|More basic graphics, touch, animation, sound
+
|Sensors, cameras, faces
|
+
|[https://developer.android.com/guide/components/intents-filters.html Intents and Intent Filters], [https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times]
|[https://docs.google.com/presentation/d/1KColjeP-uHIwe_Csd-HLhAKduOKE86S_jd6HPSvBwYI/edit?usp=sharing slides]<br>
+
|''Project milestone #1 due''<br>[https://docs.google.com/presentation/d/1nqE5BGh5TMo3iYvzhYmixXZW8sOisTEPDrNSlCmCOQQ/edit?usp=sharing slides]
[http://nameless.cis.udel.edu/class_data/181_s2017/simpleanimate SimpleAnimate], [http://nameless.cis.udel.edu/class_data/181_s2017/simplemultimedia SimpleMultimedia]
 
 
<!--
 
<!--
 
|-
 
|-
Line 319: Line 320:
 
|Nov. 29
 
|Nov. 29
 
|Android
 
|Android
|Sensors, cameras, faces
 
|[https://developer.android.com/guide/components/intents-filters.html Intents and Intent Filters]
 
 
|
 
|
''Project milestone #1 due May 10''<br>'''NO LAB on May 8'''<br>[https://docs.google.com/presentation/d/1ymDud-sjfbIDQ_ugL_u1_ZyQcZxw6HJKuUC5AraeBig/edit?usp=sharing slides]
+
|
-->
+
|
 +
''Project milestone #1 due May 10''<br>'''NO LAB on May 8''<!--'<br>[https://docs.google.com/presentation/d/1ymDud-sjfbIDQ_ugL_u1_ZyQcZxw6HJKuUC5AraeBig/edit?usp=sharing slides]-->
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|24
 
|style="background:rgb(102, 204, 255)"|24
Line 330: Line 330:
 
|
 
|
 
|
 
|
|<!--[https://docs.google.com/presentation/d/1_PEMZQoEa3iE44_RYAqb7v8zRAP-0MDbRvlxXwxDuJM/edit?usp=sharing slides]<br>
+
|'''LAB on Dec. 5 is Project Help only'''<!--[https://docs.google.com/presentation/d/1_PEMZQoEa3iE44_RYAqb7v8zRAP-0MDbRvlxXwxDuJM/edit?usp=sharing slides]<br>
 
SimpleAnimate: [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MyAnimatedSurfaceView.java MyAnimatedSurfaceView.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MyThread.java MyThread.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MainActivity.java MainActivity.java],[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/activity_main.xml activity_main.xml],
 
SimpleAnimate: [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MyAnimatedSurfaceView.java MyAnimatedSurfaceView.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MyThread.java MyThread.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/MainActivity.java MainActivity.java],[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/activity_main.xml activity_main.xml],
 
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/AndroidManifest.xml AndroidManifest.xml],
 
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/AndroidManifest.xml AndroidManifest.xml],
Line 341: Line 341:
 
|
 
|
 
|
 
|
|''Project milestone #2 due''<br>'''NO LAB on May 15'''<br>[https://docs.google.com/presentation/d/15z7dLUztRw3ziBgDWflQVNSDuUzM1MxxupSXSBPdY24/edit?usp=sharing slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/s2015_cisc181_final.pdf 2015 final exam]
+
|''Project milestone #2 due''<br>[https://docs.google.com/presentation/d/11tD5G21YQAwH6vPYEqAmweg-P76IUFhg3xDOyH6Abr0/edit?usp=sharing slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/s2015_cisc181_final.pdf 2015 final exam]
 +
|-
 +
|
 +
|Dec. 7, 8, 9, and 10
 +
|In-person demos for final project
 +
|
 +
|
 +
|
 
<!--
 
<!--
 
|-
 
|-
Line 366: Line 373:
 
|
 
|
 
|Dec. 11-16
 
|Dec. 11-16
|FINAL EXAM
+
|FINAL EXAMINATION
 
|
 
|
 
|
 
|
 
|
 
|
 
|}
 
|}

Latest revision as of 08:20, 6 December 2017

Course information

Description CISC 181 (section 010) -- Introduction to Computer Science II (Honors)

Principles of computer science illustrated and applied through programming in the object oriented language Java. Programming projects illustrate computational problems, styles and issues that arise in computer systems development and in several application areas.

URL
Instructor Prof. Christopher Rasmussen
E-mail: cer@cis.udel.edu
Office: Smith 446
Office hours: Wednesdays, 10:15 am-12:15 pm
TA Chunbo Song, E-mail: songcb@udel.edu, office hours: Fridays 2-3 pm, Mondays 3-4 pm in Smith 201 (during weeks when there are labs)
Schedule
  • Lecture: Mondays and Wednesdays, 8:40 am to 9:55 am in Kirkbride 205
  • Lab sections: Tuesdays in Spencer 010
    • 20: 8:00 am to 8:50 am
    • 21: 9:05 am to 9:55 am
    • 22: 10:10 am to 11:00 am
Required
Grading
  • 36% Labs (4% each). These are sets of small-to-medium tasks/programs which must be done individually. Labs 0-7 go out each Tuesday and must be completed by Monday night of the following week. Lab #8 will take place completely during the lab session (if you absolutely cannot attend, you will have an opportunity to make it up at home). Lab grading details here
  • 9% Activity completion in ZJ before day of midterm
  • 20% Midterm exam
  • 15% Programming project This is a two-step, two-week assignment which may be done as part of a pair
  • 20% Final exam (functionally, this is a second midterm)
  • "Bonus 2%" Complete end-of-semester course evaluation

Your labs and programming projects are due by 5 am after the deadline day. All should be submitted in Sakai. A late homework is a 0 without a valid prior excuse. To give you a little flexibility, you have 6 "late days" to use over the semester to extend the deadline by one 24-hour period each without penalty. No more than two late days may be used per assignment. Late days will automatically be subtracted, but as a courtesy please notify the instructor and TA in an e-mail of your intention to use them before the deadline. For each late day used by a pair of students on the project, both students must subtract a late day.

Once you have gotten a grade back on an assignment, if you have any questions or issues you should talk to your TA. For midterm exam grades, talk to the instructor. You have 1 week after a grade is returned to dispute it; after that, your score is final. Make sure to check that any score modifications are reflected in Sakai.

For the overall course grade, a preliminary absolute mark will be assigned to each student based on the percentage of the total possible points they earn according to the standard formula: A = 90-100, B = 80-90, C = 70-80, etc., with +'s and -'s given for the upper and lower third of each range, respectively. Based on the distribution of preliminary grades for all students (i.e., "the curve"), the instructor may increase these grades monotonically to calculate final grades. This means that your final grade can't be lower than your preliminary grade, and your final grade won't be higher than that of anyone who had a higher preliminary grade.

There will be NO extra credit opportunities at the end of the semester (except the course evaluation), so do your best work early!

Discussion We will be using Piazza as a forum for questions about labs, homeworks, exams, and any other course topic. Rather than sending e-mail to a TA or the professor, post your question there so that everyone else can see the answer, and other students can contribute their knowledge. If your question involves posting code, make sure it is the minimum amount necessary to explain the problem you are having.
Academic honesty Students can discuss problems with one another in general terms, but must work independently on all assignments unless otherwise specified. This also applies to online and printed resources: you may consult them as references (as long as you cite them), but the code you turn in must be yours alone. We WILL be checking submitted code for evidence of plagiarism or unauthorized collaboration, and if found you will definitely get a 0 for the assignment and possibly be referred to the Office of Student Conduct. If you are at all unsure about what is and what is not allowed, please contact the instructor or TA.

The University's policies on academic dishonesty are set forth in the student code of conduct here.

Optional resources

Schedule

Note: The blue squares in the "#" column below indicate Mondays.
UDCapture link

# Date Topic Details Readings Links/Lab
1 Aug. 30 Welcome Course details; IDE overview; Hello, Java ZJ 1.2-1.3, 1.5, 1.10, 16.1 slides
Sep. 4 NO CLASS
Labor Day holiday
Lab #0: Math, formatting, branching (Sep. 5)
2 Sep. 6 Basic variables, input/output Basic input, output; Scanner and Math class, expressions, formatting for printing; naming, formatting, commenting styles ZJ 1.4, 1.11, 2.2-2.7, 4.1, 4.2, 16.3 slides
3 Sep. 11

Register/add deadline Sep. 12

Variables, expressions, branching Data types, constants, type conversions; if/else, switch, comparisons ZJ 2.6, 4.3-4.5, 4.7-4.8, 5-5.6, 5.11-5.13 Lab #1: More math, basic loops (Sep. 12)

slides

4 Sep. 13 Loops while, for (single and nested); break, continue ZJ 6-6.6, 6.8-6.9, 4.9 slides
5 Sep. 18 Basic arrays and graphics Randomness; single-dimensional arrays; graphics class: shapes, color, text; programming tips and API lookup Making windows in Swing, Java 2D API Lab #2: Basic arrays and graphics (Sep. 19)

slides

6 Sep. 20 Objects/methods/classes Class concepts, reference variables, constructors, overloading, overriding; intro to access ZJ 3-3.5, 9.2-9.4, 10.3 slides
7 Sep. 25 Objects/methods/classes More about public/private, accessors/mutators, static ZJ 2.10, 3.7, 9.5-9.6, 9.11 Lab #3: Objects (Sep. 26)
slides
8 Sep. 27 Objects/methods/classes Primitive wrapper classes; object comparison; this; start inheritance ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6 slides
9 Oct. 2 Objects/methods/classes Finish inheritance (derived classes, polymorphism) Lab #4: Array lists (Oct. 3)
slides
10 Oct. 4 Arrays and array lists Multi-dimensional arrays; ArrayList (collections), pass-by-value vs. pass-by-reference ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5 slides
11 Oct. 9 Interfaces and strings Abstract classes, Comparable vs. Comparator, basic string operations ZJ 5.7-5.10, 16.4, Object ordering slides

Lab #5: Files (Oct. 10)

12 Oct. 11 Streams and patterns Stream types, reading text files; String.split(); regular expressions ZJ 16.5, Regex documentation slides
13 Oct. 16 Midterm review NO LAB Oct. 17 -- Activity completion deadline!

slides
Partial sample midterm

14 Oct. 18 MIDTERM
15 Oct. 23
Withdraw deadline Oct. 24
Generics, collections Generic methods, classes; Collection vs. Collections; Set interface Collection interface NO LAB on Oct. 24

slides

16 Oct. 25 Go over midterm; testing, error-handling Map interface, exceptions ZJ 17-17.3, Exceptions slides
Oct. 30 NO CLASS
Instructor away
Lab #6: Maps (Oct. 31)
17 Nov. 1 Finish maps, error-handling slides
18 Nov. 6 Testing Assertions, unit testing ZJ 3.6, 8.2 Lab #7: Hello, Android (Nov. 7)
slides
19 Nov. 8 Android SDK; "Hello, world" app; running Creating an Android project, Running your app slides
20 Nov. 13 Android Layout, UI elements, event handling, multiple activities Building a simple UI, multiple activities

Lab #8 (Nov. 14)
slides

21 Nov. 15 Android More multiple activities, basic graphics, project explanation Canvas and drawables slides
MyViewZoo, SimpleDraw
Nov. 20 NO CLASS
Thanksgiving break
Nov. 22 NO CLASS
Thanksgiving break
22 Nov. 27 Android More basic graphics, touch, animation, sound LAB on Nov. 28 is Project Help only slides
SimpleAnimate, SimpleMultimedia
23 Nov. 29 Android; Java dates & times Sensors, cameras, faces Intents and Intent Filters, Dates and times Project milestone #1 due
slides
24 Dec. 4 Project help (in class) LAB on Dec. 5 is Project Help only
25 Dec. 6 Final review Project milestone #2 due
slides
2015 final exam
Dec. 7, 8, 9, and 10 In-person demos for final project
Dec. 11-16 FINAL EXAMINATION