cps251F15 Startup Startup Clem Hasselbach Introduction Page Clem Hasselbach Introduction Page Course Introduction Syllabus Class Policy How to get a good Grade Video Features Discussion Board/Class Participation Assignments At this point you should be able to do JH0 Cps251 Course Intro This is a short video discussing this course. This is one of the few videos done with a live camera in a studio. August 22, 2014 12:34 PM CPS 251 Syllabus Instructor: Clem Hasselbach Books: I have not found any good textbooks for cps251. There are lots of books, but I haven't see anything that seems like a good fit for the class we have at WCC. I have created a lot my own material, but I think it would be good for you to have an Android programming book as a resource and as backup reading material to the course lectures. My own material has been gleaned from multiple sources and from the Android.com web site. To show you some of the books I have considered, I have taken the following picture: Android 4.4 App Development Essentials by Neil Smyth - Currently this book seems to me to be the best resource for you to buy if you want a book that supplements the course. The material that I have doesn't really make use of this book directly, but I think you might find some quite readable material in this book in case you are confused by the lecture material from cps251. Promising Books: - In my search for a book that could be used as a textbook for cps251, I encountered a few books that I considered promising. In this list, you will find Beginning Android 4 by Grant Allen, Murach's Android Programming, and Android Programming The Big Nerd Ranch Guide. The Nerd Ranch book seems to currently be a popular book, but the problem I had with it is that the examples build on each other and don't stand on their own. This is a problem for me because if I pull out an example near the end of the book, I would need to cover all of the mini-steps in the rest of the book to thoroughly understand it. I prefer having examples and chapters that can stand on their own to a some extent. Professional Application Development by Reto Meier - In my book collection above, you will see 2 versions of this book. The original book (Android version 2 on the left) is where I started my learning on Android. Later you can see that I purchased the version of the book that was upgraded for Android version 4. This book was used as a resource in cps251 during 2013. Many of the videos from 2013 will be used this semester. In these videos, I occasionally mention "the textbook" and this is probably the book I am referring to. Although this book is a good reference book, I found that it wasn't very readable for most of my students. I have learned a fair number of concepts from this book. Hello, Android by Ed Burnette - I used this book as the required book for cps251 during 2012. This book is readable but quite weak on content. There are other books that you might want to consider as a resource, but it often takes time to evaluate a book's effectiveness. Approach and Perspective: Most of the work we will do in this class can be run on the Android simulator. So it won't be absolutely necessary to have a real Android phone for this class. However, it will be more fun if you can download your program onto a real phone. I would like to encourage the usage of the Android documentation as a means to learn things one could not find in any book. I plan to have homework assignments that provide you opportunities to solidify the concepts. I plan to create the lectures ahead of class time as a video. Android programming has evolved very quickly and is still in the process of changing. Therefore this course will not be as smooth as a course on a topic that has been stable for a while. Be aware of the following issues: Expect the tools to have bugs. They are getting better. I have seen a marked improvement since 2010. I don't want to present my self as an expert on Android programming. There are lots of things I haven't tried yet, but I am willing to look into issues that I don't have an immediate answer to. We would like our classroom experience to be one where we are supportive of each other. The analogy I want you to hang on to is a comparison of traveling to California in a plane (like a well seasoned course), versus a new class like ours where we are traveling to California in a Covered Wagon. Expect the wheels to fall off sometimes and possibly we might be attacked by Indians. But if we work together we should get there. By the way, the payback for being a pioneer in new technologies is that you learn SO MUCH MORE. I can attest to this from my own personal experience. CPS251 Course Content The following topic list does not necessarily represent the order in which material will be covered in the course. Android GUI using widgets/views and ViewGroups. Android Drawing (onDraw). Intents. SQLite. Accessing Google Maps and location sensing(GPS, etc). Multiple Threads Accessing data from the Web Services AlarmManager and Broadcast Receivers Desktop Widgets Java Courses Available at WCC The Class Policy can be found in the following link: Class Policy - A video going over this is available from the course navigation window. Make sure you watch it. In this course, the 40% for Tests that I normally have for my courses is allocated a little differently. No midterm - This provides more time to provide course content. The problem here is that Mid-semester grades will be less representative of the whole semester. End of Semester Project(20%) - The project will be something of your own choosing that will be presented to the class. Final(20%) - The Final will be an open book, open web short answer(i.e. multiple choice, matching, etc.) test to provide a way for you to review the course terminology. Information about how to do assignments and tests can be found in the following link: Assignments and Tests Class Participation In order to do Class Participation, each assignment will require posting an entry to a discussion board. The following link has the details on how this works: Class Participation and Discussion boards December 26, 2014 10:36 AM Class Policy, Grades, Mechanics, etc. Goals of the Class: Learning to program is a lot like learning a foreign language (Spanish, German, etc.) or learning a musical instrument .... Practice is required. The assignments in this class are designed to provide the necessary practice. At times the assignments may seem challenging. The goal of this class is that if you do well and complete these assignments, you will end up having some valuable programming skills. It is important to stay caught up ... start the assignments early enough so that you can get help if you need it. Don't skip lectures, because each one has a purpose and in the end it may cost you some valuable information. If you are having trouble understanding a concept or doing an assignment - Get Help. You will find out that there are many options for getting help in this class. One of the saddest things is when I know I have students who are struggling but for whatever reason they don't make use of the help that is provided. Class Mechanics to achieve the above class goals: 1. Blackboard is your starting place for everything. Buttons on the left provide you key course components. Announcements - Regular emails are sent out on your wccnet.edu student email account. You should find a way to stay tuned to this email address on a regular basis. Most of the emails (at least the important ones) are archived in the "Announcements" section in blackboard. Learning Units - This link gives you a step by step set of links to all of the course lectures. Note that this web site "Expands" and "Contracts" by clicking on the buttons at the top, or the "+"/"-" Icons on the left. Most of the entries contain 2 Icons which provide the lecture (the video icon looks like a video camera), and the text script that was used to produce the lecture (left icon). JH...Homework files - This link takes you to a page containing all of the files that you need for the JH1, JH2, ... JH7 homework assignments. This link was added after the Class Policy was made so it isn't discussed in the video. It was discovered to be a useful link. Assignments & Tests - This link takes you to all of the assignments and tests for this course. This will be discussed in more detail inside the startup folder under assignments and tests. Discussion Board - Assignments come with required "Class Participation" requirements. Class Participation is done by posting entries on the discussion board. The details of this process can be found in the Startup section under "Discusson Board/Class Participation". Getting Help - If you are needing help, especially on homework assignments, make sure you check out the details on the options available to you for getting help. For details(times, rooms, office phone number, etc.) click on the "Getting Help" button in blackboard. The options include: Coming to Office Hours . You can also call me in my office during office hours. Mixed Mode(MM) class times - you can attend these even if you are listed as a DL student or even a student in one of my other classes. Group Study time - lab classroom with a trained facilitator Use Class Participation question/answer discussion board options for asking other students Use the "Questions for the Teacher" discussion board Go-to-meeting Powerful tool for debugging problems remotely - We have an electronic tool called "Goto Meeting" which allows the teacher to have an electronic meeting (voice and screen shared). Scheduling Goto Meeting - The biggest challenge with this capability is scheduling the meeting. The easiest time is during office hours because you can call my office phone to set it up. MM section times are also possible, but these need to be pre-arranged usually through an email request. Send the email early enough to allow the instructor enough time to be aware of it before the desired MM section meeting time. Other times may be possible but are difficult to set up. "Go-to-Meeting" button - The link for entering a meeting along with some tips on downloading and running the software email - Email is NOT an effective way to provide debugging help when you are stuck on an assignment... the above mentioned options are much more effective for getting debug help. Email is an effective way to setup a "Goto Meeting" time. Go-to Meeting - Provides the link for startup up Go-to Meeting. 2. Lectures - All lectures are available as videos. They can be watched online. In Startup, there is a link called "Video Features" which attempts to highlight the characteristics of the videos. In most cases, the video will be downloadable in a standard format such as MP4. Watch them actively (not like watching TV). Two ways to watch the videos actively are: In most videos, a program is being worked on. Try to do the same program as the video progresses. You can pause the video to keep up. It is helpful if you can play the video on another monitor or another PC/tablet to free up your normal PC screen. Take notes on the lecture. Although you can go back to the video at any point, it is productive for our minds to be writing down summarized concepts covered as you watch the video. You can also use your note taking as a way to get credit for "class participation" ... see the Class Participation/Discussion Board video for details. 3. Lecture Characteristics - Because computer technology is always changing, the external web sites visited may look a little different. Some of these videos were created on a previous course that had a slightly different environment or formats. The navigational scheme has evolved and this does show up on some of the videos. In an attempt to make the videos more efficient for you, some video deletions have been made. These deletions may show up as minor discontinuities. Many of the deletions are related to Clem Hasselbach's asthma and needing to clear his throat and eliminating filler words like Um, OK, etc. Class Policy: 1. I expect everyone to abide by the WCC Students Rights and Responsibilities which includes student conduct in the classroom and issues of cheating. Actions which negatively affect other students learning experience, or actions of cheating will not be tolerated. I have been known to give a student a flunking grade for a class who was caught cheating. 2. Cheating clarified - I do encourage student-student interaction through group study sessions and requiring class participation on the discussion board, posting questions, answers, etc. However, there is a difference between answering questions and out right copying solutions from other students. Being caught on any cheating activity will result in a serious penalty. Most of my tests are "open book" and "open web". The "open web" means that you can access the lecture notes and solutions provided in the course. However, "open web" does not imply other cheating mechanisms are allowed. For example any of the following will be considered a violation of the cheating policy: posting a completed solution on a discussion board, or any other web site. copying a completed solution from a discussion board, or any other web site. When taking a test, DO NOT USE web resources such as Stack-Overflow or test banks to assist you in answering a test question. You will often be asked for your code and some output from your program. If your program does not work, then in the output box say that your program doesn't work and try to describe the problem you had. Making up an output that your program didn't really create will be considered cheating. Grades: 1. Grade Composition 60% - Homework - Note that each Homework assignment will include a class participation component. Class Participation is done through posting entries on a discussion board. 40% - Tests - The nature of this component is discussed in each specific course. 2. Rubric - Often at the top assignments, a Rubric link will show up that describes characteristics expected from your assignment. For example, the Rubric is likely to request "properly indented code". 3. Penalties for Late Assignments Submit your assignments before 11:59pm of the day the assignment is due. First of all I want to state the obvious: avoiding lateness is a matter of getting started early enough to allow yourself to get help if you need it. 25% deduction for assignments that are 1-6 days late 40% deduction for assignments that are 7 days - 1 month late If an assignment is more than 1 month late, then it is too late to get credit for it. Extenuating Circumstances - I often get lots of requests for extensions for good reasons. My policy for these requests is as follows: Turn in the assignment late with comments entered into the late assignment which document the good reason why you were late. The normal lateness penalty will show up. Catch up and show a good track record for the rest of the course Stop by on the last day of classes (I will schedule times when I am around) and we can look at how much the lateness deduction cost you on your grade. If you have an overall good track record especially at the end of the semester and good reasons for being late I will be inclined to waive some of your lateness penalty deduction. 4. Grading Scale - The following is the default grading scale. At the end of the semester, a more generous scale than this posted grading scale may be considered. 93 - 100 ==> A 90 - 92 ==> A -------------------------------------------------------------------------------88-89 ==> B+ 82 - 87 ==> B 80 - 81 ==> B -------------------------------------------------------------------------------78-79 ==> C+ 72 - 77 ==> C 70 - 71 ==> C -------------------------------------------------------------------------------68-69 ==> D+ 62 - 67 ==> D 60 - 61 ==> D -------------------------------------------------------------------------------<= 59 ==> E MM versus DL sections: 1. All of the material is available online for both the MM and the DL sections as described above. In a DL section, there is no class room time set aside for meeting with the instructor (note office hours are always available for all). For many students, this environment will work fine. In fact for some students the DL option is the only thing possible because of life/work constraints. Note that DL students can attend MM sections if help is needed. 2. However, some students need/prefer the opportunity to participate in a more traditional class room setup. So this is why the MM(Mixed Mode) sections are offered. Although there will be no traditional lectures during these meeting times, the following benefits can be obtained from a MM section: If a student brings in "Ear buds", the lectures can be watched online and whenever something doesn't make sense, the video can be paused and the student can ask the teacher present a specific question. If a student chooses to use the time to work on the assignments, then when a point of confusion arises or some other problem presents itself the student can get prompt help from the teacher present (or even another student) as opposed to waiting for an office hour. By showing up at a regular time, a student is less likely to procrastinate and put off watching videos until the last minute. Remember that learning to program is a little like learning a music instrument. Consistent practice pays off in music and in programming. Putting off watching videos until an assignment is due is similar to trying to practice 24 hours straight just before a concert. Now is a good time to watch the next video: How to get a good Grade May 6, 2015 11:21 PM How to get a good Grade 1. There 1000 points on all of the Java Homework (JH) assignments + Tests ... turn them in on time 2. Watch ALL of the required videos(Actively) before doing the assignments/Tests. Instead of watching the videos passively (like a TV show), engage your brain while watching the video. You can do this by taking notes. You can also do this by doing the program at the same time in Eclipse that is being created in the video. 3. Practice is essential to learning Java ... this is the purpose of the JH assignments. The concepts are unlikely to click if you don't practice the concepts covered. 4. If you are struggling with the JH assignments , you can get help: See the Blackboard section on "Getting Help" for the available options 5. Some of you have enough discipline to stay on track and will find that doing the JH assignments will be sufficient to mastering the material. 6. Many of you would benefit attending MM sessions. As it was mentioned in the Class Policy video, this will help you avoid procrastination, get help on a timely basis. Because I believe this will improve the performance of many students, I offer the MM_Bribe System defined below: MM_Bribe System How does this affect your Effective Grade? MM_Attendance_Percentage(MAP) = Percentage of the time that you showed up to MM sections (starting on the second week) There are 1000 points on all of the JH assignments + Tests. Let G = your score on JH assignments + Tests Your Effective Grade for the class (EG) will be: EG = 300*MAP + G * (1 - 0.28 * MAP) The best way to explain this is to describe 3 scenarios: 1. If you never show up to an MM section(MAP=0) and you never do any practice problems and achieve a grade of G, then your effective grade will be G. 2. If you show up to every MM section, it should improve your performance. Additionally, your Effective Grade will be 100% on 30% of your grade. The remaining 70% of your grade will be a little better than the percentage that you achieved (G) in JH assignments and tests. 3. If you show up some of the time to MM sections then your Effective grade wil be prorated based on how much you actually participated in the MM_Bribe_System. Table that shows the result of the above formula: Last Modified: December 24, 2014 5:06 PM VIDEO LECTURE OVERVIEW AND FEATURES CLOSED CAPTIONING If closed captions have been generated for this video, the ‘CC’ button will appear in the lower-right corner of the player. Click it to toggle captions on and off. TABLE OF CONTENTS These will appear under the player if bookmarks have been set for the video. Click on the name of a chapter of the video to jump directly to that point in time. This is useful for going back to a specific point in a video to review information. Not all videos have bookmarks – some will get bookmarks in the near future. DOWNLOAD FOR OFFLINE WATCHING Clicking the Download button at the bottom-center of the player will begin a download of the MP4 version of the video. This file can be played offline on your computer using Windows Media Player, Quicktime, or a downloadable video player such as VLC Player (available for free at http://www.videolan.org/vlc/) With these offline files you can play back lectures offline at your leisure, resize the player window, and even change the playback speed to 1.5x, 1.75x, or even 2x to move through lectures faster. Discussion Board/Class Participation Watch the video that goes with these notes. If you feel like you would like more information about Blackboard discussion boards than is provided in my video on this topic, I do have the following link that was created to provide generic blackboard help on discussion boards: BlackBoard Help Video on Discussion Boards - Click on this video link(4 minutes), if you are unfamiliar with Discussion boards OverView: Blackboard provides a Discussion Board feature that will be used for Class Participation. You will need to make a discussion board post for each assignment (JH0, JH1, ... JH7) to get full credit. JH0 -Introductions - For the assignment done in the first week, you will just enter in a short introduction in this discussion board. You can just enter in why you are taking this course and what are your future computer programming plans. JH1-Questions/Answers - In this forum you can post questions related to JH1. You can also reply to the Questions with Answers. Similar discussion boards exist for the assignments JH2, JH3, ... JH7 Please put in a good Subject line for any entries ... especially the Questions. Sharings - Instead of participating in question/answer scenarios, I have a Class Participation option called "Sharings". There are 3 kinds of sharing that you can post on this discussion board: Discovery - something that you have discovered that you would like to share with the rest of the class Lecture Notes - You have some good notes on a particular video lecture that you want to share with the rest of the class Bookmarks - This is very similar to Lecture Notes, but you have added time stamps in your notes of where topics were covered in the Video Lectures. Purpose of Class Participation: For each class assignment, you need to do at least one(feel free to do more if you wish) discussion board post. If you are struggling with some assignment, you might want to post a question on the appropriate discussion board (i.e. JH3 Questions/Answers) and this will satisfy the "Class Participation" requirement for your JH3 assignment. Alternatively, you may have figured out JH3 and you want to provide an answer by replying to one of the questions on the JH3 Questions/Answers forum. This also will satisfy the "Class Participation" requirement for your JH3 assignment. Perhaps you don't like getting into the Question/Answering entries, but you have something to share that you think could be helpful to other students in the class. This is the purpose of the Sharings forum. So if you reply to the "JH3 Sharing" thread on the Sharings forum, you will also satisfy the "Class Participation" requirement for your JH3 assignment. The bottom line is that I want the "Class Participation" requirement to be useful for providing helpful student/student interaction. Note that your entry could be a JING or other video link. JING is a useful free software service for making a short video of your screen to provide a better way to explain what is going on. I have notes and a video on creating JING videos in my list of Lectures. Don't post completely working assignments because this will be a tempting way for some to miss out on the learning experience that occurs in doing the assingment. It is OK to post fragments of code that will be helpful. Questions for the Instructor: Note that if you have a question that you really want the instructor to answer, don't use the above discussion boards. There is one last discussion board called "Questions for the Instructor". In general the Instructor will not be trying to keep up with the questions on the forums mentioned above: i.e. JH3 Questions/Answers. However, the instructor will attempt to answer questions on the forum labeled "Questions for the Instructor". Note that posting entries on this discussion board does not count as "Class Participation". How will this work? When you click on the "Discussion Board" button in blackboard, you will see that I have created the forums: JH0-Introductions, JH1-Questions/Answers, JH2 - Questions/Answers, .... JH7 Questions/Answers and Sharings. All of these forums except for the "Sharings" forums are organized such that Questions and Introductions (for the JH0 forum) will require creating a new blackboard thread .... note the "Create Thread" link. If you are Answering a Question, then you will be making a reply to an existing Question thread. Note that once a question has been created, you can click on a "Subscribe" button which will provide you an email whenever some new activity (like an answer) has been posted on this thread. The Sharings discussion board is organized a little differently than the other discussion boards. You will note that you will not create any new threads on this discussion board. The threads are already created and they have the names: JH1_Sharing, JH2_Sharing, .... JH7_Sharing. To make an entry into the Sharings discussion board, you will reply to one of the existing threads: JH1_Sharing, JH2_Sharing, etc. The thread that you reply to will determine which assignment that you get credit for. For example, replying to JH4_Sharing will give you credit on the JH4 assignment. For the Sharings discussion board, I have 2 blackboard options for the "Subscribe" feature. I can have the setting such that you subscribe to the whole Sharings forum, or you could subscribe to each individual thread (i.e. JH4_Sharing). I currently have the setting such that you can subscribe to the whole forum. Each Sharing should have a good subject line. Additionally, I would like each subject to start out with one of the following strings: "Discovery:", "Lecture Notes:", "Bookmarks:" . Modified: August 11, 2014 5:38 PM Assignments Getting started and JH0 To find out how this course works, you will click on the "Learning Units" button in blackboard and open up the Startup folder. Watch all of the videos in this section. Once you have watched all of the videos in this section, you will need to do 2 things. Post a discussion board entry in the "JH0 - Introductions" discussion board. In this entry, you will say why you are taking this course and what are your future computer programming plans. Take the JH0 Quiz - This quiz covers the information in the Startup Folder. You can retake this quiz as many times as you want and your best score achieved will be your final score. The purpose of the quiz is to make sure you know the how the class works. Assignments JH1, JH2, ... JH7: Learning this subject requires programming practice. There may be some college classes where you can get a good grade without doing very much ... this isn't one of them. To tell you the truth, grading homework is not the most fun thing for instructors, but it is the price that needs to be paid to make sure that the programming concepts are learned. The real intent on the assignments is to make sure that if you do get a good grade, you should know something about programming in the end. For each assignment you will create a zip file of all work associated with the assignment. This zip file will be uploaded to blackboard before you submit it. To create the zip file, you will do the following: Make sure you do your "Class Participation" ... See the Discussion Board/Class Participation information in the startup folder for details. In short questions can be submitted on the appropriate JH1, JH2, ... JH7 discussion board. Answers to existing questions will show up as replies to existing questions. Sharings will show up as replies to the appropriate entry on the Sharing discussion board (i.e. "JH3 Sharing"). Note that in some cases you might create your "Class Participation" before starting the assignment, and in other cases you might do it after completing the assignment. Note that the discussion board name, subject name and posting date should be copied into the provided worksheet. Create an Android_Studio project with a name that starts with the name of the assignment and ends with your netID. For example: JH2_chasselb. Follow the instructions found in the "Assignments" section of blackboard. Note that blackboard has a button on the left called "JH... Homework files". Use this linked button to find the Homeword definitions for JH1, JH2, ... JH7. In general each problem in the assignment should show up as a separate package in your project. This link also contains downloadable text worksheets for each assignment. Using some Text Editor, fill in the text worksheet associated with this assignment according to the instructions. This may include a copy of the output from your program, but in this class this is often a JING of your running program. Once the assignment is complete, we need a zip file of your project. Unfortunately Android_Studio doesn't have a convenient Export feature that I have found yet. So to create the necessary zip, you need to do the following instructions: You need to know where your code currently resides on your file system. Fortunately Android Studio currently prints this on the top of the screen. Navigate with a File Explorer to where your code lives. I would recommend closing your project before you do the next steps. The size of these projects is quite large. Although it isn't absolutely necessary, I would like you to delete the "build" directory just below the "apps" directory. This seems to consume the vast majority of the disk space. It is also reconstructable when we reopen the project again. Starting from the top of the project, zip everything in it. Assuming you have properly named your project with something like JH2_netid (i.e. JH2_chasselb), your zip file name should be something like JH2_chasselb.zip. To create a zip file on a either a PC or a Mac you want to do a right click. On a PC, you will select "SendTo / Sendto compressed zipped folder". I forget what you select on a Mac, but it is fairly obvious. To turn in a blackboard assignment do the following: The exported zip file for your assignment should be uploaded into your blackboard assignment. The contents of the Worksheet should be copied into the "Comments" section of your blackboard assignment. If you have done the first 2 steps successfully, you can hit the blackboard submit button. Note that I normally blackboard will be set up to give you one submission attempt, so make sure this is what you want to submit. If for some reason you need to submit it again, you will need to inform me (normally with an email) to clear your attempt so you can submit it again. If you find that you need to work on different computers, I would recommend moving your software using the zip file. I would recommend sending your zipped up project to yourself using an email attachment. I will demo taking a zip file and recreating the Netbeans project. It consists of the following basic steps: Unzip the zip file. On a PC, this is a right-click and pick "Extract All". On a Mac, you can double click the zip file. Depending on what environment I am restoring it to (i.e. how similar it is to where it was originally zipped), I have found that I sometimes need to delete some more build time intermediate files. I will fill this in with suggestions as I try this out more. To run the unzipped program, you will want to choose the "Open an Existing Android Studio Project" option. You might find it useful to close your current project if it exists. JING - a better way to communicate After you have settled into this course, it will be recommended that you get acquanted with a free online tool call JING for making ad-hoc videos of your screen along with the potential of recording your voice comments. Details of setting up JING will be provided later in the course. With JING, you will be able to ask your question by showing your problem with a short video of your screen. JING will be an option for introductory courses like cps161 and cps171 to provide better discussion board entries for class participation. JING will be mandatory for the more advanced courses such as cps261, cps278, cps251, etc. In this case, JING will provide a clean way to demonstrate your homework and projects. By the way to record voice you need a voice input device on your computer (most laptops come with them). I really would like your JINGs to include voice, because without recorded voice it is sometimes hard to know what is going on. August 6, 2015 4:10 PM
© Copyright 2026 Paperzz