Many software systems are amongst the most complex systems ever built by humans: telephone systems, flight control systems, internet search engines, social networking sites and much more. Two fundamental concepts central to supporting the construction and evolution of software systems are abstraction and decomposition. Building on the introduction to these concepts in CPSC 110, this course will explain how these concepts manifest over and over again in different forms when building larger and larger systems. The goals of this course are to provide students with the ability to recognize, analyze and use abstraction and decomposition to construct software systems that solve real problems. This course will use the Java programming language and will provide students the opportunity to learn practical design and programming skills. The course is designed to be interesting, accessible and useful to a wide range of students. CPSC 110 is a pre-requisite (CPSC 111 may be considered upon discussion with the instructor). CPSC 210 will be considered equivalent to CPSC 211, providing students access to other second and third year courses. Students are asked to read the information on this page in its entirety before the first class. PeopleGail Murphy (Instructor)Meghan Allen (Lab Instructor) Thomas Fritz (TA) Lecture, Labs and Office Hours
Please drop by Gail's office anytime, if I'm not with someone I'd be happy to speak with you. Or email Gail if you want to see her. Lab will be held the first week, starting January 4, 2010. Given the timing of the labs, you will attend lab before lecture. The first lab will help to ensure you have access to the appropriate computing resources for the course. Mid-Terms Mid-term #1: One class the week of February 1-5, 2010Mid-term #2: One class the week of March 22-26, 2010 TextbooksRequired readings for the course will be from course notes. The notes for a given week will be posted by midnight Saturday the week before. The notes will be in PDF and will be accessible from the Schedule and Materials link on the navigation sidebar.
As the course progresses, you might find it useful to sometimes consult Effective Java by J. Bloch. Computing ResourcesWe will be doing a lot of interactive work in lecture. If you have your own laptop and you feel comfortable bringing it to class, please do so. It will be helpful for you to have wireless on a computer you bring to class. All software will be available on the department lab computers and lectures will not require each student to have a laptop with them, so do not worry if you are unable to bring a laptop to class.We will be using the Eclipse development environment to support Java programming. We will be guiding you in the first lab on which version of Eclipse to install and how to get it. We will also be using different code examples which we will show you how to access. Course AnnouncementsWatch the news navigator on this web page for course announcements. A google group will be available for asking questions; details on how to sign-up for this group are available in Lab 0.Labs and ProjectIn the labs, you will be working on assigned problems. Your solutions to those problems will be due the Saturday following the lab at 23:59 (i.e., midnight). Upto four times over the course of the term, you will be marked on those solutions during a following lab. When you are selected for marking, you will be asked to describe to a TA in the lab your answers to the previous week's lab. Our intent in taking this approach is to get you the best feedback as fast as possible.The last five labs will involve working in a pair to complete a project; the very last lab (the fifth of the five devoted to the project) will be a demo of your completed project. GradingYour grade in the course will be assessed based on exams, labs, a project and class participation as shown in the table below. You must pass the final exam to pass the course. If you do not pass the final exam, the grade assigned in the course will be the minimum of 45% and the grade calculated using the below formula.
How to Succeed in CPSC 210As students, you likely hear the same advice in every course...keep up with the material. Because the labs build on material from lecture and the labs form the basis of homework, this advice is especially true for CPSC 210. Here are some other ideas to help ensure you enjoy and learn the material in CPSC 210.
Academic HonestyThe Department of Computer Science has a detailed policy regarding collaboration on academic work. Please (re-)read this policy.No collaboration of any kind is permitted for mid-terms or the final exam. we will post more information on collaboration in labs and on projects. |
