Syllabus
Computer Science EN.600.250
User Interfaces & Mobile Applications
Spring, 2017
(3 credits, E)

Class Meetings
Wed & Fri 3-4:15 pm, Maryland 30

Instructor
Dr. Joanne Selinski, joanne-at-cs.jhu.edu, see her webpage for coordinates and hours.

Teaching Assistants
See the contact webpage for details.

Resources
All materials are freely available on-line, either through developer websites or the JHU Library on-line catalog. However, access to the JHU library editions is limited, so you might want to purchase your own copies of your favorite resources through Amazon or elsewhere.

Online Course Resources
See the main website cs.jhu.edu/~joanne/cs250 for centralized access to all course information. We will also use Piazza for Q&A, and Blackboard for homework submission and grades.

Catalog Description
This course will provide students with a rich development experience, focused on the design and implementation of user interfaces and mobile applications. A brief overview of human computer interaction will provide context for designing, prototyping and evaluating user interfaces. Students will invent their own mobile applications and implement them using the Android SDK, which is JAVA based. An overview of the Android platform and available technologies will be provided, as well as XML for layouts, and general concepts for effective mobile development. Students will be expected to explore and experiment with outside resources in order to learn technical details independently. There will also be an emphasis on building teamwork skills, and on using modern development techniques and tools.

Prerequisites
EN.600.120 Intermediate Programming
EN.600.226 Data Structures

Selected Elective (oral component)

Course Outcomes: Upon completion of this course students should be able to:

  1. Work effectively on teams.
  2. Use modern development techniques and tools.
  3. Design and implement user interfaces.
  4. Develop mobile applications, from concept to design to implementation on the Android platform.
  5. Use outside resources to learn technical details needed for app implementations.
  6. Understand the impact of mobile applications and interface design on diverse users.
  7. Present concept, design and implementation stages of mobile app development to peers.

ABET Outcomes
Each student successfully completing this course will be strengthened in the following areas:

Course Topics
The topics will be heavily integrated with each other. However, the approximate number of weeks spent on each are provided in ().

Course Expectations & Grading
A significant component of this course is completing tutorials and assignments to gain proficiency in designing and implementing user interfaces, along with the necessary back-end support and data management. We will primarily use class time for case studies, design reviews, discussions, and presentations. The grading breakdown is provided here. Each graded component in the course will be given a point value, and your overall grade for each element will be computed as points earned divided by total points possible. Usually this course is not curved.

Key Dates

Assignments & Readings
These will be posted on the main course website, and linked from Blackboard.

Assignment Logistics
See the Assignment Webpage for general policies regarding homework, including the late policy. The recommended platform for developing Android applications is Android Studio. Downloads to this and related tools are available on the main course website and should be completed as soon as possible. The installs can take some time and battery life, so plan to do this in a comfortable and powered location. Some of the software is also available on the CS ugrad servers, but it will be much more convenient to develop on your laptop.

Attendance
The course format will be more workshop style than lecture style, and as such you are expected to attend and actively participate in class sessions. You are responsible for all material presented while you are absent. Students who miss class due to illness, religious holidays, etc. should inform Joanne as soon as possible if requesting any accommodations as a result.

Students with Disabilities
Any student with a disability who may need accommodations in this class must provide the instructor with an accommodation letter from Student Disability Services, 385 Garland, (410) 516-4720, studentdisabilityservices@jhu.edu. In addition, you must email Joanne to make arrangements for any testing acccommodations two weeks prior to scheduled quizzes.

Ethics
The strength of the university depends on academic and personal integrity. In this course, you must be honest and truthful, abiding by the Computer Science Academic Integrity Policy:

Cheating is wrong. Cheating hurts our community by undermining academic integrity, creating mistrust, and fostering unfair competition. The university will punish cheaters with failure on an assignment, failure in a course, permanent transcript notation, suspension, and/or expulsion. Offenses may be reported to medical, law or other professional or graduate schools when a cheater applies.

Violations can include cheating on exams, plagiarism, reuse of assignments without permission, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition. Ignorance of these rules is not an excuse.

Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at anyone else.s solutions (including program code) to your homework problems. However, you may discuss assignment specifications (not solutions) with others to be sure you understand what is required by the assignment.

If your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.

Falsifying program output or results is prohibited.

Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor, TA or CAs, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.

On every exam, you will sign the following pledge: "I agree to complete this exam without unauthorized assistance from any person, materials or device. [Signed and dated]". Your course instructors will let you know where to find copies of old exams, if they are available.

Report any violations you witness to the instructor.
You can find more information about university misconduct policies on the web at these sites: