Syllabus
Course Objectives
CMSC 250 is the
second course in our introductory programming sequence. The purpose of this
course is to complete your basic education in programming. This includes topics
related to the construction of application software such as user interface
programming, file systems, networking, exception handling, databases, and web
application programming. More generally, this course is about the skills needed
to assemble and deliver larger pieces of software.
Course Structure
The material in
this course naturally falls into three major divisions. The first part of the
course will cover graphical user interfaces and object-oriented design. The
second part will cover advanced topics in programming (exceptions, threads,
file i/o, and networking). The third part will focus
on primarily on Java web programming. We will have an exam at the end of each
of these three major divisions.
Text
Our text is An Introduction to Java Programming, Seventh
Edition, by Y. Daniel Liang.
Web Site
The course web site is located at
http://www.lawrence.edu/fast/greggj/cmsc250.html
Grading Policy
Your grade will be
based on two midterm exams, programming assignments, and a final exam according
to the following weightings.
Programming
assignments 60%
Midterm
exams 10%
each
Final
exam 20%
Office Hours
My office hours
this term are 1:00-3:45 TTh and 1:50-3:45 MWF. You
are welcome to stop in at other times as well, but please call or email first
to make sure that I will be in. My office is Briggs 413. My extension is 6736
and my email address is greggj@lawrence.edu.
Policy on Collaboration
Unless otherwise
specified, all work that you submit for grading in this course should be your
own work alone. You are welcome to discuss general parameters of assignments
and general techniques with your classmates, but any collaboration should stop
at the level of source code. Do not share the source code for your assignments
with other students.
If you need
assistance with a homework assignment, please see me or one of the lab consultants
on duty in Briggs 419 for help.
Expectations for Homework
Programming assignments are a major portion of your grade in this course. To maximize your success in this course I suggest that you take the following steps when working on these assignments:
· Come to class, pay attention, and ask questions.
· Do the assigned reading after class.
· Start working on the programming assignments on the day they are assigned, and plan to spend at least a little time every day working on the assignments.
· If you get stuck or don’t understand some aspect of an assignment, come to me for help. Very frequently a five minute conversation with me will resolve an issue that might take you an hour or more to resolve on your own.
Detailed Course Schedule
The following is
an outline of the topics we will cover and when we will cover them.
|
Date |
Topics |
Chapters |
|
Sept.
12 |
Introduction |
11 |
|
Sept.
14, 16 |
Intro
to GUIs |
13,
16, 34 |
|
Sept.
19 |
Graphics |
14 |
|
Sept.
21 |
Event
driven programming |
15,
16 |
|
Sept.
23 |
Timers
and Animation |
15 |
|
Sept.
26 |
Exceptions
and Files |
18,
19 |
|
Sept.
28, 30 |
Java
Collections Framework |
22 |
|
Oct.
3 - 7 |
Group
Project |
- |
|
Oct.
10 |
Threads |
29 |
|
Oct.
12 |
First
Midterm Exam |
|
|
Oct.
14, 16 |
Networking |
30 |
|
Oct.
17 - 19 |
SQL
and JDBC |
37,
38 |
|
Oct.
24 |
Database
Project |
|
|
Oct.
26, 28 |
HTML
and Servlets |
39 |
|
Oct.
31 - Nov. 4 |
Java
Server Faces |
41 |
|
Nov.
7 |
Second
Midterm Exam |
|
|
Nov.
9 |
Applets |
17 |
|
Nov.
11-16 |
Additional
topics |
TBA |