The course catalog provides this short description of the course:
Project-intensive study of advanced topics and best practices in software development, including advanced language features, modular decomposition, and development tools.
This semester, our inquiry will be guided by the following essential questions of advanced programming:
Note that, because this is a three-credit course, you should expect to invest nine hours of attention to it per week.
We will be using Google Drive to manage and share information. You will need a Google Account; configuring 2-step verification is strongly recommended.
Each student is expected to bring a laptop computer to class that is configured for software development. Configuration should be completed within the first first 48 hours of the semester; be ready to develop in class by our second meeting. This configuration minimally includes:
In order for the MercurialEclipse Plug-in to work, you will need to install the Mercurial binaries for your operating system. On Microsoft Windows, these can be downloaded during the plug-in installation process; users of other operating systems will need to install binaries manually. You will not need the CodeBeamer component of the plug-in.
You will need to create and edit a Mercurial configuration file that specifies your BSU username. Refer to the first step of the Mercurial QuickStart for instructions. Note that the Eclipse configuration sometimes gets confused and uses the wrong information; always doublecheck that your username is properly formatted before committing.
Should you encounter difficulties with your system configuration, I recommend that you post on the General Discussion forum on the course Blackboard page or contact the friendly neighborhood system administrator.
Your grade will be based primarily on the achievements that you earn during the semester, your reflections on these experiences, and your your performance on the final project and final exam.
You earn achievements by demonstrating your understanding of course content. To claim an achievement, complete all of the criteria and then submit the corresponding form provided on Blackboard. Achievements can be claimed for collaborative work as long as all contributors are clearly identified. You may claim up to two achievements per week, although it is recommended that you plan on completing two per week for the first four weeks and one per week once we get into bigger projects. For our purposes, the "week" ends at the end of the day on Sunday.
The achievement criteria must be met with a high standard of quality. Written work is expected to be clear and concise, free of spelling and grammar errors, and representing elegance of form. When dealing with programming and modeling languages, your work is expected likewise to be clear and concise, free of compiler warnings and errors, and representing elegance of form. As always, cite your sources. Note that standards increase during the semester as you develop a better understanding of advanced programming!
Achievements are divided into categories. Some may be claimed at any time, and some require us to be in a specific portion of the semester. Refer to the schedule for details.
All achievements require the creation of an achievement artifact that is shared with the class. Each artifact goes into a document with the corresponding name in the shared folder on Google Drive. If there is no such document yet for the achievement, simply create one in the shared folder.
I will evaluate your achievement artifacts using my triage grading rubric. This allows me to give you feedback on your work and help correct misunderstandings. For the purposes of computing your final course grade, an achievement is confirmed if you earn at least two of three possible points in the evaluation. You may request reevaluation of a revised achievement artifact using the form on Blackboard. You may request one reevaluation per week until finals week; note that this is strictly one request per week, not one request per achievement per week.
Finally, here are some definitions that will be useful in navigating the list of achievements:Definitions used within the achievements list:
You are encouraged each week to take a step back from the projects and achievements and to reflect on how these activities are helping you to address the essential questions of the course. An "achievement reflection" comprises the following parts:
Each reflection is worth up to six points, following my triage grading rubric. Whereas achievements can be earned collaboratively, reflections are necessarily individual. Reflections are submitted via Blackboard.
The majority of the semester will be spent working in teams on a software development project. Full details will be provided on Blackboard.
Traditional mid-semester examinations are not expected for this class, although the instructor reserves the right to modify this policy to serve the needs of the class. The final exam will be Thursday, May 1, at 7:30 AM.
The table provides the projected schedule for the semester. Modifications will be announced in class. A list of suggested achievements for the first few weeks is also provided, for those who seek direction.
|1||Read CC1–4||Studious, Java Core Sampler|
|2||Read CC5–8||Master of the Big Three, TDD Investigator|
|3||Read CC9–12, 17||Clean Coder: Naming and Functions|
|6–8||Final project, first iteration|
|9–11||Final project, second iteration|
|12–14||Final project, third iteration|
Your grade will be determined according to the following table. It is recommended that you pursue two achievements per week before starting the two-week project and one achievement per week afterward. Note that Meta-Achievements are achievements, and so they count toward the minima in both columns.
|Letter Grade||Minimum Achievements||Minimum Meta-Achievements||Minimum Reflection Points||Minimum Project Score||Minimum Final Exam Score|
The instructor reserves the right to make modifications to the balance and allocation of points as necessary to reflect the needs of the community of learners. Any such modifications will be announced in a class meeting.
All files contributed for achievements and reflections must be submitted in open file formats. Good examples include HTML, PDF, OpenDocument, and my personal favorite, plain text. Note that Microsoft Office and Adobe Creative Suite formats do not qualify.
Your learning is commensurate to your participation, and so attendance is expected. You are responsible for your learning regardless of attendance. If you miss a class meeting, you should consult with trusted classmates to ensure you have the appropriate notes. I will not repeat myself unnecessarily over email, during office hours, or by appointment. Meetings begin at the time scheduled, and you are expected to be ready to begin at this time; late admittance is prohibited.
Students who come to office hours are helped on a first-come, first-served basis; no appointment or prior contact is required. If a student wishes to make an appointment to meet outside of office hours, he or she should email the instructor the request along with several possible meeting times.
All email communication to the instructor should be from a BSU-affiliated address. This policy ensures that senders can be correctly identified and protects your privacy. Email sent from other domains may not be answered.
The instructor may access email through services not affiliated with the University. Please note that such messages necessarily pass through the campus firewall in an unencrypted format, and they may be stored on servers not owned or managed by Ball State University. It is therefore advisable to restrict confidential information to office hours or appointments.
If you are emailing regarding questions in a computer program, it is recommended that you send a copy of the code in question in your email. The preferred method is to copy the code into the body of your message, using plain text and following standard formatting conventions. Alternatively, if the code is in a publicly-readable repository, email the URL.
Although the instructor's office telephone number is listed, email and face-to-face communication are strongly preferred. I will respond to every student email I receive; I will not necessarily respond to telephone messages.
Students and faculty are bound by the Student Academic Ethics Policy of the Code of Student Rights and Responsibilities.
It behooves you to be aware of fundamentals of copyright law and the university's intellectual property policies for student-created work.
Want extra feedback on your papers? The Writing Center is a community of Ball State students and faculty who value writing. Come and collaborate with one of our trained peer tutors on any project for any major. The Writing Center is a comfortable, supportive environment for writers from all communities and backgrounds. It is located in Robert Bell 291. To make an appointment go to http://ballstate.mywconline.com.
If you need adaptations or accomodations because of a disability, if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please make an appointment as soon as possible.