Advanced Programming Fundamentals for CIS Majors
Fall, 2006

CIS 3020
Syllabus

 

Catalog Description

A fast paced introduction to computer science for students with prior programming experience. Major concepts of computer science and the process of computer programming including object-oriented programming, procedural and data abstraction and program modularity.

Course Overview

This course introduces fundamental concepts of computer science and the art of programming from an OO (object-oriented) perspective. Problem-solving skills and the principles of software engineering will be stressed: you will learn how to analyze a problem, formulate a solution, express that solution in a programming language, and test the resulting software. We will harness the powers of A PIE — Abstraction, Polymorphism, Inheritance, and Encapsulation — to write elegant, easily maintained, and efficient programs.

We will devote a significant quantity of time to visually modeling software constructs using both the UML (Unified Modeling Language) and DaRN! (Dave's Runtime Notation!). These models will facilitate an understanding of relationships between classes, how objects interact to solve problems, and scoping related issues.

Other topics include an accelerated review/introduction to Java's syntax, an overview of four classic programming paradigms, use of a simple graphics API, abstraction mechanisms, fundamental programming constructs, algorithms, recursion, and fundamental data structures. In short, this course lays the foundations upon which your future computer science studies will be built.

Warning

Students are hereby advised that this is a challenging course intended for computer science majors — regardless of your actual major, you are expected to approach the course as if you were a CS major. Prior programming experience is required! If you do not have prior programming experience, then drop this course and take either CIS 3022: Programming Fundamentals for CIS Majors 1 or CGS 2414: Programming with Java (which is geared for non-majors wanting to learn a little about programming).

This is not "a Java course." While we will use Java as our exemplar programming language, it is only as a means to an end, not the end in and of itself. Accordingly, our coverage of Java technologies will be incomplete; we will cover only those aspects necessary to illustrate the broader principles that are the true focus of this course.

ABET Outcomes

Instructional Staff

Name E-mail Office Office Hours Phone
Dave Small dts@cise.ufl.edu CSE E422 MWF 3:30-4:30pm 392-6839
 
Teaching assistants

Bob Marciniak rmacini@cise.ufl.edu CSE E309 M 11-12:30, T 12-1, W 11-12:30
Pedro Morales pbm@cise.ufl.edu CSE E309 R 2:30-4:30pm, F 9-11

Administrivia

Homepage

http://www.cise.ufl.edu/~dts/cis3020/

Prerequisites

Prior programming experience and either MAC 2311 or MAC 3472.

Required textbook(s)

Recommended textbook(s)

Exam schedule (FINALIZED)

Philosophy and policy

Read the Course Policies page!

Final grades

I do not give grades: students earn their grades. Your final grade will be based on the number of grade points you have accumulated at the end of the semester. The grading scale will be no harsher than the standard 100-90 = A, 89-87 = B+, 86-80 = B, 79-77 = C+, 76-70 = C, 69-67 = D+, 66-60 = D, 59-0 = E. During the semester you will accumulate points in categories weighted as follows:

60% exams
30% quizzes*
10% homework

* — given during the discussion sessions.

Exams, typically, have bonus points allowing one to earn more than 100%. There will be no other adjustments made to grades — it is your responsibility to earn the grade you desire.

Note: completion of the ungraded biosketch assignment is required to pass the course.

Academic dishonesty

ACADEMIC DISHONESTY WILL NOT BE TOLERATED. Unless otherwise explicitly stated, assignments are individual projects. You are expected to do your own work; individuals who misrepresent work as being their own, submit fabricated data, or otherwise engage in anti-intellectual behavior will be dealt with severely and reported to the Office for Student Judicial Affairs. You may freely use any code presented in the textbook, provided by your instructor, or authored by yourself. You are prohibited from using code from any other source without written permission from the instructor. Remember, sharing your work with another student is a violation of the honor code. For more information, consult the Dean of Students Academic Honesty - Student Guide.

Comments

My goal is simple: to help you learn — both inside and outside the classroom. If you have questions, there is no excuse for not getting help. The TAs, consultants, and I all hold office hours just for the purpose of helping you, either one-on-one or in small groups. No matter how busy we may look, during office hours, you have priority over everything else. If you have a problem or question, come by and we'll talk about it — don't put it off.

Modifications

This document is subject to revision as needed. All modifications will be noted in this section.

This website is an original work, Copyright © 2006 by Dave Small. All rights reserved.