Title: | Intermediate Programming |
Institution: | Metropolitan State University of Denver |
Course ID: | CS 390I |
Semester: | Fall 2014 |
Meetings: | Mondays & Wednesdays 4:00PM - 5:50PM |
Location: | Central 101 |
Credit Hours: | 4 |
Prerequisites: | CS1050 & CS2050 with grades of "C" or better |
Description: | http://intermediateprogramming.com |
Policies: | http://www.jodypaul.com/cs/intprog |
Moodle Site: | http://http://gouda.msudenver.edu/moodle |
Instructor: | Dr. Jody Paul (schedule & office hours) |
E-mail: | jody @ computer.org |
Office: | Science 1038 (x68435) |
Campus Mail: | Campus Box 38 |
This course provides the opportunity and support for students who wish to solidify and extend the computer programming knowledge and abilities acquired in Computer Science l & 2 (CS 1050 & CS 2050). Topics covered include tools, techniques, and approaches to help tackle the programming tasks of domain analysis, program design, coding, building, testing, and principled debugging.
The course provides participants opportunities to gain experience, beyond what was available during Computer Science 1 & 2, and to expand the set of useful mental and technological tools. It also includes practical tips for becoming a better programmer, acquired over decades of experience in industry and the study of programming best practices.
Participants are expected to have a good working knowledge of the Java programming language and be willing to try out new approaches and techniques.
97 Things Every Programmer Should Know:
Collective Wisdom from the Experts
edited by Kevlin Henney
O'Reilly (2010); ISBN 0596809484
REQUIRED
Debug It!
Find, Repair, and Prevent Bugs in Your Code
by Paul Butcher
Pragmatic Bookshelf (2009); ISBN 193435628X
REQUIRED
Practical Unit Testing with JUnit and Mockito
by Tomek Kaczanowski
Tomasz Kaczanowski (2013); ISBN 8393489393
REQUIRED
Java 8 Lambdas: Pragmatic Functional Programming
by Richard Warburton
O'Reilly (2014); ISBN 1449370772
STRONGLY RECOMMENDED
JUnit in Action,
Second Edition
by Petar Tahchiev, et al.
Manning Publications (2010); ISBN 1935182021
STRONGLY RECOMMENDED
Java SE 8 for the Really Impatient
by Cay S. Horstmann
Addison-Wesley Professional (2014); ISBN 0321927761
RECOMMENDED
Java: The Complete Reference, 9th Edition
by Herbert Schildt
McGraw-Hill Osborne (2014); ISBN 0071808558
OPTIONAL
You are expected to prepare in advance for class sessions (reading, exercises, etc.), to participate in class discussions and activities, and to make in-class presentations. Participation in class discussions and activities is mandatory and constitutes part of the overall grade for the course.
A substantial amount of information is disseminated during class sessions and via the course website. You are responsible for knowing this information whether or not you attended the sessions or accessed the website. Note in particular that the textbooks and references provide some but not all of the information necessary to successfully complete the course.
In addition to important course and domain information, the course support website also provides the vehicle for managing assignments and assessment.
Assignments and projects represent your opportunity to practice applying the concepts, thereby enhancing your understanding, and to demonstrate your knowledge of the concepts and their application. Details regarding assignments and projects will be provided in class and on the course moodle website. Assignments must be turned in using the course moodle website unless explicitly specified otherwise. In particular, e-mail and hard-copy will not be accepted in lieu of online submission.
Every assignment and project turned in must include a section (maximum 150 words) labeled “Reflection” in which you are expected to reflect on the experience of working on the assignment or project and describe your personal insights and observations associated with the experience. This reflection is required whether or not the assignment specification mentions it explicitly. Reflections comprise a portion of the score of every assignment and project.
Assignments must be turned in using the course website unless explicitly specified otherwise. In particular, e-mail and hard-copy will not be accepted in lieu of online submission. To indicate submission of an assignment, you must click the Submit button for that assignment. Note that while this allows you to keep a working-draft version on the system, failure to click the Submit button will result in no earned score for the assignment.
Formats of documentation files turned in for assignments must not depend on specific operating system or commercial software. The following are examples of generally acceptable formats: text (ASCII or UNICODE UTF-8), HTML, PDF, GIF, JPEG, PNG. The following are examples of specifically unacceptable formats: Microsoft Word, Apple Pages, Microsoft PowerPoint.
Acceptable formats for archives include only tar, gz, and zip.
Note that a deliverable submitted in an unacceptable format is equivalent to no submission at all. If you are unsure about the acceptability of a file format, please check with your instructor well prior to submission.
The 24-hour period immediately preceding the published due date/time for each assignment is considered a quiet period. During that 24-hour interval, the instructor will not address questions directly referencing that specific assignment. All students are strongly encouraged to complete assignments well in advance of this quiet period. Further, since computer systems are likely to be strained during the 24-hour period immediately preceding a published due date/time, you should not depend on such systems, including the course support servers, to be consistently available during that period.
Deliverables associated with assignments may be aubmitted for scoring at any time prior to the published due date/time.
No assignment deliverables will be accepted more than 24 hours after the published due date/time.
N.B. All risks associated with late submissions are assumed by the student. Note in particular that system and network failures occuring after the due date/time will not result in an extension of the late submission acceptance period.
Because there are so many risks to completion and submission, you are strongly encouraged to target completion of assignments no less than 24 hours prior to the published due date/time. Illness, crises, and emergency situations will be dealt with on a case-by-case basis in accordance with University, School, and Departmental policies.
Successful programming is rarely a solitary endeavor devoid of external contributions. Collaboration, teamwork, and consultation of work by others are the norms.
Some collaborative activity is required for successful completion of this course. Collaboration is encouraged and regarded as an essential aspect of learning Computer Science and programming. Collaboration and discussion with fellow students and instructors concerning course information, materials, assignments, projects, proofreading, and concept exploration is strongly encouraged. You are not expected to learn the course content or work on assignments and projects in isolation on your own.
That said, you must write up your own submissions, reflecting your individual effort, for every assignment you turn in to be assessed, even if the solution results from collaborative effort. In your write-up, you must credit the people with whom you worked.
If you consult any sources, you must explicitly reference the sources and indicate where and how they apply. Turning in work that does not credit collaborators, includes quotations without corresponding citations, or does not properly cite references, must be treated as academic dishonesty and an attempt at fraud.
All incidents of suspected dishonesty will be reported to the department and the Dean of the school. Consequences may include a score of 0 on the assignment, a grade of "F" for the course, academic probation, or dismissal from the institution. This is a very serious matter and should not be taken lightly. If you have any uncertainty or concerns, please discuss them with me or your advisor.
Official policies applicable to all courses: http://cs.msudenver.edu/degrees/courses/policies
MSU Denver College Catalog: http://catalog.msudenver.edu
Official announcements, including Academic Policies and Procedures and Student Rights and Responsibilities
MSU Denver Academic Calendar: http://www.msudenver.edu/events/academic/
Additional official dates and deadlines, including the last dates to withdraw and receive NC and holidays
MSU Denver Student Handbook: http://www.msudenver.edu/handbook/
Important Metro State and Auraria campus policies and procedures for students