Difference between revisions of "CISC181 S2017"

From class_wiki
Jump to: navigation, search
(Schedule)
(Schedule)
 
(99 intermediate revisions by the same user not shown)
Line 17: Line 17:
 
|-
 
|-
 
|valign="top"|'''TA'''
 
|valign="top"|'''TA'''
|Abraham McIlvaine, E-mail: abemac@udel.edu, office hours: zzz in Smith 201  
+
|Abraham McIlvaine, E-mail: abemac@udel.edu, office hours: Wednesdays, 5-6 pm and Fridays, 9-10 am in Smith 201 (during weeks when there are labs)
 
|-
 
|-
 
|valign="top"|'''Discussion'''
 
|valign="top"|'''Discussion'''
Line 26: Line 26:
 
|valign="top"|'''Schedule'''
 
|valign="top"|'''Schedule'''
 
|
 
|
* Lecture: Tuesdays and Thursdays, 11:00 am to 12:15 pm in [http://css-rdms1.win.udel.edu/maps/?find=BRL Brown 116]
+
* Lecture: Tuesdays and Thursdays, 11:00 am to 12:15 pm in [http://css-rdms1.win.udel.edu/maps/?find=NE04 Penny 004]
 
* Lab section: Mondays from 4:40 pm to 5:30 pm in [http://css-rdms1.win.udel.edu/maps/?find=SPL Spencer 010]
 
* Lab section: Mondays from 4:40 pm to 5:30 pm in [http://css-rdms1.win.udel.edu/maps/?find=SPL Spencer 010]
 
|-
 
|-
Line 38: Line 38:
 
|valign="top"|'''Grading'''
 
|valign="top"|'''Grading'''
 
|
 
|
* 10%  [[CISC181_S2017_ActivityCompletion|Activity completion in ZJ]]  
+
<!--* 10%  [[CISC181_S2017_ActivityCompletion|Activity completion in ZJ]] -->
* 30%  Labs (3% each).  These are sets of small tasks/programs which must be done '''individually''' and are due '''Friday night of the same week'''.  Attendance counts for 0.5% of each lab -- [[CISC181_S2017_LabGrading|more 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_S2017_LabGrading|More details here]]
* 20%  [[CISC181_S2017_ProjectRequirements | Programming project]] (10% for each milestone).  This is a multi-step assignment which may be done as part of a '''pair'''  
+
* 20%  [[CISC181_S2017_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
 
* 20%  Final exam (functionally, this is a second midterm)
 
* 20%  Final exam (functionally, this is a second midterm)
Line 56: Line 56:
 
|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 [http://www.udel.edu/studentconduct/ Office of Student Conduct].  If you are at all unsure about what is and what is not allowed, please contact the instructor or TA.
 
|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 [http://www.udel.edu/studentconduct/ 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 [http://www.udel.edu/stuguide/14-15/code.html#honesty here].   
+
The University's policies on academic dishonesty are set forth in the student code of conduct [http://www.udel.edu/stuguide/16-17/code.html#honesty here].   
 
|-
 
|-
 
|valign="top"|'''Optional resources'''
 
|valign="top"|'''Optional resources'''
Line 91: Line 91:
 
==Schedule==
 
==Schedule==
  
''Note'': The blue squares in the "#" column below indicate Tuesdays.
+
''Note'': The blue squares in the "#" column below indicate Tuesdays. <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)
 
<br><br>
 
<br><br>
  
Line 106: Line 107:
 
|Welcome
 
|Welcome
 
|Course details; IDE overview; Hello, Java
 
|Course details; IDE overview; Hello, Java
|
+
|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/1TQzn7Hda-1JyF9OsY196BN5pjxNLmkPk7Mi_8SBbQ0A/edit?usp=sharing slides]
 
|-
 
|-
Line 113: Line 114:
 
|Basic variables, input/output
 
|Basic variables, input/output
 
|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
+
|ZJ 1.4, 1.11, 2.2-2.7, 4.1, 4.2, 16.3
|[https://docs.google.com/presentation/d/1GAjkjbuBRI3xlOVE5X3x0W8MY1-lxpdD0XYHVQV8a7M/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1Gb4AED65H57gYjEyp4U7Ug0oAbA_6M6igEW42PgteUM/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|3
 
|style="background:rgb(102, 204, 255)"|3
Line 120: Line 121:
 
|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, 3
+
|ZJ 2.6, 4.3-4.5, 4.7-4.8, 5-5.6, 5.11-5.13
|[https://docs.google.com/presentation/d/1MkBoPq4JpuPqLWeSO32y0K3SA4M9PesBaLi8RGAyaaY/edit?usp=sharing slides]<br>
+
|''[[CISC181_S2017_Lab1 | Lab #1: Math, formatting, branching]] (Feb. 13)''<br>
''Lab #1 (Feb. 13)''
+
[https://docs.google.com/presentation/d/1io9vyIkkjZ-c1hvEHYt6D-1VUZuI0JSDIlzb3yU8oLc/edit?usp=sharing slides]
 
|-
 
|-
 
|4
 
|4
 
|Feb. 16
 
|Feb. 16
 
|Loops
 
|Loops
|<tt>while</tt>, <tt>for</tt> (single and nested)
+
|<tt>while</tt>, <tt>for</tt> (single and nested); <tt>break</tt>, <tt>continue</tt>; randomness
|ZJ 4
+
|ZJ 6-6.6, 6.8-6.9, 4.9
|<!--[[CISC181_S2017_Lab2 | Lab #2: Branching, loops]]<br> -->[https://docs.google.com/presentation/d/1UFknfhhvDC7lERCRAPsNAdzO2CcnGop6OzklHBSsRMg/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1xkQteTx8aRYLYQTb8qWG_SPAZ21TreA3kcJXjBK9c6k/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|5
 
|style="background:rgb(102, 204, 255)"|5
|Feb. 21
+
|Feb. 21<br>
 +
''Register/add deadline Feb. 20''
 
|Basic graphics
 
|Basic graphics
|Graphics class: shapes, color, text, randomness; programming tips and API lookup
+
|Graphics class: shapes, color, text; programming tips and API lookup
|ZJ 5, [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]
|''Lab #2 (Feb. 20)''
+
|''[[CISC181_S2017_Lab2 | Lab #2: Basic graphics]] (Feb. 20)''<br>
 +
[https://docs.google.com/presentation/d/1ZaOoNufsEeJm4_2TVUMlZmsdJxSlVpsxqMvLKFJLUyA/edit?usp=sharing slides]
 
|-
 
|-
 
|6
 
|6
 
|Feb. 23
 
|Feb. 23
 
|Objects/methods/classes
 
|Objects/methods/classes
|Constructors, overloading
+
|Class concepts, reference variables, constructors, overloading, overriding; intro to access
|ZJ 6
+
|ZJ 3-3.5, 9.2-9.4, 10.3
|[https://docs.google.com/presentation/d/1_EBByb4ROZo0DYTZAlfIEoueHa4MXvphYeZPBFL6iMg/edit?usp=sharing slides] [https://docs.google.com/presentation/d/13Oec-ytzN8f7bqQRUvdSm4YMfwAN1PDjIWCQhuRlpc0/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1pStnMQSurKqYAlL1jZvJufoAWypA9QxRb6pM5aUFuO4/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|7
 
|style="background:rgb(102, 204, 255)"|7
 
|Feb. 28
 
|Feb. 28
''Register/add deadline Feb. 20''
 
 
|Objects/methods/classes
 
|Objects/methods/classes
|public/private; Accessors/mutators; static
+
|More about public/private, accessors/mutators, static, primitive wrapper classes; <tt>this</tt>; pass-by-value vs. pass-by-reference
|ZJ 6
+
|ZJ 2.10, 3.7, 9.5-9.6, 9.11
|[https://docs.google.com/presentation/d/14RdHuIER61alnx-wfI-_TMKP0ODPqDWd0XDbd1B3r5s/edit?usp=sharing slides]<br><!--[[CISC181_S2017_Lab3 | Lab #3: Basic graphics]]-->''Lab #3 (Feb. 27)''
+
|''[[CISC181_S2017_Lab3 | Lab #3: Objects]] (Feb. 27)''<br>[https://docs.google.com/presentation/d/1Gc9mkwBPMXUpvJuZ-HpvlPtweIKUJXmrnhltriTMmRk/edit?usp=sharing slides]
 
|-
 
|-
 
|8
 
|8
 
|Mar. 2
 
|Mar. 2
 
|Objects/methods/classes
 
|Objects/methods/classes
|<tt>this</tt>; primitive wrapper classes; pass-by-value vs. pass-by-reference; inheritance (derived classes, polymorphism)
+
|Inheritance (derived classes, polymorphism), abstract classes
|ZJ 9, 10
+
|ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6
|[https://docs.google.com/presentation/d/11_lbnF2qusL7aXJTfQEsOQN9flkdcaXVxAyMh-OvnU8/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1vbxl3eFc3dJpJc8NFs7nZKNHe9eohT5_CR_rW1hpXtE/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1hCkf4qGxH5lI-P7CvyM2fXMZC7R1r2D0Yg3MlFZS0YQ/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|9
 
|style="background:rgb(102, 204, 255)"|9
 
|Mar. 7
 
|Mar. 7
|Arrays
+
|Arrays and interfaces
|Single-, multi-dimensional; <tt>ArrayList</tt> (collections)
+
|Interfaces; single-, multi-dimensional arrays; <tt>ArrayList</tt> (collections); <tt>Comparable vs. Comparator</tt>; enhanced <tt>for</tt>
|ZJ 7
+
|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>''Lab #4 (Mar. 6)''
+
|<!--[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]
 
<!--[[CISC181_S2017_CardClass | Card class]], [[CISC181_S2017_DeckClass | Deck class]]-->
 
<!--[[CISC181_S2017_CardClass | Card class]], [[CISC181_S2017_DeckClass | Deck class]]-->
 
|-
 
|-
Line 172: Line 174:
 
|Strings & streams
 
|Strings & streams
 
|Basic string operations; stream types, URLs
 
|Basic string operations; stream types, URLs
|ZJ 8
+
|ZJ 5.7-5.10, 16.4, [http://download.oracle.com/javase/tutorial/networking/urls/index.html URL tutorial]
|<!--[[CISC181_S2017_Lab4 | Lab #4: Arrays]]<br>-->[https://docs.google.com/presentation/d/1B47b3IrW7ZsONMBDboIM1ZX1Uk3e7J9k1Zm4n82yiSA/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1sW_7WUyubV8aqwurltT8Z-bWtrFWdpW99WSmVW6O4iM/edit?usp=sharing slides]
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|11
+
|style="background:rgb(102, 204, 255)"|
 
|Mar. 14
 
|Mar. 14
|Strings & streams
+
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Campus closed due to storm''
|Reading, writing text files; <tt>String.split()</tt>; regular expressions
+
|
|[http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation], [http://download.oracle.com/javase/tutorial/networking/urls/index.html URL tutorial]
+
|
|<!--[[CISC181_S2017_Lab5 | Lab #5: Objects]]<br>-->
+
|
[https://docs.google.com/presentation/d/194jctkWZPejxgfSCT3wxkCJcTsaw9JMyVE28DHShwgc/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1f7rubiIJrFFNIkLGSDifOrKEMlsBJ833pcP0DlgzcTQ/edit?usp=sharing slides]<!--<br>[[CISC181_S2017_Lab6 | Lab #6: Files]]-->
+
''[[CISC181_S2017_Lab5 | Lab #5: Files]] (Mar. 13)''
''Lab #5 (Mar. 13)''
 
 
|-
 
|-
|12
+
|11
 
|Mar. 16
 
|Mar. 16
|Abstract classes, interfaces
+
|Strings & streams
|<tt>Comparable vs. Comparator</tt>
+
|Reading, writing text files; <tt>String.split()</tt>; regular expressions; using <tt>ArrayList</tt> and <tt>enum</tt> for cards
|ZJ 11, [https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html Object ordering]
+
|ZJ 16.5, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation]
|[https://docs.google.com/presentation/d/1SvE85CSQE6ivbsWbC_jMqLft7cueB58nK6JrhvHx-vU/edit?usp=sharing slides] [https://docs.google.com/presentation/d/1-cDlOjqz5XcrdMUZRYZ4pukOLUgetZcCaqt8hdHZqXE/edit?usp=sharing slides]
+
|[https://drive.google.com/open?id=1DnSnRiRXdtWQTfcNAKarvhHifePBbj_2RGuVC9pORBk slides]
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|13
+
|style="background:rgb(102, 204, 255)"|12
 
|Mar. 21
 
|Mar. 21
 
|Midterm review
 
|Midterm review
 
|
 
|
 
|
 
|
|<!--[https://docs.google.com/presentation/d/16xb2_NQaNo7MlCeDGU3y2_mWn5L2HIhO_ZK8hH529jk/edit?usp=sharing slides]<br>
+
|[https://docs.google.com/presentation/d/1Wlb27QLH5Pmlg5vAdpfx3HSFmaNi6VMbGMNb3UpnhIM/edit?usp=sharing slides]<br>
[http://nameless.cis.udel.edu/class_data/181_s2015/2011_midterm.pdf Partial sample midterm]<br>-->
+
[http://nameless.cis.udel.edu/class_data/181_s2017/2011_midterm.pdf Partial sample midterm]
 
|-
 
|-
|14
+
|13
 
|Mar. 23
 
|Mar. 23
 
|MIDTERM
 
|MIDTERM
Line 220: Line 221:
 
|
 
|
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|15
+
|style="background:rgb(102, 204, 255)"|14
 
|Apr. 4
 
|Apr. 4
 
|Go over midterm; testing, error-handling
 
|Go over midterm; testing, error-handling
 
|Exceptions
 
|Exceptions
|ZJ 12, [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]
+
|<!--[[CISC181_S2017_Lab7 | Lab #7: Inheritance]]<br> [https://docs.google.com/presentation/d/141leM8Mo-mX1Ms1cZKXASO_LdMjmV3pKybNtNcxVxjU/edit?usp=sharing slides]-->
''Lab #6 (Apr. 3)''
+
''[[CISC181_S2017_Lab6 | Lab #6: Testing and exceptions]] (Apr. 3)''<br>[https://docs.google.com/presentation/d/1ZseNfzKA7vim7b87LMcIXVstOQPxTgZHQy37w51gDBA/edit?usp=sharing slides]
 
|-
 
|-
|16
+
|15
 
|Apr. 6
 
|Apr. 6
 
|Testing, error-handling
 
|Testing, error-handling
 
|Assertions, unit testing
 
|Assertions, unit testing
|ZJ 13
+
|ZJ 3.6, 8.2
|[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/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]-->
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|17
+
|style="background:rgb(102, 204, 255)"|16
|Apr. 11
+
|Apr. 11<br>''Withdraw deadline Apr. 10''
|Collections
+
|Generics, collections
|Generics, <tt>shuffle</tt>, <tt>sort</tt>
+
|Generic methods, classes; <tt>Collection</tt> vs. <tt>Collections</tt>; <tt>Set</tt> and <tt>Map</tt> classes
|ZJ 14, [https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]
+
|<!--ZJ 14,--> [https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]
|[https://docs.google.com/presentation/d/1UrXB0JhLZAQ6wsQ6F5sBR7j4wk_AH_xF9BRVHc9Df7I/edit?usp=sharing slides]<br>''Lab #7 (Apr. 10)''
+
|<!--[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]
 
|-
 
|-
|18
+
|17
 
|Apr. 13
 
|Apr. 13
''Withdraw deadline Apr. 10''
+
|Coding challenge
|Collections
+
|
|Set and Map classes
 
 
|
 
|
|[https://docs.google.com/presentation/d/19Ah4_HZvdA5pNTWINFq-6w38PBBabxJ-a6TnYP-6a1o/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]-->
 
<!--
 
<!--
|-
+
|18
|19
 
 
|Apr. 13
 
|Apr. 13
 
''Withdraw deadline Apr. 10''
 
''Withdraw deadline Apr. 10''
Line 260: Line 259:
 
-->
 
-->
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|19
+
|style="background:rgb(102, 204, 255)"|
 
|Apr. 18
 
|Apr. 18
|''Guest lecture''
+
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away''
 
|
 
|
 
|
 
|
|''Lab #8 (Apr. 17)''
+
|''[[CISC181_S2017_Lab8 | Lab #8: Maps]] (Apr. 17)''
 
|-
 
|-
 
|
 
|
Line 274: Line 273:
 
|
 
|
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|20
+
|style="background:rgb(102, 204, 255)"|18
 
|Apr. 25
 
|Apr. 25
 
|Android
 
|Android
 
|SDK; "Hello, world" app; running
 
|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://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/presentation/d/1dzj1zna_AaPzHH-bsGs0pB8bYvOBaoKgbD0p0c1MDoQ/edit?usp=sharing slides]
+
|<!--[https://docs.google.com/presentation/d/1dzj1zna_AaPzHH-bsGs0pB8bYvOBaoKgbD0p0c1MDoQ/edit?usp=sharing slides]-->
''Lab #9 (Apr. 24)''
+
''[[CISC181_S2017_Lab9 | Lab #9: Hello, Android]] (Apr. 24)''<br>[https://docs.google.com/presentation/d/1v2qME-AOCc0TG0crvyliv4vXEZzho9vzGMR9evDCfPc/edit?usp=sharing slides]
 
|-
 
|-
|21
+
|19
 
|Apr. 27
 
|Apr. 27
 
|Android
 
|Android
|Layout, UI elements
+
|Layout, UI elements, event handling, multiple activities
|[https://developer.android.com/training/basics/firstapp/building-ui.html Building a simple UI]
+
|[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.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/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]
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|22
+
|style="background:rgb(102, 204, 255)"|20
 
|May 2
 
|May 2
 
|Android
 
|Android
|Event handling, [http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2017_ProjectRequirements project explanation]
+
|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]
 
|
 
|
|<!--[[CISC181_S2017_Lab10 | Lab #10: Android]]<br>--> [https://docs.google.com/presentation/d/14abdA7NMofbamXCEaURycwSxkNfxukTV6iADL9u5724/edit?usp=sharing slides] ''Lab #10 (May 1)''
+
|<!--[[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]
 +
 
 
|-
 
|-
|23
+
|21
 
|May 4
 
|May 4
 
|Android
 
|Android
|Multiple activities
+
|More basic graphics, touch, animation, sound
|[http://developer.android.com/training/basics/firstapp/starting-activity.html Multiple activities]
+
|
|<!--[https://docs.google.com/presentation/d/1Oa1W7v3RwnVh5nj_UNYblKZrJ8bO81dZIOr_asaNGek/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/1KColjeP-uHIwe_Csd-HLhAKduOKE86S_jd6HPSvBwYI/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]
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|24
+
|style="background:rgb(102, 204, 255)"|22
 
|May 9
 
|May 9
 
|Android
 
|Android
|Basic graphics
+
|Sensors, cameras, faces
|[http://developer.android.com/guide/topics/graphics/2d-graphics.html Canvas and drawables]
+
|[https://developer.android.com/guide/components/intents-filters.html Intents and Intent Filters]
 
|<!--[https://docs.google.com/presentation/d/1zkYbPN0Qqxxdwe620IDNYzhGzev7c8y9u7uZgOwGblQ/edit?usp=sharing slides]<br>
 
|<!--[https://docs.google.com/presentation/d/1zkYbPN0Qqxxdwe620IDNYzhGzev7c8y9u7uZgOwGblQ/edit?usp=sharing slides]<br>
 
SimpleDraw: [http://nameless.cis.udel.edu/class_data/181_s2015/simpledraw/MySurfaceView.java MySurfaceView.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpledraw/activity_main.xml activity_main.xml]-->
 
SimpleDraw: [http://nameless.cis.udel.edu/class_data/181_s2015/simpledraw/MySurfaceView.java MySurfaceView.java], [http://nameless.cis.udel.edu/class_data/181_s2015/simpledraw/activity_main.xml activity_main.xml]-->
''Project milestone #1 due''<br>'''NO LAB on May 8'''
+
''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]
 
|-
 
|-
|25
+
|23
 
|May 11
 
|May 11
|Android
+
|Project help (in class)
|Touch, animation, sound
+
|
 
|
 
|
|[https://docs.google.com/presentation/d/1_PEMZQoEa3iE44_RYAqb7v8zRAP-0MDbRvlxXwxDuJM/edit?usp=sharing slides]<br>
+
|<!--[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],
 
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/grenade.mp3 grenade.mp3],
 
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/grenade.mp3 grenade.mp3],
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/jump.mp3 jump.mp3]
+
[http://nameless.cis.udel.edu/class_data/181_s2015/simpleanimate/jump.mp3 jump.mp3] -->
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|26
+
|style="background:rgb(102, 204, 255)"|24
 
|May 16
 
|May 16
 
|Final review
 
|Final review
 
|
 
|
 
|
 
|
|''Project milestone #2 due''<br>'''NO LAB on May 15'''
+
|''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]
 
<!--
 
<!--
 
|-
 
|-
Line 352: Line 353:
 
|-
 
|-
 
|
 
|
|May 18, 19, 22, 23, 24, or 25
+
|May 23, 10:30 am--12:30 pm
|FINAL EXAM: ???
+
|FINAL EXAM
 
|
 
|
 
|
 
|
 
|
 
|
 
|}
 
|}
 
<!--
 
''Note'': The blue squares in the "#" column below indicate Tuesdays.
 
<br><br>
 
 
{| class="wikitable" style="text-align: center" border="1" cellpadding="5"
 
!width="2%"|#
 
!width="10%"|Date
 
!width="22%"|Topic
 
!width="15%"|Notes
 
!width="32%"|Readings
 
!width="15%"|Links
 
|-
 
|style="background:rgb(102, 204, 255)"|
 
|Aug. 30
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Cancelled by UD due to storm''
 
|
 
|
 
|''NO LAB THIS WEEK''
 
|-
 
|1
 
|Sep. 1
 
|Welcome
 
|Course details, quick IDE overview
 
|Sections 1-4 of [http://www.vogella.de/articles/Eclipse/article.html Eclipse tutorial]
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|2
 
|Sep. 6
 
|Java basics
 
|Classes/objects briefly, primitive types, arrays, for/while loops
 
|Chap. 1, 2, 3
 
|[[CISC181_F2011_Lab1|''Lab #1'']] ''(no Monday lab due to Labor Day--please attend another session or go to TA office hours)''
 
|-
 
|3
 
|Sep. 8
 
|Variables
 
|Object references, String/StringBuilder, multi-dimensional arrays, scope
 
|Chap. 3, pp. 661, 663, 669, 670
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|4
 
|Sep. 13
 
|Functions
 
|Methods, constructors, pass-by-value, setters/getters, overloading, reading input with Scanner
 
|Chap. 4, Chap. 7 p. 191, Chap. 9 pp. 240-249, Scanner [http://download.oracle.com/javase/1,5.0/docs/api/java/util/Scanner.html documentation], [http://www.youtube.com/watch?v=szIBdpTI1fE video tutorial]
 
|[[CISC181_F2011_Lab2|''Lab #2'']]
 
|-
 
|5
 
|Sep. 15
 
''Register/add deadline''<br>
 
|Control
 
|Expressions and short-circuiting, conditionals (switch vs. if-else), loops (enhanced for, do-while)
 
|Chap. 5 from p. 114, Chap. 6 p. 151
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|6
 
|Sep. 20
 
|Java library
 
|Static/final variables and methods, helpful functions/classes (parseInt(), Random, etc.), ArrayList, primitive wrappers, useful Collections methods
 
|Chap. 6, Chap. 10 to p. 293, Chap. 16 pp. 534-5
 
|[[CISC181_F2011_Lab3|''Lab #3'']]
 
|-
 
|7
 
|Sep. 22
 
|File I/O
 
|Reading, writing text files, String.split(), regular expressions
 
|Chap. 14 pp. 447-458, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation]
 
|[http://nameless.cis.udel.edu/class_data/cisc181/mutatefile.java mutatefile], [http://nameless.cis.udel.edu/class_data/cisc181/wordbyword.java wordbyword]<br>
 
|-
 
|style="background:rgb(102, 204, 255)"|8
 
|Sep. 27
 
|Classes
 
|Inheritance, overriding, inner classes, URLs
 
|Chap. 7, Chap. 12 pp. 376-8, [http://download.oracle.com/javase/tutorial/networking/urls/index.html URL tutorial]
 
|[[CISC181_F2011_Lab4|''Lab #4'']] (pair)<br>
 
[[CISC181_F2011_Project1|''Project #1'']] (due Oct. 13; pair)
 
|-
 
|
 
|Sep. 29
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away''
 
|
 
|
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|9
 
|Oct. 4
 
|Classes
 
|Serialization, start polymorphism, abstract classes
 
|Chap. 14 through p. 446; Chap. 8, 9
 
|''NO LAB''<br>
 
[http://nameless.cis.udel.edu/class_data/cisc181/FileTest.java FileTest.java], [http://nameless.cis.udel.edu/class_data/cisc181/Inherit.java Inherit.java]
 
|-
 
|
 
|Oct. 6
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away''
 
|
 
|
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|10
 
|Oct. 11
 
|Classes
 
|interfaces, Comparable/Comparator, HashSet
 
|Chap. 16
 
|''NO LAB''<br>
 
[http://nameless.cis.udel.edu/class_data/cisc181/Interface.java Interface.java], [http://nameless.cis.udel.edu/class_data/cisc181/Compare.java Compare.java]
 
|-
 
|11
 
|Oct. 13
 
|Collections
 
|TreeSet, iterators, HashMap, TreeMap
 
|Chap. 16
 
|[http://nameless.cis.udel.edu/class_data/cisc181/Hash.java Hash.java], [http://nameless.cis.udel.edu/class_data/cisc181/Sets.java Sets.java], [http://nameless.cis.udel.edu/class_data/cisc181/Maps.java Maps.java]
 
|-
 
|style="background:rgb(102, 204, 255)"|12
 
|Oct. 18
 
|Midterm review
 
|
 
|
 
|''NO LAB''
 
[https://docs.google.com/present/edit?id=0AUdKPju-EmtQZGNicWJnNWtfNTM1Yzc2cWRxY3c&hl=en_US Review slides]
 
|-
 
|13
 
|Oct. 20
 
|MIDTERM
 
|
 
|
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|14
 
|Oct. 25
 
|Debugging/testing
 
|Assertions, exceptions, Eclipse debugging features
 
|Chap. 5 to p. 113, Chap. 11, p. 662, [http://www.vogella.de/articles/EclipseDebugging/article.html Eclipse debugging tutorial]
 
|[[CISC181_F2011_Lab5|''Lab #5'']] (pair) <br>
 
[http://nameless.cis.udel.edu/class_data/cisc181/f2011/AssertExcept.java AssertExcept.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/MapEntry.java MapEntry.java]
 
|-
 
|15
 
|Oct. 27
 
''Withdraw deadline''<br>
 
|Debugging/testing
 
|Unit testing
 
|[http://www.stanford.edu/class/cs108/handouts111/04UnitTesting.pdf Stanford handout on unit testing], [http://www.vogella.de/articles/JUnit/article.html JUnit tutorial]
 
|[http://nameless.cis.udel.edu/class_data/cisc181/f2011/PokerTest.java PokerTest.java]<br>[[CISC181_F2011_Project2|''Project #2'']] (due Nov. 10; pair)
 
|-
 
|style="background:rgb(102, 204, 255)"|16
 
|Nov. 1
 
|Graphics/GUI
 
|Using Swing for windows, events, listeners, 2-D drawing
 
|Chap. 12
 
|[[CISC181_F2011_Lab6|''Lab #6'']] (pair)<br>
 
[http://nameless.cis.udel.edu/class_data/cisc181/f2011/HelloWindow.java HelloWindow.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/TwoButtons.java TwoButtons.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/catzilla.jpg catzilla.jpg]
 
|-
 
|17
 
|Nov. 3
 
|Graphics/GUI
 
|Swing layout managers, mouse events, animation
 
|Chap. 12, 13
 
|[http://nameless.cis.udel.edu/class_data/cisc181/f2011/SimpleAnimation.java SimpleAnimation.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/MoveLetter.java MoveLetter.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/MouseDrag.java MouseDrag.java]
 
|-
 
|style="background:rgb(102, 204, 255)"|18
 
|Nov. 8
 
|Deployment
 
|Swing timers, swapping panels; JARs, applets
 
|Chap. 17, [http://download.oracle.com/javase/tutorial/uiswing/misc/timer.html Swing timers]
 
|''NO LAB''
 
[http://nameless.cis.udel.edu/class_data/cisc181/f2011/HelloApplet.java HelloApplet.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/HelloApplet.html HelloApplet.html],
 
[http://nameless.cis.udel.edu/class_data/cisc181/f2011/DragMouse.java DragMouse.java], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/DragMouseApplet.java DragMouseApplet.java]
 
|-
 
|19
 
|Nov. 10
 
|Android
 
|Introduction to Android
 
|[http://developer.android.com/guide/basics/what-is-android.html Android intro] (read the Basics, Topics/Activities, and Topics/User Interface sections)
 
|[http://developer.android.com/sdk/index.html Android install instructions]
 
|-
 
|style="background:rgb(102, 204, 255)"|20
 
|Nov. 15
 
|Android
 
|Views, resources, layouts
 
|[http://developer.android.com/resources/tutorials/hello-world.html Hello world], [http://developer.android.com/resources/tutorials/views/index.html Hello views], [http://developer.android.com/guide/topics/resources/index.html resources], [http://www.vogella.de/articles/Android/article.html Android tutorial]
 
|[[CISC181_F2011_Lab7|''Lab #7'']] ''(ALL labs due Tuesday before Thanksgiving break)''
 
[[CISC181_F2011_Project3|''Project #3'']] (pair; '''due Dec. 7''')
 
[http://nameless.cis.udel.edu/class_data/cisc181/f2011/HelloWidgetMania.zip HelloWidgetMania.zip]
 
|-
 
|21
 
|Nov. 17
 
|Android
 
|Starting activities, 2-d graphics
 
|[[CISC181_F2011_MultipleActivities|Multiple activities]], [http://developer.android.com/guide/topics/graphics/2d-graphics.html Canvas and drawables]
 
|[http://nameless.cis.udel.edu/class_data/cisc181/f2011/MarsLander.zip MarsLander.zip], [http://nameless.cis.udel.edu/class_data/cisc181/f2011/BigWall.zip BigWall.zip]
 
|-
 
|style="background:rgb(102, 204, 255)"|22
 
|Nov. 22
 
|Android
 
|Data storage, sound
 
|[http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29 startActivityForResult], [http://developer.android.com/guide/topics/data/data-storage.html#pref shared preferences], [http://developer.android.com/reference/android/media/SoundPool.html SoundPool], [http://developer.android.com/reference/android/media/MediaPlayer.html MediaPlayer]
 
|[[CISC181_F2011_Nov22_WidgetMania|WidgetMania modifications]], [[CISC181_F2011_Nov22_BigWall|BigWall modifications]]<br>''NO LAB''
 
|-
 
|
 
|Nov. 24
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Thanksgiving''
 
|
 
|
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|23
 
|Nov. 29
 
|Android
 
|Text to speech, vibration, accelerometer, logging/debugging
 
|[http://developer.android.com/resources/articles/tts.html Text to speech], [http://developer.android.com/reference/java/util/Formatter.html string formatting], [http://developer.android.com/reference/android/hardware/SensorManager.html SensorManager] (accelerometer), [http://android.konreu.com/developer-how-to/vibration-examples-for-android-phone-development/ vibration], [http://www.droidnova.com/debugging-in-android-using-eclipse,541.html logcat in Eclipse]
 
|[[CISC181_F2011_Nov29_MarsLander|MarsLander modifications]]<br>
 
[[CISC181_F2011_Lab8|''Lab #8'']] (pair)
 
|-
 
|
 
|Dec. 1
 
|style="background:rgb(255, 102, 0)"|NO CLASS
 
|
 
|
 
|
 
|-
 
|style="background:rgb(102, 204, 255)"|24
 
|Dec. 6
 
|Final review
 
|
 
|
 
|[http://nameless.cis.udel.edu/class_data/cisc181/f2011/CISC181_Final_Review.pdf Final review slides] (JAR, Swing included), [http://www.slideshare.net/tom.zimmermann/unit-testing-with-junit Unit testing]<br>''NO LAB''
 
|-
 
|
 
|
 
|FINAL EXAM: Thursday, Dec. 15
 
|Early section: 10:30 am-12:20 pm, SHL 103<br>
 
Later section: 1-3 pm, CSB 002
 
|
 
|
 
|}
 
 
-->
 

Latest revision as of 12:07, 19 May 2017

Course information

Description CISC 181 (section 080) -- 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: Mondays, 10 am -- 12 pm
TA Abraham McIlvaine, E-mail: abemac@udel.edu, office hours: Wednesdays, 5-6 pm and Fridays, 9-10 am in Smith 201 (during weeks when there are labs)
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.
Schedule
  • Lecture: Tuesdays and Thursdays, 11:00 am to 12:15 pm in Penny 004
  • Lab section: Mondays from 4:40 pm to 5:30 pm in Spencer 010
Required
Grading
  • 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. More details here
  • 20% Programming project This is a two-step, two-week assignment which may be done as part of a pair
  • 20% Midterm exam
  • 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.

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.

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 Tuesdays.
UDCapture link (the lecture from 2/9 is missing because UDCapture didn't know we had moved to Penny)

# Date Topic Details Readings Links/Lab
1 Feb. 7 Welcome Course details; IDE overview; Hello, Java ZJ 1.2-1.3, 1.5, 1.10, 16.1 slides
2 Feb. 9 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 Feb. 14 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: Math, formatting, branching (Feb. 13)

slides

4 Feb. 16 Loops while, for (single and nested); break, continue; randomness ZJ 6-6.6, 6.8-6.9, 4.9 slides
5 Feb. 21

Register/add deadline Feb. 20

Basic graphics Graphics class: shapes, color, text; programming tips and API lookup Making windows in Swing, Java 2D API Lab #2: Basic graphics (Feb. 20)

slides

6 Feb. 23 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 Feb. 28 Objects/methods/classes More about public/private, accessors/mutators, static, primitive wrapper classes; this; pass-by-value vs. pass-by-reference ZJ 2.10, 3.7, 9.5-9.6, 9.11 Lab #3: Objects (Feb. 27)
slides
8 Mar. 2 Objects/methods/classes Inheritance (derived classes, polymorphism), abstract classes ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6 slides
9 Mar. 7 Arrays and interfaces Interfaces; single-, multi-dimensional arrays; ArrayList (collections); Comparable vs. Comparator; enhanced for ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5, Object ordering Lab #4: Arrays (Mar. 6)
slides
10 Mar. 9 Strings & streams Basic string operations; stream types, URLs ZJ 5.7-5.10, 16.4, URL tutorial slides
Mar. 14 NO CLASS
Campus closed due to storm

Lab #5: Files (Mar. 13)

11 Mar. 16 Strings & streams Reading, writing text files; String.split(); regular expressions; using ArrayList and enum for cards ZJ 16.5, Regex documentation slides
12 Mar. 21 Midterm review slides

Partial sample midterm

13 Mar. 23 MIDTERM
Mar. 28 NO CLASS
Spring break
Mar. 30 NO CLASS
Spring break
14 Apr. 4 Go over midterm; testing, error-handling Exceptions ZJ 17-17.3, Exceptions

Lab #6: Testing and exceptions (Apr. 3)
slides

15 Apr. 6 Testing, error-handling Assertions, unit testing ZJ 3.6, 8.2 slides
16 Apr. 11
Withdraw deadline Apr. 10
Generics, collections Generic methods, classes; Collection vs. Collections; Set and Map classes Collection interface Lab #7: Testing and collections (Apr. 10)
slides
17 Apr. 13 Coding challenge Challenge problems
Apr. 18 NO CLASS
Instructor away
Lab #8: Maps (Apr. 17)
Apr. 20 NO CLASS
Instructor away
18 Apr. 25 Android SDK; "Hello, world" app; running Creating an Android project, Running your app

Lab #9: Hello, Android (Apr. 24)
slides

19 Apr. 27 Android Layout, UI elements, event handling, multiple activities Building a simple UI, multiple activities slides
20 May 2 Android More multiple activities, basic graphics, canvas and drawables, project explanation Lab #10: Android activities (May 1)
slides
MyViewZoo, SimpleDraw
21 May 4 Android More basic graphics, touch, animation, sound slides

SimpleAnimate, SimpleMultimedia

22 May 9 Android Sensors, cameras, faces Intents and Intent Filters

Project milestone #1 due May 10
NO LAB on May 8
slides

23 May 11 Project help (in class)
24 May 16 Final review Project milestone #2 due
NO LAB on May 15
slides
2015 final exam
May 23, 10:30 am--12:30 pm FINAL EXAM