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