UNCW Home

UNCW HomeBreaking News! Click here for details.

 CSC 121 - Introduction to Computer Science I - Spring 2008  

 

Schedule and Assignments

121-001 Lec+Lab

TR

12:30pm - 2:10pm

CI 2006

 

Instructors:
Curry Guinn
Office: CI 2045  Phone: 962-7937

Office Hours:

MTWR 10:00am-11:00am, F 9:00am-10:00am

 

and by appointment.

 

Email:  guinnc@uncw.edu

UNCW CATALOGUE DESCRIPTION

CSC 121. Introduction to Computer Science I (3) Prerequisite: MAT 111 or 115. Problem solving methods and algorithms in a modern high-level programming language. Introduces one or more programming environments. Emphasis on programming style and the design, coding, and testing of complete programs. A grade of "C" (2.00) or better is required for taking any course for which CSC 121 is a prerequisite. Two lecture and two laboratory hours each week.

GENERAL COURSE INFORMATION

This (along with CSC 100) is the first required course for Computer Science majors. Students may declare a major in Computer Science after completion of CSC 121, 133, and 221 with a grade point average of at least 2.5 on these 3 courses.

Students intending to major in Computer Science are encouraged to take CSC 100 (Orientation to Computer Science) and CSC 133 (Discrete Structures) during the same semester as CSC 121. CSC 100 is a required course for majors and minors starting in Fall 2007.  In CSC 133 students will learn the logic and mathematics underlying computer science.

CSC 121 is the first of a three course sequence (CSC 121, 221, 332) on computer programming using the JavaTM programming language. No previous programming experience is assumed. In these courses students will learn many core concepts in computer science and the fundamentals of software design and development. Students will learn basic problem solving strategies and common design patterns in order to expedite the software development process. Students will also discover that computer programming is an art and beyond a program that "works" are issues of aesthetics, simplicity, and elegance.

CSC 121 is not an easy course, but students find it rewarding and well worth the effort. Students should expect to spend 5 to 10 hours per week on the course outside of class time.

REQUIRED TEXTBOOK AND CHAPTERS COVERED

Java Software Solutions: Foundations of Program Design, 5/E  Publisher: Addison-Wesley, Copyright: 2007, Format: Paper Bound; 900 pp,
ISBN-10:0321409493

Downloads: JDK 6.0 (setting the path variable) / BlueJ.org / BlueJ download / Eclipse

Code Examples From Book

Week

Required Reading: Chapter and PPT / Topics discussed

Assignments: Quizzes & Homework

Lab

1

Chapter 1. Introduction. Computer Processing. Hardware Components. Networks. The Java Programming Language. Program Development.Object-Oriented Programming.

Quiz 1 (01/10)

Quiz 2 (01/15): SR 1.2, SR 1.4, SR 1.5, SR 1.17, Ex. 1.15, Ex. 1.18

HW 1 (01/17): Ex 1.3, PP 1.3, 1.7

Lab 1 (01/10, 01/15)


(Learning DOS with Java -optional - if you want even greater familiarity with working in Windows)

2

Chapter 2. Data and Expressions. Character Strings. Variables and Assignments. Primitive Data Types. Expressions. Data Conversion. Interactive Programs. Graphics. Applets. Drawing Shapes.  Running BlueJ and JDK from a jump drive / Debugging

Quiz 3 (01/17): SR 2.1, SR 2.3, SR 2.4, SR 2.8, SR 2.11, SR 2.11, SR 2.12, SR 2.13, SR 2.14, Ex 2.6, Ex 2.7, Ex. 2.10

HW 2 (01/24 for +10 points, 01/27 for normal credit): PP 2.6, 2.7, 2.10, 2.12 

Lab2 (01/17, 01/22, 01/24)

3

Chapter 3. Using Classes and Objects. Creating Objects. The String Class. The Random Class. The Math Class. Formatting Output. Enumerated Types. Wrapper Classes. Components and Containers. Nested Panels. Images.  (January 29 lecture notes)

Note Change: Quiz: 4 (01/29) SR 3.1, SR 3.10, SR 3.12, SR 3.13, SR 3.20, Ex 3.4

HW 3 (02/05): PP 3.1, 3.8

Lab3 (01/29, 01/31)

4-5

Chapter 4. Writing Classes. Classes and Objects Revisited. Anatomy of a Class. Encapsulation. Anatomy of a Method.Constructors Revisited. Graphical Objects. Graphical User Interfaces. Buttons. Text Fields.

Quiz 5 (02/05) SR 4.3, SR 4.16, SR 4.19, Ex. 4.4

HW 4 (02/14): PP 4.3, 4.4

Exam 1 (02/19)

Lab4 (02/05, 02/07)
Lab5 (02/12)

6-8

Chapter 5. Conditionals and Loops. Boolean Expressions. The if Statement. Comparing Data. The switch Statement. The while Statement. Iterators. The do Statement. The for Statement. Drawing with Loops and Conditionals. Determining Event Sources. Dialog Boxes. More Button Components

Quiz 6: (02/28) SR 5.9, SR 5.11, Ex 5.2, Ex 5.3, Ex 5.4, Ex 5.5, Ex 5.7

HW 5: (Due 02/29) PP 4.12, 4.13, 4.14

Lab6 (02/21)
Lab7 (02/26)  - Practical
Lab8 (02/28)

Lab9 (03/11)

 

Lab 10 (03/13)

9

Chapter 6. Object-Oriented Design. Software Development Activities. Identifying Classes and Objects. Static Class Members. Class Relationships. Interfaces. Enumerated Types Revisited. Method Design. Method Overloading. Testing. GUI Design. Layout Managers. Borders. Containment Hierarchies.  (March 18 Lecture Notes)

Quiz 7 (03/25): SR 6.1, SR 6.2, SR 6.5, SR 6.9, SR 6.15

HW 6 (Due 03/25) : 5.3, 5.4, 5.15, 5.16 PP 6.2, 6.13


Lab 11 (03/18, 3/25)
 

10-11

Chapter 7. Arrays. Array Elements. Declaring and Using Arrays. Arrays of Objects. Command-Line Arguments. Variable Length Parameter Lists. Two-Dimensional Arrays. The ArrayList Class. Polygons and Polylines. Mouse Events. Key Events.  (March 25 Lecture Notes, March 27 Lecture Notes)

Quiz 8 (04/01): SR 7.1, SR 7.2, SR 7.3, SR 7.4, SR 7.5, SR 7.6, SR 7.7, SR 7.8, SR 7.9,  EX 7.3, EX 7.8

 HW 7: (Due 04/03) PP 7.1, PP 7.5, PP 7.6

Lab 12 (03/27)
 

12

Chapter 8. Inheritance. Creating Subclasses. Overriding Methods. Class Hierarchies. Visibility. Designing for Inheritance. The Component Class Hierarchy. Extending Adaptor Classes. The Timer Class

Quiz 9: (04/08) SR 8.1, SR 8.4, SR 8.5, SR 8.7, SR 8.8, SR 8.14

HW 8: (04/15) PP 7.10, PP 7.16

Lab 13 (04/01) Work on Homework Problems) 

13

Chapter 10. Exceptions. Exception Handling. Uncaught Exceptions. The try-catch Statement. Exception Propagation. The Exception Class Hierarchy. I/O Exceptions. Tool Tips and Mnemonics. Combo Boxes. Scroll Panes. Split Panes

Quiz 10 (04/15): SR 10.1, SR 10.2, SR 10.3 - Be able to read and trace the execution of a program with a try-catch block: pp 538-9.

HW 9 (04/28): Follow Link

Lab 14 (04/03)

14

Chapter 11. Recursion. Recursive Thinking. Recursive Programming. Using Recursion. Recursion in Graphics

 

 

Lab 15

Lab 16 (04/10)

15

Chapter 12. Collections. Collections and Data Structures. Dynamic Representations. Linear Data Structures. Non-Linear Data Structures. The Java Collections API.

Tuesday, April 22: In-Class Written Test

Final Exam: (Thursday, May 1, 11:30am-2:30pm)

 

Lab 17 (04/15)

Lab 18 (04/17)

 

 

 

Appendix A  Glossary

Appendix B  Number Systems

Appendix C  The Unicode Character Set

Appendix D  Java Operators

Appendix E  Java Modifiers

Appendix F  Java Coding Guidelines

Appendix G  Java Applets

Appendix H  Regular Expressions

Appendix I  JavaDoc Documentation Generator

Appendix J  The PaintBox Project

Appendix K  GUI Events

Appendix L  Java Syntax

Appendix M  The Java Class Library

Final Exam Review: Glossary / Keywords. Read the course minimal competencies carefully. These are the expected learning goals for this semester (in preparation for subsequent course work) and will tested on the final exam.

Final Exam 
Course Outline / CSC 121 Minimal Competencies

 

 

STUDENT RESOURCES

  • UNCW Labs
    CI 2006 is open for CSC 121/221 students on Fridays from 9:00 a.m. - 10:50 a.m. 
  • Tutors
    The Learning Center in Randall Library provides tutors for this class.
  • Links/Tutorials

COURSE REQUIREMENTS AND GRADING CRITERIA

Students are required to attend the lab that they are signed up for except under exceptional situations and then when prior arrangements have been made with Dr. Guinn. The lecture section will determine 4/6 of the course grade and the lab/programming section 2/6 of the course grade as itemized below. Thus, to succeed/excel in the course, a student must succeed/excel in both lecture and lab section.

  • Lecture Section
    Programming concepts will be presented and discussed in the lecture section. This includes algorithms, Java syntax and semantics, program design, and discussion of programming projects and labs. Exams will take place in the lecture section. You should come to lecture prepared by having read the sections that are listed for that day on the class schedule. Sample programs will be linked to the course schedule. Check the schedule at least once a week for updates.
     
    • Quizzes
      Quizzes will serve as milestones between exams and provide valuable feedback. Each quiz will be given during class and last about 10 minutes. Quizzes will cover material from previous lectures and/or labs. Your graded quiz will be returned the next lecture period. The average of these grades will count 1/6 of your course grade.
       
    • Exams
      There will be two 50-minute exams. Each exam will count 1/6 of your course grade. Make-up exams will not be given. If a student misses one exam, the grade on the final exam will substitute for it. If a student does not miss any exams, the final will substitute for the lowest exam grade (if the final is higher). If a student has already missed an exam, subsequent missed exams will result in zeroes.
       
    • Final Exam
      The comprehensive final exam will be given as scheduled above. The final counts either 1/6 of your course grade, if the final exam grade is lower than your lowest exam, or 2/6 of your course grade, if the final replaces your lowest exam grade. The final exam may not be used to replace your quiz, lab, or program grades.
       
  • Lab Section
    Your lab section will be used for hands-on programming activities. These activities may be structured or unstructured, individual or collaborative, and may vary between the two lab sections. You should come to lab with your book and notes and be ready to write code for the entire period. Bring recording media (flash drive) to lab to put your work on, and be sure to back up your work on your home computer.
     
    • Lab Participation
      You are expected to stay for the entire lab period and remain focused on the assigned tasks. Hopefully, you will feel that the lab is a non-threatening environment where you can work to improve your programming ability. There is a wide range in programming abilities and all students are encouraged to work to do better. Strong programmers who complete the task at hand may be asked to peer tutor their weaker classmates and/or work on other programs. Lab participation (i.e. attendance, following directions, etc.) will count towards your course grade.
       
    • Lab Activities
      During most lab periods you will be given a mini-project to work on. Generally, labs will be collaborative in nature, you can talk to your classmates and ask your professor for help. There will be weekly lab meetings and for most you will receive a Boolean grade for each one (0 or 1 point), some are graded on a hundred point scale (0.00-1.00). Most labs will consist of two to five parts that must be completed in sequence. The parts will vary in difficulty so that most students will complete the first part, but only the best programmers will complete all parts. Two of the labs will include additional timed practicals for which there will be no assistance. These are designed to test individual hands-on programming abilities. All work must be done in lab unless otherwise specified. No make-up labs or extensions are allowed. Your lowest lab grade including practicals will be dropped. The average of your remaining labs will count 1/6 of your course grade. Note that on some lab days, such as when you work on team programs, everyone who stays on task will get full credit for the lab.
       
    • Programming Projects
      Programming projects are to be completed outside of class. Programming projects will count 1/6 of your course grade. Specific instructions concerning due dates, late programs, assessment criteria, etc., will be given when the programs are assigned.  Warning: Programming assignments are mandatory.  Failure to submit any homework assignment will result in an overall 'F' grade for the course. 
       
  • Course Grade
    A 10-point scale will be used to compute your course grade. If your course score falls just below a cutoff, a higher plus / minus grade may be assigned. Factors that affect this judgment are the distribution of grades, improvement during the semester, and attendance.
·                    Numeric Score     Letter Grade     Quality Points 
·                  ====================================================               
·                     90.0 - 100           A                4.00 
·                     80.0 - 89.5          B                3.00
·                     70.0 - 79.5          C                2.00
·                     60.0 - 69.5          D                1.00
·                     00.0 - 59.5          F                0.00
·                The following algorithm can be used to compute your final grade based on your
·                  before final average:

·                  if (finalExam < lowestTest
·                      grade = (finalExam + 5 * beforeFinal) / 6;
·                  else 
      grade = (5 * beforeFinal - lowestTest + 2 * finalExam) / 6; 
  • Academic Expectations for Students

In choosing UNCW, you have become part of our community of scholars. We recognize that the UNCW learning experience is challenging and requires hard work. It also requires a commitment to make time available to do that hard work. The university expects you to make academics your highest priority by dedicating your time and energy to training your mind and acquiring knowledge. Academic success in critical thinking and problem solving prepares you for the changes and challenges you will encounter in the future. Our faculty and academic support resources are readily available as partners in this effort, but the primary responsibility for learning is yours.

Honor Code

It is the responsibility of every student to uphold and maintain the UNCW Academic Honor Code (see Section V of your Student Handbook). You violate the honor code when you represent someone else's work as your own. Programming assignments may be discussed at a conceptual level with other students but details and coding must be your own. Copying and team collaboration is prohibited.

Learning Strategies

You are expected to take an active role in your learning in this course. This includes regular attendance, paying attention in class, reading the textbook, and completing all course requirements. You are encouraged to study with your classmates outside of class. Programming assignments usually require a lot more time than expected, so start early and work some every day.

Policies

Code of Student Life (PDF)

UNCW practices a zero-tolerance policy for violence and harassment of any kind.  For emergencies contact UNCW CARE at 962-2273, Campus Police at 962-3184, or Wilmington Police at 911.  For University or community resources visit http://uncw.edu/wrc/crisis.htm

Academic Honor Code

Students with Disabilities

If you have a disability and need reasonable accommodation in this course, you should inform the instructor of this fact in writing within the first week of class or as soon as possible. If you have not already done so, you must register with the Office of Disability Services in Westside Hall (extension 3746) and obtain a copy of your Accommodation Letter. You should then meet with your instructor to make mutually agreeable arrangements based on the recommendations of the Accommodation Letter.

Student Affairs Disability Services - Policies and Procedures 

Version 2


 

by J. A. Tompkins, Modified by C.Guinn