Syllabus

advertisement
C212/A592 Introduction to Software Systems
Fall 2102 Syllabus
Course Website: http://www.cs.indiana.edu/classes/c212
Lecture: TR 9:30am-10:45am, in LH102
Labs:



R 1:25-3:20 (GY226: Steve/Andre/Adrian)
F 2:30-4:25 (WY125: Mike/Andre)
F 3:10-5:05 (LI402: Sam/Hyun-Seok)
Text: Big Java (Late Objects),
by Cay Horstman (Wiley 2012)
Available in the IU Bookstore
also on 2 hr reserve at Swain.
Online access for half the price
at coursesmart.com 1 (or if you
start a free trial account you
can read the book for free).
Instructor: Adrian German
E-mail: dgerman@indiana.edu
Office: 821 E 10th (Undergrad. Annex)
Adrian
Associate Instructors (UI)
Office Hours
Andre Kuhlenschmidt (akuhlens, M 12-2pm)
Mike Bestvina
(mjbestvi, MW 2-3pm)
Hyun-Seok Oh
(ohh,
T 4-6pm)
Sam Waggoner
(srwaggon, T 4-6pm)
Steve Gehrig
(smgehrig, TR12:30-1:15pm)
Andre
Mike
Steve
Sam
Hyun
Office Hours: Adrian’s office hours are daily, as posted 2. Daily available times are listed in a sliding two
week window, on-line. Please register your appointment on-line so we know you’re coming and to keep
a record of it. Once you register on-line an e-mail message is sent to your instructors with a copy to you.
Catalog Description 3: Counts as a Natural and Mathematical Sciences course. Design of computer
software systems and an introduction to programming in the environment of a contemporary operating
system. Topics include a modern object-oriented programming language; building and maintaining large
projects; and understanding the operating system interface.
Course Goals: This is a second course in programming taught in Java. It is assumed that this is your first
exposure to object-oriented programming. The course features concepts and constructs associated with
interactivity, datatypes, algorithms – all within the object-oriented model of programming on which Java
is based. Upon succesful completion of this course students will:
 be able to write a variety of useful Java programs that solve real-life problems and demonstrate
the ability to model and understand the physical and natural world in quantitative and/or
analytical terms
 be able to collect and interpret test/debug data, think critically and conduct theoretically based
inquiry in the development of software systems of reasonable size and complexity
 build a working understanding of scientific inquiry and the bases for technology; specifically,
students will use aspects of scientific inquiry (deductive and inductive logic, proofs, and using
the hierarchical and successive refinement of requirements and goals) to design and develop
robust software systems of moderate size and complexity
1
http://www.coursesmart.com/9781118087886/C1
http://silo.cs.indiana.edu:8346/cgi-bin/fall2012/schedule which includes UI’s office hours as well.
3
http://www.soic.indiana.edu/undergraduate/courses/computer-science/C212.php
2
Course Organization
The course is organized in five distinct parts:
1. Basic Java (Literals, Operators, Expressions, Values, Types, Assignments, Conditionals, Loops,
Arrays, Static Methods, Primitive vs. Reference Types in Java)
2. Modeling with Classes (Instance vs. Static Members, and Constructors)
3. Advanced Modeling (The Class Extension Mechanism, Inheritance, Polymorphism, Dynamic
Method Lookup, Shadowing of Variables, Constructor Chaining, Abstract Classes and Interfaces)
4. Existing Libraries and Common APIs (File I/O, Exceptions, GUIs, Applets, Servlets, Java Server
Pages, Apache Tomcat, Collections, Generic Types)
5. Object Oriented Patterns (MVC, Observer, Decorator, Factory, Adapter & Facade etc.) in the
Context of Software Systems Development (the Magic Engine and the 2D Video Game IceBlox)
Grading Your grade will have five components:
 Lecture and Lab Attendance (20%)
 Lab Assignments (20%)
 Homework Assignments (20%)
 Midterm Exam (20%)
 Final Exam (20%)
All your work will be graded as a percentage. Here are the letter cutoffs that will be used:
F DD
D+
CC
C+
BB
B+
AA
0 59.5 62.5 65.5 69.5 72.5 75.5 79.5 82.5 85.5 89.5 92.5
A+
96.5
Grading Policies Lab assignments are weekly. Homework assignments are also weekly with the
exception of the week of the midterm exam. The Midterm Exam is on Oct 4th, in class. It is a written
exam followed up by a practical component in lab later that week. All homework and lab assignments
along with lecture and/or lab attendance can be made up in person during Adrian’s office hours. The
process is rather tedious and time-consuming but as long as there is time it will be always allowed. Both
lab and homework assignments are collected via OnCourse. There is no penalty for a late assignment,
but at the same time a late assignment will only be accepted if there’s enough time for a thorough oneon-one discussion of the solution submitted.
Important Dates
August 21
October 4
Semester starts
Midterm Exam (9:30-10:45am in LH102)
October 12-14
October 18
November 18-25
December 10-14
December 13
Fall Break
Last Day for Automatic W
Thanksgiving Week
Final Exam Week
Final Exam (10:15am-12:15pm, LH102)
Special Accomodations will be provided in accordance with University policies, upon student request.
Download