Difference between revisions of "CISC181 S2017"
(→Schedule) |
(→Schedule) |
||
(166 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: 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= | + | * 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 32: | Line 32: | ||
| | | | ||
* Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below) | * Language resource: ''Zyante Java Early Objects'' ("ZJ" in Schedule below) | ||
− | ** Click the " | + | ** 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 "UDELCISC181RasmussenSpring2017". |
* 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_S2017_NewAndroidStudioProject | How to make a new, pure-Java (not Android) project from scratch]] | ** [[CISC181_S2017_NewAndroidStudioProject | How to make a new, pure-Java (not Android) project from scratch]] | ||
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]] --> |
− | * | + | * 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]] | + | * 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/ | + | 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 68: | Line 68: | ||
** [http://docs.oracle.com/javase/specs/jls/se7/html/index.html Java Language Specification] (syntax) | ** [http://docs.oracle.com/javase/specs/jls/se7/html/index.html Java Language Specification] (syntax) | ||
** [http://docs.oracle.com/javase/7/docs/api/overview-summary.html Java API] (class and method specifications, by package) | ** [http://docs.oracle.com/javase/7/docs/api/overview-summary.html Java API] (class and method specifications, by package) | ||
− | ** [https://google | + | ** [https://google.github.io/styleguide/javaguide.html Google Java style guidelines], [https://source.android.com/source/code-style.html Android Code Style guidelines] |
<!--** [http://www.xemacs.org/Documentation/21.5/html/new-users-guide.html xemacs] getting started guide--> | <!--** [http://www.xemacs.org/Documentation/21.5/html/new-users-guide.html xemacs] getting started guide--> | ||
** Racket/Python to Java transition [http://nameless.cis.udel.edu/class_data/cisc181/f2011/transition.pdf cheat sheet] | ** Racket/Python to Java transition [http://nameless.cis.udel.edu/class_data/cisc181/f2011/transition.pdf cheat sheet] | ||
Line 77: | Line 77: | ||
--> | --> | ||
<!--** To change your default shell to bash, login [http://www.udel.edu/network here] and click "Change your UNIX Login Shell" under "Maintaining Your UDelNet Account"--> | <!--** To change your default shell to bash, login [http://www.udel.edu/network here] and click "Change your UNIX Login Shell" under "Maintaining Your UDelNet Account"--> | ||
− | * Other Java courses: [http://web.stanford.edu/class/cs106a/ Stanford] ([ | + | * Other Java courses: [http://web.stanford.edu/class/cs106a/ Stanford] ([https://see.stanford.edu/Course/CS106A SEE version]), [http://www.cs.berkeley.edu/~jrs/61bf10/ UC Berkeley] (uses HFJ), [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index.htm MIT], [http://www.cse.ohio-state.edu/~rountev/421/ Ohio State], [http://www.cs.umbc.edu/courses/undergraduate/202/spring11 UMBC], Harvard Extension School [http://www.fas.harvard.edu/~libe50a], [http://www.fas.harvard.edu/~libe50b], [http://introcs.cs.princeton.edu/java/lectures/ Princeton] |
<!-- | <!-- | ||
** Prof. McCoy's fall [http://www.cis.udel.edu/~mccoy/courses/cisc181.09f/ CISC181] course | ** Prof. McCoy's fall [http://www.cis.udel.edu/~mccoy/courses/cisc181.09f/ CISC181] course | ||
Line 91: | Line 91: | ||
==Schedule== | ==Schedule== | ||
− | ''Note'': The blue squares in the "#" column below indicate | + | ''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 103: | Line 104: | ||
|- | |- | ||
|style="background:rgb(102, 204, 255)"|1 | |style="background:rgb(102, 204, 255)"|1 | ||
− | |Feb. | + | |Feb. 7 |
|Welcome | |Welcome | ||
− | |Course details | + | |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] |
|- | |- | ||
|2 | |2 | ||
− | |Feb. | + | |Feb. 9 |
− | | | + | |Basic variables, input/output |
− | |Basic input, output; | + | |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/ | + | |[https://docs.google.com/presentation/d/1Gb4AED65H57gYjEyp4U7Ug0oAbA_6M6igEW42PgteUM/edit?usp=sharing slides] |
|- | |- | ||
− | + | |style="background:rgb(102, 204, 255)"|3 | |
− | + | |Feb. 14 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |style="background:rgb(102, 204, 255)"| | ||
− | |Feb. | ||
|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 |
− | |[[ | + | |''[[CISC181_S2017_Lab1 | Lab #1: Math, formatting, branching]] (Feb. 13)''<br> |
+ | [https://docs.google.com/presentation/d/1io9vyIkkjZ-c1hvEHYt6D-1VUZuI0JSDIlzb3yU8oLc/edit?usp=sharing slides] | ||
|- | |- | ||
− | | | + | |4 |
− | |Feb. | + | |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 |
− | |[https://docs.google.com/presentation/d/ | + | |[https://docs.google.com/presentation/d/1xkQteTx8aRYLYQTb8qWG_SPAZ21TreA3kcJXjBK9c6k/edit?usp=sharing slides] |
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"|5 |
− | |Feb. 20 | + | |Feb. 21<br> |
+ | ''Register/add deadline Feb. 20'' | ||
|Basic graphics | |Basic graphics | ||
− | |Graphics class: shapes, color | + | |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] |
− | |[https://docs.google.com/presentation/d/ | + | |''[[CISC181_S2017_Lab2 | Lab #2: Basic graphics]] (Feb. 20)''<br> |
+ | [https://docs.google.com/presentation/d/1ZaOoNufsEeJm4_2TVUMlZmsdJxSlVpsxqMvLKFJLUyA/edit?usp=sharing slides] | ||
|- | |- | ||
− | | | + | |6 |
|Feb. 23 | |Feb. 23 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Objects/methods/classes | |Objects/methods/classes | ||
− | | | + | |Class concepts, reference variables, constructors, overloading, overriding; intro to access |
− | |ZJ | + | |ZJ 3-3.5, 9.2-9.4, 10.3 |
− | |[https://docs.google.com/presentation/d/ | + | |[https://docs.google.com/presentation/d/1pStnMQSurKqYAlL1jZvJufoAWypA9QxRb6pM5aUFuO4/edit?usp=sharing slides] |
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"|7 |
− | |Feb. | + | |Feb. 28 |
|Objects/methods/classes | |Objects/methods/classes | ||
− | |public/private; | + | |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/ | + | |''[[CISC181_S2017_Lab3 | Lab #3: Objects]] (Feb. 27)''<br>[https://docs.google.com/presentation/d/1Gc9mkwBPMXUpvJuZ-HpvlPtweIKUJXmrnhltriTMmRk/edit?usp=sharing slides] |
|- | |- | ||
− | | | + | |8 |
|Mar. 2 | |Mar. 2 | ||
− | | | + | |Objects/methods/classes |
− | | | + | |Inheritance (derived classes, polymorphism), abstract classes |
− | |ZJ | + | |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/ | ||
|- | |- | ||
− | + | |style="background:rgb(102, 204, 255)"|9 | |
− | + | |Mar. 7 | |
− | |style="background:rgb( | + | |Arrays and interfaces |
− | | | + | |Interfaces; single-, multi-dimensional arrays; <tt>ArrayList</tt> (collections); <tt>Comparable vs. Comparator</tt>; enhanced <tt>for</tt> |
− | | | + | |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] |
− | |- | + | <!--[[CISC181_S2017_CardClass | Card class]], [[CISC181_S2017_DeckClass | Deck class]]--> |
− | | | ||
− | |||
− | |||
− | | | ||
− | |||
− | | | ||
|- | |- | ||
− | | | + | |10 |
|Mar. 9 | |Mar. 9 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Strings & streams | |Strings & streams | ||
|Basic string operations; stream types, URLs | |Basic string operations; stream types, URLs | ||
− | |ZJ | + | |ZJ 5.7-5.10, 16.4, [http://download.oracle.com/javase/tutorial/networking/urls/index.html URL tutorial] |
− | |[https://docs.google.com/presentation/d/ | + | |[https://docs.google.com/presentation/d/1sW_7WUyubV8aqwurltT8Z-bWtrFWdpW99WSmVW6O4iM/edit?usp=sharing slides] |
− | |||
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"| |
− | + | |Mar. 14 | |
− | + | |style="background:rgb(255, 102, 0)"|NO CLASS<br>''Campus closed due to storm'' | |
− | + | | | |
− | | | ||
− | | | ||
− | |||
− | |style="background:rgb(102, | ||
− | |||
− | | | ||
| | | | ||
| | | | ||
− | + | ''[[CISC181_S2017_Lab5 | Lab #5: Files]] (Mar. 13)'' | |
− | |||
|- | |- | ||
− | | | + | |11 |
− | |Mar. | + | |Mar. 16 |
− | | | + | |Strings & streams |
− | |<tt> | + | |Reading, writing text files; <tt>String.split()</tt>; regular expressions; using <tt>ArrayList</tt> and <tt>enum</tt> for cards |
− | |ZJ | + | |ZJ 16.5, [http://download.oracle.com/javase/tutorial/essential/regex/index.html Regex documentation] |
− | |[https:// | + | |[https://drive.google.com/open?id=1DnSnRiRXdtWQTfcNAKarvhHifePBbj_2RGuVC9pORBk slides] |
|- | |- | ||
− | + | |style="background:rgb(102, 204, 255)"|12 | |
− | + | |Mar. 21 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |style="background:rgb(102, 204, 255)"| | ||
− | |Mar. | ||
|Midterm review | |Midterm review | ||
| | | | ||
| | | | ||
− | + | |[https://docs.google.com/presentation/d/1Wlb27QLH5Pmlg5vAdpfx3HSFmaNi6VMbGMNb3UpnhIM/edit?usp=sharing slides]<br> | |
− | [http://nameless.cis.udel.edu/class_data/ | + | [http://nameless.cis.udel.edu/class_data/181_s2017/2011_midterm.pdf Partial sample midterm] |
− | |||
|- | |- | ||
− | | | + | |13 |
− | |Mar. | + | |Mar. 23 |
|MIDTERM | |MIDTERM | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | | | ||
| | | | ||
Line 257: | Line 208: | ||
|- | |- | ||
|style="background:rgb(102, 204, 255)"| | |style="background:rgb(102, 204, 255)"| | ||
− | |Mar. | + | |Mar. 28 |
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break'' | |style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break'' | ||
| | | | ||
Line 264: | Line 215: | ||
|- | |- | ||
| | | | ||
− | | | + | |Mar. 30 |
|style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break'' | |style="background:rgb(255, 102, 0)"|NO CLASS<br>''Spring break'' | ||
| | | | ||
Line 270: | Line 221: | ||
| | | | ||
|- | |- | ||
− | + | |style="background:rgb(102, 204, 255)"|14 | |
− | + | |Apr. 4 | |
− | |style="background:rgb( | + | |Go over midterm; testing, error-handling |
− | + | |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_Lab6 | Lab #6: Testing and exceptions]] (Apr. 3)''<br>[https://docs.google.com/presentation/d/1ZseNfzKA7vim7b87LMcIXVstOQPxTgZHQy37w51gDBA/edit?usp=sharing slides] | ||
|- | |- | ||
− | | | + | |15 |
|Apr. 6 | |Apr. 6 | ||
− | | | + | |Testing, error-handling |
− | | | + | |Assertions, unit testing |
− | |ZJ | + | |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/ | ||
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"|16 |
− | |Apr. | + | |Apr. 11<br>''Withdraw deadline Apr. 10'' |
− | | | + | |Generics, collections |
− | | | + | |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] |
− | |[https://docs.google.com/presentation/d/ | + | |<!--[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] |
|- | |- | ||
− | | | + | |17 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Apr. 13 | |Apr. 13 | ||
− | + | |Coding challenge | |
− | | | ||
− | |||
| | | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | | | ||
− | | | + | |[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 | |
− | | | + | |Apr. 13 |
− | |Apr. | + | ''Withdraw deadline Apr. 10'' |
|Dates and times | |Dates and times | ||
|<tt>Calendar</tt>, <tt>nanoTime</tt> | |<tt>Calendar</tt>, <tt>nanoTime</tt> | ||
|[https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times] | |[https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html Dates and times] | ||
− | |[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] |
+ | --> | ||
|- | |- | ||
− | |style="background:rgb(102, 204, 255)"| | + | |style="background:rgb(102, 204, 255)"| |
+ | |Apr. 18 | ||
+ | |style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away'' | ||
+ | | | ||
+ | | | ||
+ | |''[[CISC181_S2017_Lab8 | Lab #8: Maps]] (Apr. 17)'' | ||
+ | |- | ||
+ | | | ||
|Apr. 20 | |Apr. 20 | ||
− | | | + | |style="background:rgb(255, 102, 0)"|NO CLASS<br>''Instructor away'' |
− | + | | | |
− | + | | | |
− | | | ||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | | | ||
| | | | ||
− | |||
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"|18 |
− | |Apr. | + | |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]--> |
+ | ''[[CISC181_S2017_Lab9 | Lab #9: Hello, Android]] (Apr. 24)''<br>[https://docs.google.com/presentation/d/1v2qME-AOCc0TG0crvyliv4vXEZzho9vzGMR9evDCfPc/edit?usp=sharing slides] | ||
|- | |- | ||
− | | | + | |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/1DqJAMUoUYlSYLIDBa7yWQPvk4rkNJ7-6o-3EbXEOVvM/edit?usp=sharing slides] |
− | [https://docs.google.com/presentation/d/ | ||
|- | |- | ||
− | | | + | |style="background:rgb(102, 204, 255)"|20 |
− | | | + | |May 2 |
|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] |
| | | | ||
− | |[https://docs.google.com/presentation/d/ | + | |<!--[[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] |
+ | |||
|- | |- | ||
− | | | + | |21 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|May 4 | |May 4 | ||
|Android | |Android | ||
− | | | + | |More basic graphics, touch, animation, sound |
| | | | ||
− | + | |[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)"|22 |
− | |May | + | |May 9 |
|Android | |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> | + | |<!--[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 May 10''<br>'''NO LAB on May 8'''<br>[https://docs.google.com/presentation/d/1ymDud-sjfbIDQ_ugL_u1_ZyQcZxw6HJKuUC5AraeBig/edit?usp=sharing slides] | ||
|- | |- | ||
− | | | + | |23 |
− | |May | + | |May 11 |
− | | | + | |Project help (in class) |
− | | | + | | |
| | | | ||
− | |[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)"| | + | |style="background:rgb(102, 204, 255)"|24 |
− | |May | + | |May 16 |
− | | | + | |Final review |
| | | | ||
| | | | ||
− | | | + | |''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] |
+ | <!-- | ||
|- | |- | ||
|34 | |34 | ||
Line 407: | Line 340: | ||
SimpleMultimedia: [http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/MainActivity.java MainActivity.java],[http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/activity_main.xml activity_main.xml], | SimpleMultimedia: [http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/MainActivity.java MainActivity.java],[http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/activity_main.xml activity_main.xml], | ||
[http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/electronic_clav.mp3 electronic_clav.mp3], | [http://nameless.cis.udel.edu/class_data/181_s2015/simplemultimedia/electronic_clav.mp3 electronic_clav.mp3], | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|style="background:rgb(102, 204, 255)"|35 | |style="background:rgb(102, 204, 255)"|35 | ||
− | |May | + | |May 16 |
|Final review | |Final review | ||
| | | | ||
Line 424: | Line 350: | ||
[http://nameless.cis.udel.edu/class_data/181_s2015/2011_final.pdf Sample final] (ignore JAR, Swing, MarsLander questions)<br> | [http://nameless.cis.udel.edu/class_data/181_s2015/2011_final.pdf Sample final] (ignore JAR, Swing, MarsLander questions)<br> | ||
[http://nameless.cis.udel.edu/class_data/181_s2015/2011_midterm_other.pdf Other part of sample midterm]<br> | [http://nameless.cis.udel.edu/class_data/181_s2015/2011_midterm_other.pdf Other part of sample midterm]<br> | ||
+ | --> | ||
|- | |- | ||
| | | | ||
− | | | + | |May 23, 10:30 am--12:30 pm |
− | |FINAL EXAM | + | |FINAL EXAM |
| | | | ||
| | | | ||
| | | | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 13: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 |
|
Required |
|
Grading |
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) |
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) |
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 | ||
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) |
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) |
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 | |
22 | May 9 | Android | Sensors, cameras, faces | Intents and Intent Filters |
Project milestone #1 due May 10 |
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 |