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.
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.
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.
| Name | 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 | — |
http://www.cise.ufl.edu/~dts/cis3022/
MAC 2311
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.
See here
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.
Wednesday, 12/8
Read the Course Policies page!
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.
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.
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:
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.
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 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.
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.
This document is subject to revision as needed. All modifications will be noted in this section.
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.