Programming Fundamentals for CIS Majors 1
Fall, 2010

CIS 3022
Syllabus

 

Catalog Description

The first course of a two-semester introductory sequence for students without 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. Credits: 3.

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 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 not required nor expected. If you already know and can apply the basics (e.g.,you can write a procedure that takes an array of integers and returns the largest value) in any language, you should instead take Advanced Programming Fundamentals for CIS Majors. If you want to learn a little about programming, but don't want the intensity of a majors' course, then I'd suggest CGS 2414: Programming with Java (which is geared specifically for non-majors).

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 5th period (11:45-12:35pm) 450-34-23
Tony Chuchaisri pchuchai@cise.ufl.edu CSE E309 T 3-4th, F 6-7th
Martin Sarov mgsarov@cise.ufl.edu CSE E309 MW 6-7th
Andrei Todor atodor@cise.ufl.edu CSE E309 T 5-7th, W 3rd

Administrivia

Homepage

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

Prerequisites

MAC 2311

Computer requirement

Access to and on-going use of a computer on which you can install software. A laptop is strongly recommended (so you can bring it to class and office hours). Mac, Linux, PC... it's all good.

Meeting times and places

See here

Required textbooks

Recommended books

None of these books are required for this class: indeed, every one of them assumes the reader already knows how to program. However, I list them because you may find them useful, especially in your later CISE course work.

Exam schedule — CONFIRMED

Last day of class

Wednesday, 12/8

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 100-92 = A, 91-89 = A-, 88-86 = B+, 85-82 = B, 81-79 = B-, 78-76 = C+, 76-72 = C, 71-69 = C-, 68-66 = D+, 65-62 = D, 61-59 = D-, 58-0 = E. During the semester you will accumulate points in categories weighted as follows:

10% exam 1
20% exam 2
30% exam 3
30% lab quizzes
5% lecture quizzes
5% exercises (ungraded)
0% mandatory assignments

It is your responsibility to earn the grade you desire.

Lab quizzes

Most weeks, the entire lab period will be devoted to a quiz. Typically you will be given a problem and will need to write a program that solves it. The quizzes are closed book, closed notes, and closed internet. You may use only those files that are provided as part of the quiz (if any) and files that you write during that quiz period. All other materials and communication (web browsing, IMing, texting, etc.) are prohibited. Do not discuss the content of the quiz until after the last quiz section has met, as someone who has not yet taken their quiz may overhear you and gain an unfair advantage.

Exercises (ungraded)

Expect (ungraded) homework to be assigned every lecture. You are expected to do it to the best of your ability. Five percent of your grade will be based on the number of exercises you submit. For each assignment, you may submit either:

  1. a completed assignment that is, to the best of your knowledge, perfect (i.e., 100% correct), or
  2. an assignment is less than perfect along with a detail explanation of what is missing/incorrect and how you suspect it should be completed/fixed, or
  3. a page that contains:
    • in the upper right-hand corner, mechanically printed (use a laser, inkjet, or other printer):
      1. your name
      2. CIS 3022
      3. the date the homework will be collected
      4. the homework number
      5. the period your lab meets
    • in the center, neatly hand-written (in block print) the statement:
      Even though I didn't do it, I would still like credit for work whose purpose is to help me build the skills I will need to succeed in this and future programming-oriented courses. I promise not to complain should I do poorly on the quizzes or exams.
      followed by your signature.

Mandatory assignments

Completion of the ungraded biosketch and postmortem assignments is required to pass the course. Be sure to save all the work you do through out the semester as you'll need it for one of the postmortem deliverables.

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.

Things the college/university wants stated verbatim


19. This statement must be included in every grade scale on syllabi:

“A C- will not be a qualifying grade for critical tracking courses. In
order to graduate, students must have an overall GPA and an
upper-division GPA of 2.0 or better (C or better). Note: a C- average
is equivalent to a GPA of 1.67, and therefore, it does not satisfy
this graduation requirement. For more information on grades and
grading policies, please visit:
http://www.registrar.ufl.edu/catalog/policies/regulationgrades.html”

20. Honesty Policy – All students admitted to the University of
Florida have signed a statement of academic honesty committing
themselves to be honest in all academic work and understanding that
failure to comply with this commitment will result in disciplinary
action. This statement is a reminder to uphold your obligation as a UF
student and to be honest in all work submitted and exams taken in this
course and all others.

21. Accommodation for Students with Disabilities – Students Requesting
classroom accommodation must first register with the Dean of Students
Office. That office will provide the student with documentation that
he/she must provide to the course instructor when requesting
accommodation.

22. UF Counseling Services – Resources are available on-campus for
students having personal problems or lacking clear career and academic
goals. The resources include:
- University Counseling Center, 301 Peabody Hall, 392-1575, Personal
  and Career Counseling.
- SHCC mental Health, Student Health Care Center, 392-1171, Personal
  and Counseling.
- Center for Sexual Assault/Abuse Recovery and Education (CARE),
  Student Health Care Center, 392-1161, sexual assault counseling.
- Career Resource Center, Reitz Union, 392-1601, career development
  assistance and counseling.

23. Software Use – All faculty, staff and student of the University
are required and expected to obey the laws and legal agreements
governing software use. Failure to do so can lead to monetary damages
and/or criminal penalties for the individual violator. Because such
violations are also against University policies and rules,
disciplinary action will be taken as appropriate. We, the members of
the University of Florida community, pledge to uphold ourselves and
our peers to the highest standards of honesty and integrity.

Note:  Statements in items 19-23, should be included as is.
This website is an original work, Copyright © 2010 by Dave Small. All rights reserved.