Building Better Apps Syllabus

Apps for Appalachia
CSC 124
Matt Jadud
Danforth Tech 102B

Office Hours

  • MWF, 8AM to 9AM

  • MWF, 11AM to 12PM

This syllabus may be amended, edited, or otherwise updated if deemed necessary by the instructor.

Why should you care about CSC 124?

Mobile technology will define computing for the next 10 years, without a doubt. hardware, the software… you name it, mobile is “it.” Laying a foundation in computing, with a focus in developing usable mobile applications is an invaluable set of skills, regardless of whether you are aiming for a degree in computing or something else.

How will this course help you succeed?

We’re going to make a particular focus on presentation skills and focus many of our conversations on notions of race, gender, and geographic identity as they pertain to ourselves and the tools we create. These are both essential skills for presenting the work you do (in many contexts) as well as being successful in interview and promotion contexts (both in industry and further academic study). We think that the course, as designed, will help lay a foundation for lifelong learning regarding who you are (and how you relate to others) in addition to our work with technology.

Where can I look for information?

Anywhere! We will be using a combination of resources this term. We will chapters from a variety of texts, but will also rely heavily on resources found online (textual and video). An important part of this course is to help you learn to leverage many diverse resources and extract from them the essential information you need to solve the challenge you are investigating at the moment—this is an essential skill that we will practice throughout the term.

How will you succeed in this course?

  • PARTICIPATE. You are expected to be present regularly (meaning, always), and actively engage in the reading, conversation, and practical work of the course. More than just “showing up,” however, active participation means that you are questioning, making connections, and thinking about where the material you are learning fits in with what you already know, as well as what you are learning in other courses.

  • COMMUNICATE. I strive to answer questions promptly, and have set up a forum where you can ask questions of myself, the TAs, and the rest of the class. The forum should be your preferred mode of asking questions about the content of the course. Learning to interact professionally in such forums is a good idea, as they are a common tool for many maker communities online today.

  • ASPIRE. You aren’t going to learn by doing the bare minimum. Dive in, have fun, and do your best to do your best. By striving for excellence, you push yourself to master new ideas and get the most from your learning. Instead of reading just one source, read three. Instead of starting your work the night before it is due, start the day it is assigned. Instead of getting frustrated and spending hours banging your head against the desk, ask a question early… or, help answer someone else’s question!

How will you and I evaluate your progress?

We will have a shared document that captures your achievement of the learning objectives for this course. You should be roughly 1/2 way through the learning objectives at the midterm, and you should have completed all of them by the end of the term. If your completion rate is too low (meaning, you’re failing to finish assignments, submit revisions, or generally doing work of a low quality), we will meet to discuss your work and your strategy for getting back on track towards completion and excellence.

More details follow (below) regarding how your efforts will be measured and assessed in this course.

Course Learning Goals

If this was the only course in computing you take at Berea College (say it’s not so!), and you never touch or study the subject again while you are a student, what questions do I hope you will be able to answer 10 years from now?

  1. What are the basic structures for communicating ideas in any computer program?

  2. How can we systematically engage in the process of developing usable designs?

  3. What fundamental skills and techniques allow me to present myself clearly?

  4. What role do I play in larger issues of racial, sexual, and geographic discrimination, and what can I as a developer of software and technology do to make a positive difference in these areas?

Course goals provide the “big picture” overview; our learning objectives are the measurable steps towards each of these goals.

Learning Objectives

Learning objectives are the assessable points of learning in the course. The number of these learning objectives you complete is what determines your final grade in this course.

These objectives will be revised somewhat over the first 2-3 weeks of the course as we get to know each-other. In particular, the “jury is still out” on objectives marked with a .

  1. Program Design and Development

  2. Usability Testing and Theory

  3. Presentation Fundamentals

  4. Identity and Technology

Program Design and Development

This material will be covered over the course of the entire term, and will be assessed through quizzes, exams, structured reporting, and direct observation.

Level 1

  • Use event handlers for concrete user actions in an interface (eg. button presses).

  • Identify concrete/visible aspects of program state (app background color, etc.) and the ability to change those values in response to user action.

  • Use conditionals on binary (as opposed to compound) conditions to make choices between two courses of action in a program.

Level 2

  • Use variables to store program state, and control program actions between the handling of one event and the next.
  • Use lists of data for organizing information.
  • Demonstrate the use of looping constructs for searching and selecting information from lists of data.
  • Discuss what an algorithm is, and why the idea of an algorithm matters in the design and implementation of programs.

Level 3

  • Demonstrate the use of a key/value data store on a local device for passing information between “screens” of a mobile application.
  • Use remote databases for storing information between program invocations or the passing of information between programs.
  • Discuss the tradeoffs between local and remote databases in a mobile application.
  • Prepare an application for upload to an “app store” (eg. the Google Play store), and share the results of your work publicly through this mechanism.

Usability Testing and Theory

Level 1

  • Demonstrate the ability to develop basic mobile interfaces in low-fidelity materials.
  • Develop personas to guide interface design.
  • Perform light-weight tests within a group as part of the prototyping process.

Level 2

  • Perform light-weight tests with non-group members, with a particular focus on implementing separate roles (so as to maximize/improve data capture) as part of the test.
  • Demonstrate an understanding of heuristic evaluation, and the role it plays in interface design in conjunction with low-fidelity testing.
  • Discuss application interfaces objectively from user- and heuristic-centered perspectives.

Level 3

  • Discuss the role of cognitive psychology and perceptual research in the development of effective mobile technologies.
  • Report on one aspect of cognitive or perceptual psychnology in depth, with an awareness of the methods and research process that guide the work.
  • Demonstrate an awareness of the limitations of low-fidelity testing, and what other methods of software testing exist.

Presentation Fundamentals

Level 1

  • Demonstrate good posture and breathing technique while presenting.
  • Develop a short presentation that effectively communicates an idea with minimal text.

Level 2

  • Demonstrate effective room use/body positioning while presenting.
  • Develop a short presentation that effectively communicates without text.
  • Respond to critical questions and feedback calmly and confidently.

Level 3

  • Demonstrate awareness of both dress and body language in giving excellent presentations.
  • Critically and constructively review peer presentations.
  • Respond, through iterative practice, to constructive feedback on presentations.
  • Record, watch, and reflect on your own presentation skills.

Identity and Technology

This section is subject to significant revision; it is structured around Beverly Tatum’s work regarding racial identity development. It is difficult to “require” advancement through an identity model as part of an assessment, and therefore this will likely need to be reworked in terms of more easily/fairly observed activities.

Level 1

  1. Read and reflect (in writing) meaningfully on videos and blog-style content on the topic of identity.

  2. Students will reflect, privately, through personal journals regarding their thoughts regarding current events from their own personal identity perspective.

Level 2

  1. Discuss respectfully, in small-group contexts, on topics of race, gender, and socioeconomic status in the context of learning in computing and STEM-related disciplines.

  2. Practice intense listening.

Level 3

  1. Listen, intensely and with empathy, to peers in small- and large-group settings.

  2. Meta-reflect, in writing, on personal strengths and weaknesses regarding identity, by reflecting back over previous writings and documents regarding the topic.

    1. Identify directions for further growth and study in light of Tatum’s (racial/social) identity development model.


These criteria may need to be updated at the midterm (or later), as the Spring of 2015 is the first use of these standards in this course.

Completion of the learning objectives accounts for 90% of your final assessment in Apps for Appalachia. Each objective can be completed at one of two levels:

  • Excellent. An objective can be completed with excellence. This will be marked as an “E”.

  • Proficient. An objective can be completed with proficiency. This will be marked as a “P.” It is possible, in some cases, to revise work to move from proficiency to excellence.

Otherwise, an objective is not met. This may mean that it was attempted, but not passed with proficiency, or it may mean that it was never attempted/demonstrated. The outcome is the same, regardless.

At the end of the term, grades will be assigned as follows:

  • Excellent

    To earn an A in Apps for Appalachia, you must complete all of the objectives for the third level of each category. In addition, at least 2/3rds of those objectives (at all levels) must be met with a proficiency of “E”. (For clarity, you cannot complete all of the low-level objectives with excellence, and merely demonstrate proficiency at the third level of competency. Excellence is consistent.)

  • Good

    To earn a B in Apps for Appalachia, you must complete the all of the second level of competence in each category, and at least half of the third level of competence in each category. Completion of all objectives, where more than 1/3rd are rated as “Proficient” (as opposed to excellent) will result in a “B” as well. (Meaning, if you did not consistently demonstrate excellence in the supermajority of your work, you will earn a B, which is above-average and evidence of hard work.)

  • Average

    To earn a C in Apps for Appalachia, you must complete all of the second level of competence in each category.

  • Poor and Failing

    Failure to complete all of the second level of competence in each category will yield a grade of D or F, as judged by the instructor.

Participation accounts for 10% of your final assessment. It is judged by your instructor (possibly in conjunction with your peers); your participation is a reflection of the professionalism and commitment you bring to your learning and the learning of those around you.

If the instructor misjudges the amount of time it takes to complete the learning objectives in the course, decisions will be made as to how to adjust the assessment. At no point will you be held accountable for large amounts of work at the last minute, nor will students suffer as a result of misjudgment or poor planning on the part of the instructor.


We will be actively engaging during class time in pair programming and group discussion activities throughout the term. Attendance is part of being professional as a student; each missed class may cost you up to 2.5% off your final grade.

If you arrive particularly late, leave particularly early, or fail to participate in class, I will consider you absent.

If you miss class for reasons that are not considered legitimate, you are responsible for getting caught up. That does not mean you should write me, apologize for being absent, and then ask me what you missed. Start with a kind classmate, and see how you fare.

Legitimate Reasons You Might Be Absent

If you legitimately cannot be present, you will find a way to communicate that to me in advance.

  • If you have flu-like symptoms, email me and visit the health center. The Center for Disease Control recommends you stay home for at least 24 hours after the symptoms pass—RESTING. Without evidence from the health center of your visit, you are not excused.

  • Interviews

  • Family Emergencies

I will do my best to work with you to make sure that you are caught up on anything you miss if you miss class for legitimate reasons.

Class Atmosphere

I want many things for students in my classes, and I very much want you to help me achieve these goals.

  • I want our laboratory to be a relaxed environment where you are comfortable trying new things and (sometimes) failing. By “failure” I do not mean “receiving an F,” but I do mean that you try things, make mistakes, and learn from them. The last bit—learning from our mistakes—is the critical part. Neither I, nor you, nor your classmates should put down or belittle a classmate for trying.

  • I want you to look forward to because it is fun. We should be comfortable with each other—humor and laughter makes the day go faster and better. That said…

  • We should work hard, and be proud of that effort. For me, a “fun” day is one where I’ve worked hard and improved myself. I have done my best to design a course that will be fun because it challenges us to work hard and do new and interesting things.

  • Respect matters. Respect for each-other, regardless of where we are from and where we are on our life journey is of utmost importance. I have a great deal of respect for your effort as a student; I show that respect by challenging you to extend your limits, and supporting you to the best of my ability as you take risks and engage with the course throughout the semester.

Technology Policies

Much of the work in this course will require use of the computer, so these policies are designed to help you better understand how to be effective in a technology-rich environment.

  • Laptop and Software: We will regularly make use of laptops during class, and you are expected to have them unless explicitly stated otherwise.

  • Communication: The course website is your primary source for information about this course. Messages about the course will often be sent by email. These are all mechanisms you would likely use in a professional position in the real world (corporate websites, internal content management systems, and email)—you are, likewise, expected to use them in a responsible and professional manner in this course.

  • Backups: All students are expected to back-up their work on a daily basis, which includes laboratories, assignments, and quizzes. The best way to do this is to store a copy of all work in a cloud service such as Dropbox, SkyDrive, Google Drive, or to use a DVD, flash drive, or some other media. Storing multiple copies of something on your laptop is not a backup. I will not be sympathetic to lost work in any way, shape, or form.

Evening Lab / Support

The Computing and Digital Crafts Lab is open Sunday through Thursday from 7:00 to 9:00 PM (except on evenings of convocations). The primary teaching assistant and several other TAs will be able to answer questions about the content in the course during consultations in their Lab hours. You are strongly encouraged to make use of the help available in the Computing and Digital Crafts Lab, as well as in the instructors’ office hours. Best results are obtained trying to solve problems before asking for help, and you should be prepared to show what you have already tried. Topics in this course build throughout the course, so you should be sure to do your best to keep up with the class, so as to not fall behind. No question to which you do not know the answer is “dumb” unless it goes unanswered because it remained unasked.

Catalogue Description

Apps for mobile phones are written by people JUST LIKE YOU. Even if you claim to be “bad with computers,” by the end of this course you will have written many amazing apps for mobile phones and tablets. During the semester, we will collaborate in developing mobile apps which explore social networks, games, and mapping. We will share our best apps via the Goodle Play store where millions can download and enjoy what we’ve built. Absolutely no prior experience is required for this course, and we will provide tablets and phones for students to use throughout the term. This course may be used to satisfy the Practical Reasoning requirement. 1 Course Credit

Statement Regarding Disability

Berea College will provide reasonable accommodations for all persons with disabilities so that learning experiences are accessible. If you experience physical or academic barriers based on disability, please see Lisa Ladanyi (Disability & Accessibility Services, 110 Lincoln Hall, 859-985-3327, to discuss options. Students must provide their instructor(s) with an accommodation letter before any accommodations can be provided. Accommodations cannot be provided retroactively. Please meet with your instructor(s) in a confidential environment to discuss arrangements for these accommodations.

This syllabus is a living document. It may change.