Difference between revisions of "CISC181 S2019"

From class_wiki
Jump to: navigation, search
(Course information)
(Schedule)
 
(81 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
|-
 
|-
 
|valign="top"|'''Description'''
 
|valign="top"|'''Description'''
|CISC 181 (section 010) -- Introduction to Computer Science II (Honors)<br>
+
|CISC 181 (section 080) -- Introduction to Computer Science II (Honors)<br>
 
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.
 
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.
 
|-
 
|-
Line 11: Line 11:
 
|
 
|
 
* Full: http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2019
 
* Full: http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2019
* Shortened: xxx
+
* Shortened: http://goo.gl/9sujro
  
 
|-
 
|-
Line 18: Line 18:
 
|-
 
|-
 
|valign="top"|'''TA'''
 
|valign="top"|'''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)
+
|Nathaniel Merrill, E-mail: nmerrill@udel.edu, office hours: Tuesdays, 12:30-1:30 pm and 5:30-6:30 pm in Smith 2nd floor TA room <!--Fridays 2-3 pm, Mondays 3-4 pm in Smith 201 (during weeks when there are labs)-->
 
|-
 
|-
 
|valign="top"|'''Schedule'''
 
|valign="top"|'''Schedule'''
 
|
 
|
* Lecture: Mondays and Wednesdays, 8:40 am to 9:55 am in [http://css-rdms1.win.udel.edu/maps/?find=NW65 Kirkbride 205]
+
* Lecture: Tuesdays and Thursdays, 11 am to 12:15 am in [http://css-rdms1.win.udel.edu/maps/?find=NC67 ISE 222]
* Lab sections: Tuesdays in [http://css-rdms1.win.udel.edu/maps/?find=SPL Spencer 010]
+
* Lab section: Wednesdays, 1:25 to 2:15 pm in [http://css-rdms1.win.udel.edu/maps/?find=SPL 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
 
 
|-
 
|-
 
|valign="top"|'''Required'''
 
|valign="top"|'''Required'''
Line 32: Line 29:
 
* Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below)
 
* Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below)
 
<!--** ''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''-->
 
<!--** ''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"
+
** Click the "Create account" link at [http://www.zybooks.com www.zybooks.com] and follow the instructions (the cost should be about $58).  Enter the class sign-up code '''UDELCISC181RasmussenSpring2019''' and subscribe
 
* 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_S2019_NewAndroidStudioProject | How to make a new, pure-Java (not Android) project from scratch]]
 
|-
 
|-
 
|valign="top"|'''Grading'''
 
|valign="top"|'''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). [[CISC181_F2017_LabGrading|Lab grading details here]]
+
* 36%  Labs (4% each).  These are sets of small-to-medium tasks/programs.  Labs 0-3 must be done in assigned pairs, while labs >= 4 may be done in a pair or individually.  Labs 0-7 go out each Wednesday and must be completed by '''Tuesday night of the following week'''. Lab #5 and 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_S2019_LabGrading|Lab grading details here]]
* 9%  [[CISC181_F2017_ActivityCompletion|Activity completion in ZJ]] before day of midterm
+
* 9%  [[CISC181_S2019_ActivityCompletion|Activity completion in ZJ]] before day of midterm
 
* 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'''
+
* 15%  [[CISC181_S2019_ProjectRequirements | Programming project]] This is a two-step, two-week assignment which may be done individually or 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
  
Your labs and programming projects are due by 5 am after the deadline day.  All should be submitted in [https://sakai.udel.edu/portal 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.
+
Your labs and programming projects are due by 5 am after the deadline day.  All should be submitted in Canvas.  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.
+
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 Canvas.
 
    
 
    
 
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 (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.-->
 
<!--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'''
 
|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.
 
|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  
 
* To enroll: http://www.piazza.com/udel/fall2017/cisc181010  
 
* After you enroll: http://piazza.com/class#fall2017/cisc181010
 
* After you enroll: http://piazza.com/class#fall2017/cisc181010
 +
-->
 
|-
 
|-
 
|valign="top"|'''Academic honesty'''
 
|valign="top"|'''Academic honesty'''
Line 102: Line 100:
 
==Schedule==
 
==Schedule==
  
''Note'': The blue squares in the "#" column below indicate Mondays. <br>
+
''Note'': The blue squares in the "#" column below indicate Tuesdays. <br>
[https://udcapture.udel.edu/2017f/cisc181-010/ UDCapture link]  
+
[https://udcapture.udel.edu/2019s/cisc181-080/ UDCapture link]  
 
<br><br>
 
<br><br>
  
Line 114: Line 112:
 
!width="15%"|Links/Lab
 
!width="15%"|Links/Lab
 
|-
 
|-
|1
+
|style="background:rgb(102, 204, 255)"|1
|Aug. 30
+
|Feb. 12
 
|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
 
|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/1I8mVBMvJ4d63nN7inNRQ4MX5cs321gGQsVunC6DwTZs/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1uW8anykMFgkVPTMp3JR33Qmm2m3f2peVa_zP5VV9pb0/edit?usp=sharing slides: intro to course]<br>
|-
+
''[[CISC181_S2019_Lab0 | Lab #0: Math, formatting, branching]] (Feb. 13)''<br>
|style="background:rgb(102, 204, 255)"|
+
[https://docs.google.com/presentation/d/1hY2tXWiEh9sX7JwmCKDwtuXGaYWmAGqAtj_7fi2oiTQ/edit?usp=sharing lab slides]
|Sep. 4
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Labor Day holiday''
 
|
 
|
 
|''[[CISC181_F2017_Lab0 | Lab #0: Math, formatting, branching]] (Sep. 5)''
 
 
|-
 
|-
 
|2
 
|2
|Sep. 6
+
|Feb. 14
 
|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.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/1Y46VKQw0Ilp9ppLzE_1_JdtidG0daQpcF0a2vVtMqeU/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1PzDv9AzF5P2Cn1vOcTTatE9caK59jMQpTJi0wvyLAQE/edit?usp=sharing slides: variables, IO, math, logic]<br>
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|3
 
|style="background:rgb(102, 204, 255)"|3
|Sep. 11<br>
+
|Feb. 19
''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_F2017_Lab1 | Lab #1: More math, basic loops]] (Sep. 12)''<br>
+
|
[https://docs.google.com/presentation/d/1WT1UiwcqoVFUKU8kgHW1zdAptGIUc3x_gh7yAW7W3iE/edit?usp=sharing slides]
+
[https://docs.google.com/presentation/d/1G9lbcwCJP1XEbKGL6BHE_jTXnPtxkpXyXt_LI8jYRvA/edit?usp=sharing slides: branching, style, type conversions]<br>
 +
''[[CISC181_S2019_Lab1 | Lab #1: More math, basic loops]] (Feb. 20)''
 +
 
 
|-
 
|-
 
|4
 
|4
|Sep. 13
+
|Feb. 21
|Loops
+
|Loops, arrays, randomness
 
|<tt>while</tt>, <tt>for</tt> (single and nested); <tt>break</tt>, <tt>continue</tt>
 
|<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/1cXLfYiU7YJaXANzIi9ZBHAW2-CA5Ai6JxJbotKgYVuA/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1pPfjFaSoo1ku-TYWgzPMI3aMHgPTQkhjx8OnxUK72Lo/edit?usp=sharing slides: more control, enums, loops]<br>
 +
[https://docs.google.com/presentation/d/1dwq3HSCRdKsqqzAwhjPMCS_j8m8uJ5I41KUYq-XF2bg/edit?usp=sharing slides: arrays]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|5
 
|style="background:rgb(102, 204, 255)"|5
|Sep. 18
+
|Feb. 26
|Basic arrays and graphics
+
''Register/add deadline Feb. 25''
|Randomness; single-dimensional arrays; graphics class: shapes, color, text; programming tips and API lookup
+
|Classes, Swing graphics
 +
|Fields, methods, constructors, overloading, overriding, intro to access; 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_F2017_Lab2 | Lab #2: Basic arrays and graphics]] (Sep. 19)''<br>
+
|''[[CISC181_S2019_Lab2 | Lab #2: Basic arrays and graphics]] (Feb. 27)''<br>
[https://docs.google.com/presentation/d/1a3ZKMl2g7wf6Qh6EwTHgQbtKBhJa-E9YeiCGFK-I0Lw/edit?usp=sharing slides]
+
[https://docs.google.com/presentation/d/1csloWlOIaqk5Ir0hJp4OC60o6ofyU_A65KM3uagzBwY/edit?usp=sharing slides: classes, Swing graphics]
 
|-
 
|-
 
|6
 
|6
|Sep. 20
+
|Feb. 28
 
|Objects/methods/classes
 
|Objects/methods/classes
|Class concepts, reference variables, constructors, overloading, overriding; intro to access
+
|Inheritance, more about public/private, accessors/mutators, <tt>this</tt>, <tt>static</tt> 
 
|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/1kZvwZUzYMmjLTIPDcVFj_aowcs2YUqiK8OfCwIPgClk/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/12Bc7GwQ8fX7ZWRJMf-8zOk-jd5T_7XDdjhD5EpxZjW0/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|7
 
|style="background:rgb(102, 204, 255)"|7
|Sep. 25
+
|Mar. 5
 
|Objects/methods/classes
 
|Objects/methods/classes
|More about public/private, accessors/mutators, <tt>static</tt> 
+
|Primitive wrapper classes; polymorphism
 
|ZJ 2.10, 3.7, 9.5-9.6, 9.11
 
|ZJ 2.10, 3.7, 9.5-9.6, 9.11
|''[[CISC181_F2017_Lab3 | Lab #3: Objects]] (Sep. 26)''<br>[https://docs.google.com/presentation/d/128WV4DsV3z7LpnZE8wYOQ5CmBTt_WyJVMUUfhXszJAI/edit?usp=sharing slides]
+
|''[[CISC181_S2019_Lab3 | Lab #3: Game of Life]] (Mar. 6)''<br>[https://docs.google.com/presentation/d/1QTC8hxNmd9s-X2N-6vt5TvssWFj90Fc8onkYl3on078/edit?usp=sharing slides]<br>[https://docs.google.com/presentation/d/1gszeyvXu7OnvDuFGEyRWIngq64hJdkFyn5AUVz1wyvE/edit?usp=sharing lab slides]
 
|-
 
|-
 
|8
 
|8
|Sep. 27
+
|Mar. 7
 
|Objects/methods/classes
 
|Objects/methods/classes
|Primitive wrapper classes; object comparison; <tt>this</tt>; start inheritance
+
|Interfaces, more about Swing for lab #3
 
|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/1RWAjqgN6bC9g_tY_hF2Ndlisd5-HPBfFSBteg7x62os/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/15H6BT-GJqONIRfn-HtyneDMvKC_LnvPHe_ObctjcI1g/edit?usp=sharing slides]<br>
 +
[https://docs.google.com/document/d/1UY2cywNpqZx270LkKWXmqtsf4Y_qziefegKv5IE3cuA/edit?usp=sharing MouseAndTimerJComponent.java]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|9
 
|style="background:rgb(102, 204, 255)"|9
|Oct. 2
+
|Mar. 12
|Objects/methods/classes
+
|<tt>ArrayList</tt>, <tt>Comparable vs. Comparator</tt>
|Finish inheritance (derived classes, polymorphism)
+
|  
|
+
|ZJ 5.7-5.10, 16.4,  [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_F2017_Lab4 | Lab #4: Array lists]] (Oct. 3)''<br>[https://docs.google.com/presentation/d/1fxtgrhycw30CrmSUXUnQxbum_Noclshws0lLRb_xn6U/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1t0GVATKU_b9aOVpxrI6UZGjAIXwk9gzDtiJsOb6XH3c/edit?usp=sharing slides]<br> <!--[https://docs.google.com/presentation/d/1_dxpCAN7eIjtRbDQceX0n75sInU8ETGaEFkGvuZaHuA/edit?usp=sharing slides]<br>-->''[[CISC181_S2019_Lab4 | Lab #4: Array lists]] (Mar. 13)''<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
+
|Mar. 14
|Arrays and array lists
+
|Generics, collections
|Multi-dimensional arrays; <tt>ArrayList</tt> (collections), pass-by-value vs. pass-by-reference
+
|Generic methods, classes; <tt>Collection</tt> vs. <tt>Collections</tt>; <tt>Set</tt> interface
|ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5
+
|[https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]<br>ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5
|[https://docs.google.com/presentation/d/1B0FBSoGbNGqSAzMJdr_wcJVVb7oIfou-UuQNHGmQBjg/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1tfWre2ntaOJc9ZPY-v0TF0bPPM1F2IwrnS9phJck5sk/edit?usp=sharing slides]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|11
 
|style="background:rgb(102, 204, 255)"|11
|Oct. 9
+
|Mar. 19
|Interfaces and strings
+
|Maps
|Abstract classes, <tt>Comparable vs. Comparator</tt>, basic string operations
+
|Keys, values, <tt>Collection</tt> views
|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=1Ru3DH8vx5rnGrH3cLQjL6nEL3OZNlyJ4MC-nZDvxLQs slides]
+
|[https://docs.google.com/presentation/d/1DiocDO41xcDh4ONjOAH4kCeniZH9f0ZKH9zdkTPAICQ/edit?usp=sharing slides]
''[[CISC181_F2017_Lab5 | Lab #5: Files]] (Oct. 10)''
+
''Lab #5: In-lab programming quiz (Mar. 20)''
 
|-
 
|-
 
|12
 
|12
|Oct. 11
+
|Mar. 21
|Streams and patterns
+
|Exceptions<!--Streams and patterns-->
|Stream types, reading text files; <tt>String.split()</tt>; regular expressions
+
|Throwing/catching<!--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]  
+
|ZJ 17-17.3, [https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html Exceptions]<!--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]
+
|[https://docs.google.com/presentation/d/1LIb7ONKM89Jh3bpRnDQdwUm8QI3lFRqwyAldHI2IlB0/edit?usp=sharing slides]<br>
 +
[https://docs.google.com/document/d/1Q8QOnzovsaVkoQ1qfewaaKMNX0vf1KLNN2qKTMiB7lc/edit?usp=sharing Student solutions to leastCommon() exercise]
 
|-
 
|-
 
|style="background:rgb(102, 204, 255)"|13
 
|style="background:rgb(102, 204, 255)"|13
|Oct. 16
+
|Mar. 26
 
|Midterm review
 
|Midterm review
 
|
 
|
 
|
 
|
|'''NO LAB Oct. 17 -- Activity completion deadline!'''<br>
+
|'''NO LAB Mar. 27 -- Activity completion deadline!'''<br>
[https://docs.google.com/presentation/d/1-TMi3y49l7pO9p_LVyJjfcBcps1uO7sPd3_oF6ptjJI/edit?usp=sharing slides]<br>
+
[https://docs.google.com/presentation/d/15ET1n1NvDpygBa5oHvQGWiwinbdpe9OG5su5FW0itjA/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]
 
|-
 
|-
 
|14
 
|14
|Oct. 18
+
|Mar. 28
 
|MIDTERM
 
|MIDTERM
 
|
 
|
 
|
 
|
 
|
 
|
|-
 
|style="background:rgb(102, 204, 255)"|15
 
|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
 
|Oct. 25
 
|Go over midterm; testing, error-handling
 
|<tt>Map</tt> interface, exceptions
 
|ZJ 17-17.3, [https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html Exceptions]
 
|[https://docs.google.com/presentation/d/1QUpjkKT6lsqD17I0I_h7nbCD8ZFC92KWWkiXdVOPmps/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)"|
|Oct. 30
+
|Apr. 2
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away''
+
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break''
 +
|
 
|
 
|
 
|
 
|
|[[CISC181_F2017_Lab6 | Lab #6: Maps]] (Oct. 31)''
 
 
|-
 
|-
|17
 
|Nov. 1
 
|Finish maps, error-handling
 
 
|
 
|
 +
|Apr. 4
 +
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break''
 
|
 
|
|[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
 
|Nov. 6
 
|Testing
 
|Assertions, unit testing
 
|ZJ 3.6, 8.2<!--ZJ 14,-->
 
|<!--[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
 
|Nov. 8
 
|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]
 
<!--
 
 
|
 
|
 
|
 
|
''Withdraw deadline Apr. 10''
+
|-
 +
|style="background:rgb(102, 204, 255)"|15
 +
|Apr. 9
 +
|Finish exceptions; start streams
 
|
 
|
 
|
 
|
 +
|'''NO LAB Apr. 10'''<br>[https://docs.google.com/presentation/d/1gvJpGu3QcY8FRQKl8EYUUxx-1DxZlWOJo4P88cQaYuk/edit?usp=sharing slides]<!--[[CISC181_S2017_Lab7 | Lab #7: Inheritance]]<br> [https://docs.google.com/presentation/d/141leM8Mo-mX1Ms1cZKXASO_LdMjmV3pKybNtNcxVxjU/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]-->
 +
|-
 +
|16
 +
|Apr. 11
 +
|Streams and basic parsing
 
|
 
|
|[[CISC181_S2017_Lab8 | Lab #8: Testing and exceptions]]<br>[https://docs.google.com/presentation/d/1y_hpwpNf_4RiaMB4_SKYkAG2WhTuExE0LLiY0e9Fu2w/edit?usp=sharing slides]
+
|ZJ 16.4-16.5, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation]
-->
+
|[https://docs.google.com/presentation/d/1UC3J8rbQcJhn8NdbHzZHVBW5vefjjPOkZE-r6Qg5Eek/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)"|20
+
|style="background:rgb(102, 204, 255)"|17
|Nov. 13
+
|Apr. 16<br>''Withdraw deadline Monday, Apr. 15''
|Android<!--Dates and times-->
+
|Testing, error-handling
|Layout, UI elements, event handling, multiple activities<!--<tt>Calendar</tt>, <tt>nanoTime</tt>-->
+
|Assertions, unit testing
|[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]-->
+
|<!--ZJ 14,--> <!--[https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html Collection interface]-->ZJ 3.6, 8.2
|<!--[https://docs.google.com/presentation/d/1dzj1zna_AaPzHH-bsGs0pB8bYvOBaoKgbD0p0c1MDoQ/edit?usp=sharing slides]-->
+
|[https://docs.google.com/presentation/d/10npjjUnon2IvOwBVaQWhdnIckMBo-ODLUpelgFtsdxo/edit?usp=sharing slides]<br>''[[CISC181_S2019_Lab6 | Lab #6: Unit testing]] (Apr. 17)''<br>[http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2019_NewPlainJavaInAndroidStudio Instructions for creating JUnit-compatible AS project]<br>[https://docs.google.com/presentation/d/1F4iSxPR6pGgOFXCM1AA4G5WvWMlGuom8EKPGis0hR1k/edit?usp=sharing lab slides]<!--[https://docs.google.com/presentation/d/1i1VHKTk0TwVpaWZvWIzzJFO_PRawQ8h7oeFx3RuTbps/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
+
|18
|Nov. 15
+
|Apr. 18
|Android
+
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away''
|More multiple activities, basic graphics, [http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_F2017_ProjectRequirements project explanation]
 
|[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://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)"|
 
|Nov. 20
 
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Thanksgiving break''
 
 
|
 
|
 
|
 
|
|<!--''[[CISC181_S2017_Lab8 | Lab #8: Maps]] (Apr. 17)''-->
+
|<!--[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]-->
 
|-
 
|-
|
+
|style="background:rgb(102, 204, 255)"|19
|Nov. 22
+
|Apr. 23
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Thanksgiving break''
+
|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/presentation/d/1c6qk0dey3nAlAtLmOgZdHN6q4g24AExPuvbng-gPv-4/edit?usp=sharing slides]<br>
 +
''[[CISC181_S2019_Lab7 | Lab #7: Hello Android]] (Apr. 24)''<!--<br>[https://docs.google.com/presentation/d/1v2qME-AOCc0TG0crvyliv4vXEZzho9vzGMR9evDCfPc/edit?usp=sharing slides]-->
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|22
+
|20
|Nov. 27
+
|Apr. 25
 
|Android
 
|Android
|More basic graphics, touch, animation, sound
+
|Layout, UI elements, event handling, multiple activities
|
+
|[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]
|'''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]
+
|[https://docs.google.com/presentation/d/1fSsFtpBml-uXPgWZ2fZXcNYDnu4uNnh57FDd5t3Fv-Q/edit?usp=sharing slides]<br>[https://drive.google.com/open?id=1C6QILNOnq_9N1vjgJ_rxNNzqqZLOBcCM basic MyViewZoo] (need to add dimens resource following Solution 4 [https://www.codeproject.com/Questions/808364/error-Error-No-resource-found-that-matches-the-giv here])<!-- [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]-->
 
|-
 
|-
|23
+
|style="background:rgb(102, 204, 255)"|21
|Nov. 29
+
|Apr. 30
|Android; Java dates & times
+
|Android
|Sensors, cameras, faces
+
|More multiple activities, basic graphics, touch
|[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]
+
|[http://developer.android.com/guide/topics/graphics/2d-graphics.html Canvas and drawables]
|''Project milestone #1 due''<br>[https://docs.google.com/presentation/d/1nqE5BGh5TMo3iYvzhYmixXZW8sOisTEPDrNSlCmCOQQ/edit?usp=sharing slides]
+
|[https://docs.google.com/presentation/d/1z7JU5K8mIho--nFEQyG_EhSmB5hGLPN6sMS1o7_ckJo/edit?usp=sharing slides]<br>[http://nameless.cis.udel.edu/class_data/181_s2017/myviewzoo advanced MyViewZoo], [http://nameless.cis.udel.edu/class_data/181_s2017/simpledraw SimpleDraw]<br><!--[[CISC181_S2017_Lab10 | Lab #10: Android]]<br> [https://docs.google.com/presentation/d/14abdA7NMofbamXCEaURycwSxkNfxukTV6iADL9u5724/edit?usp=sharing slides]--> ''[[CISC181_S2019_Lab8 | Lab #8: 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]-->
<!--
+
 
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|22
+
|22
|Nov. 29
+
|May 2
 
|Android
 
|Android
 +
|Graphics animation, sound; [http://nameless.cis.udel.edu/class_wiki/index.php/CISC181_S2019_ProjectRequirements project explanation]
 
|
 
|
|
+
|[https://docs.google.com/presentation/d/1XEIboFFY1XATV-v6Ojsna1XstltTB4OeIzPZdAPXW3A/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]-->
''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)"|23
 +
|May 7
 +
|Android
 +
|Sensors, cameras, faces
 +
|[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>
 +
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]-->
 +
[https://docs.google.com/presentation/d/1V7FOCFKfct5LcmJoAnVgbwhy64fcZTHJHldhcO0nCVI/edit?usp=sharing slides]<br>
 +
[http://nameless.cis.udel.edu/class_data/181_s2017/simplemultimedia SimpleMultimedia]<br>
 +
'''LAB on May 8 is for project help only'''
 
|-
 
|-
|style="background:rgb(102, 204, 255)"|24
+
|24
|Dec. 4
+
|May 9
|Project help (in class)
+
|Dates and times; Project help (in class)
 
|
 
|
|
+
|[https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times]
|'''LAB on Dec. 5 is Project Help only'''<!--[https://docs.google.com/presentation/d/1_PEMZQoEa3iE44_RYAqb7v8zRAP-0MDbRvlxXwxDuJM/edit?usp=sharing slides]<br>
+
|[https://docs.google.com/presentation/d/1PS-6_d_vKSyQoNIfmb6ybF_KinvU6ZSEmaqEgCrJy9w/edit?usp=sharing slides]<br>''Project milestone due May 10''<!--[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 342: Line 320:
 
[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] -->  
 
|-
 
|-
|25
+
|style="background:rgb(102, 204, 255)"|25
|Dec. 6
+
|May 14
 
|Final review
 
|Final review
 
|
 
|
 
|
 
|
|''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]
+
|'''LAB on May 15 for project help only'''<br>[https://docs.google.com/presentation/d/1mcyhmJAE3kycqx9jVu1Wfax9hxrCmUKFzPyZBPW26XQ/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
+
|May 16
|In-person demos for final project
+
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Work on project''
|
 
 
|
 
|
 
|
 
|
 +
|''Project due May 17''
 
<!--
 
<!--
 
|-
 
|-
Line 378: Line 356:
 
|-
 
|-
 
|
 
|
|Dec. 11-16
+
|May 24, 1-3 pm
|FINAL EXAMINATION
+
|FINAL EXAM
 
|
 
|
 
|
 
|
 
|
 
|
 
|}
 
|}

Latest revision as of 10:09, 14 May 2019

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: Wednesdays, 10:15 am-12:15 pm
TA Nathaniel Merrill, E-mail: nmerrill@udel.edu, office hours: Tuesdays, 12:30-1:30 pm and 5:30-6:30 pm in Smith 2nd floor TA room
Schedule
  • Lecture: Tuesdays and Thursdays, 11 am to 12:15 am in ISE 222
  • Lab section: Wednesdays, 1:25 to 2:15 pm in Spencer 010
Required
Grading
  • 36% Labs (4% each). These are sets of small-to-medium tasks/programs. Labs 0-3 must be done in assigned pairs, while labs >= 4 may be done in a pair or individually. Labs 0-7 go out each Wednesday and must be completed by Tuesday night of the following week. Lab #5 and 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 individually or 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 Canvas. 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 Canvas.

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!

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

# Date Topic Details Readings Links/Lab
1 Feb. 12 Welcome Course details; IDE overview; Hello, Java ZJ 1.2-1.3, 1.5, 1.10, 16.1 slides: intro to course

Lab #0: Math, formatting, branching (Feb. 13)
lab slides

2 Feb. 14 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: variables, IO, math, logic
3 Feb. 19 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

slides: branching, style, type conversions
Lab #1: More math, basic loops (Feb. 20)

4 Feb. 21 Loops, arrays, randomness while, for (single and nested); break, continue ZJ 6-6.6, 6.8-6.9, 4.9 slides: more control, enums, loops

slides: arrays

5 Feb. 26

Register/add deadline Feb. 25

Classes, Swing graphics Fields, methods, constructors, overloading, overriding, intro to access; graphics class: shapes, color, text; programming tips and API lookup Making windows in Swing, Java 2D API Lab #2: Basic arrays and graphics (Feb. 27)

slides: classes, Swing graphics

6 Feb. 28 Objects/methods/classes Inheritance, more about public/private, accessors/mutators, this, static ZJ 3-3.5, 9.2-9.4, 10.3 slides
7 Mar. 5 Objects/methods/classes Primitive wrapper classes; polymorphism ZJ 2.10, 3.7, 9.5-9.6, 9.11 Lab #3: Game of Life (Mar. 6)
slides
lab slides
8 Mar. 7 Objects/methods/classes Interfaces, more about Swing for lab #3 ZJ 10.1-10.5, 11.1-11.2, 11.4, 11.6 slides

MouseAndTimerJComponent.java

9 Mar. 12 ArrayList, Comparable vs. Comparator ZJ 5.7-5.10, 16.4, Object ordering slides
Lab #4: Array lists (Mar. 13)
10 Mar. 14 Generics, collections Generic methods, classes; Collection vs. Collections; Set interface Collection interface
ZJ 7-7.9, 9.7, 9.8, 9.11, 11.5
slides
11 Mar. 19 Maps Keys, values, Collection views slides

Lab #5: In-lab programming quiz (Mar. 20)

12 Mar. 21 Exceptions Throwing/catching ZJ 17-17.3, Exceptions slides

Student solutions to leastCommon() exercise

13 Mar. 26 Midterm review NO LAB Mar. 27 -- Activity completion deadline!

slides
Partial sample midterm

14 Mar. 28 MIDTERM
Apr. 2 NO CLASS
Spring break
Apr. 4 NO CLASS
Spring break
15 Apr. 9 Finish exceptions; start streams NO LAB Apr. 10
slides
16 Apr. 11 Streams and basic parsing ZJ 16.4-16.5, Regex documentation slides
17 Apr. 16
Withdraw deadline Monday, Apr. 15
Testing, error-handling Assertions, unit testing ZJ 3.6, 8.2 slides
Lab #6: Unit testing (Apr. 17)
Instructions for creating JUnit-compatible AS project
lab slides
18 Apr. 18 NO CLASS
Instructor away
19 Apr. 23 Android SDK; "Hello, world" app; running Creating an Android project, Running your app slides

Lab #7: Hello Android (Apr. 24)

20 Apr. 25 Android Layout, UI elements, event handling, multiple activities Building a simple UI, multiple activities slides
basic MyViewZoo (need to add dimens resource following Solution 4 here)
21 Apr. 30 Android More multiple activities, basic graphics, touch Canvas and drawables slides
advanced MyViewZoo, SimpleDraw
Lab #8: Android activities (May 1)
22 May 2 Android Graphics animation, sound; project explanation slides

SimpleAnimate

23 May 7 Android Sensors, cameras, faces Intents and Intent Filters

slides
SimpleMultimedia
LAB on May 8 is for project help only

24 May 9 Dates and times; Project help (in class) Dates and times slides
Project milestone due May 10
25 May 14 Final review LAB on May 15 for project help only
slides
2015 final exam
May 16 NO CLASS
Work on project
Project due May 17
May 24, 1-3 pm FINAL EXAM