CS 0007 - Introduction to Computer Programming

Summer Term: 05-3

 

 

Class

Recitation

Time:

 

 

Days:

TH

T

Room:

 

 

Webpage:

http://www.cs.pitt.edu/~jmisurda/teaching/cs0007.htm

 

Note:  You must sign up for the recitation.

 

Contact Information

 

Instructor: Jonathan Misurda

Office:

6404 Sennot Square

Phone:

(412) 624-9129

Email:

jmisurda@cs.pitt.edu

Office Hours:

 

 

Description

 

Computers have become increasingly pervasive in today’s society.  Their power to do complicated and repetitive tasks quickly and efficiently has made them invaluable tools in modern society.  In this class, you will learn to harness the power of a computer to do new tasks by creating your own software as opposed to using existing programs.  We will explore the limits of what a computer can and cannot do easily, and provide you with the knowledge and experience to recognize those problems that you may find in life that can be solved with the help of a computer, and the ability to make the computer do those tasks.

 

This class is meant as a first class in computer science.  Anyone is welcome to take it, as computers can be useful in a variety of fields.  It is also meant as an introduction to computer science for those students who wish to pursue the field further, but lack prior exposure to the material.

 

Prerequisites

 

There are no prerequisites. Concepts from basic Algebra will be drawn upon.  Passing familiarity with the operation of a computer is also helpful.

 

(If you are already proficient - had 1 or 2 courses prior - in computer programming this is not the course for you.)


Course Purposes and Goals

 

Introduction to Computer Programming is meant as a course to expose interested students how computer software is written and tested.  It seeks to illuminate the creative process that is computer programming from the ground up, with an emphasis on good preplanning and style.

 

In this course we will be writing procedural programs in the Java programming language.  Not only will you learn what that precisely means, but you will also, at the end of the term:

 

 

Textbook

 

The text is:

 

            Pohl, Ira and McDowell, Charlie. Java by Dissection. Addison-Wesley, 2000.

 

It can be found in the bookstore.

 

Class Policies

 

Exams: There will be a midterm and a final in this class.  The scheduled final exam is on the final day of class INSERT DATE HERE 

 

Cheating on exams will not be tolerated.  Anyone caught cheating will be given a zero for the test and reported to the department following University procedures.

 

Labs and Quizzes: Attending recitation is an important part of this course.  In recitation you will be able to work in a structured setting while completing small tasks (Labs). Concepts from class will be expanded upon and tested with unannounced quizzes.

 

Projects: There will be six out-of-class assignments given.  These are to be completed in the given time (no extensions will be given without a valid excuse.)  These are meant to be your own work; anyone found to be collaborating will be given a zero for the assignment.  Collaborating also means using code from previous terms, other universities, your friends, or finding it on the internet.

 

Participation:  Attendance will not be taken, but in such a small class, any absence will be noticed.  Several unexcused missed classes will adversely affect your grade.


Grading

 

Your grade will be based upon 2 exams, 6 projects, weekly labs and quizzes (the lowest one of which will be dropped), and participation:

 

2 Exams

40% (20% each)

6 Projects

42% (7% each)

Labs + Quizzes

10%

Participation

8%

Total

100%

 

The scale for the term will be:

Percentage

Letter

97 or above

A+

93-96

A

90-92

A-

87-99

B+

83-86

B

80-82

B-

77-79

C+

73-76

C

70-72

C-

67-69

D+

63-66

D

60-62

D-

less than 60

F

 

 

Disability Resources and Services:

 

If you have a disability for which you are requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 216 William Pitt Union, (412) 648-7890, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.


Term Schedule: The daily topics are subject to change depending on our pace.  They are there to assist you in the readings so you can focus on those concepts prior to class.

 

 

 

 

Week 1 – (5/10 & 5/12)

Readings for this week: JBD 1

 

Project 1 Assigned – Tuesday 5/10

 

Topics:

  • Introduction to the course; computers and the internet
  • Using the lab and recitations
  • Introduction to problem solving
  • Compiling and running programs
  • Algorithms

 

 

Week 2 – (5/17 & 5/19)

Readings for this week: JBD 2.1-2.8

 

Project 1 Due – Tuesday 5/17

No class Thursday 5/19 – Out of Town

 

Topics:

  • Keywords, comments
  • Primitive types, identifiers, variables, expressions, operators,
  • User input
  • Strings
  • Predefined methods

 

 

Week 3 – (5/24 & 5/26)

Readings for this week: JBD 2.9-2.14, Appendix A1

 

Project 2 Assigned – Tuesday 5/24

 

Topics:

  • Numeric types, Characters, Arithmetic expressions
  • Type conversion
  • Assignment, Increment/decrement
  • Operator precedence

 

 

Week 4 – (5/31 & 6/2)

Readings for this week: JBD 3.1-3.3

 

Project 2 Due – Thursday 6/9

Project 3 Assigned – Thursday 6/9

 

Topics:

  • More expressions
  • Blocks, empty statement,
  • Boolean expressions, relational operators, logical operators
  • Conditional statements

 

Week 5 – (6/7 & 6/9)

Readings for this week: 3.4-3.10

 

Topics:

  • Advanced conditionals
  • Introduction to repetition
  • While, for, Break/continue, switch
  • Problem-solving strategies
  • Style, more applets
  • text fields, labels

 

Week 6 – (6/14 & 6/16)

Readings for this week: 4.1 - 4.5

 

Project 3 Due – Tuesday 6/14

Midterm Exam – Thursday 6/16

 

Topics:

  • Introduction to methods & structured programming
  • Calling/defining methods
  • Review for the midterm

 

Week 7 – (6/21 & 6/23)

Readings for this week: 4.6 - 4.10

 

Project 4 Assigned – Tuesday 6/21

 

Topics:

  • Return types
  • Details of parameter passing, Call-by-value
  • Recursion
  • Parameters, Scope
  • Top-down design

Week 8 – (6/28 & 6/30)

Readings for this week: 4.11 - 4.13

 

Project 4 Due – Thursday 6/30

 

Topics:

  • mathematical functions
  • overloading
  • style
  • javadoc comments

 

Week 9 – (7/5 & 7/7)

Readings for this week: 5.1 - 5.6

 

Project 5 Assigned – Tuesday 7/5

 

Topics:

  • Introduction to arrays: declaring, initializing, accessing, length
  • Passing to methods
  • Finding min/max, Searching, Simple sorting
  • Searching sorted arrays

 

Week 10 – (7/12 & 7/14)

Readings for this week: 5.7 - 5.12, 10.1 - 10.5

 

Project 5 Due – Thursday 7/14

Project 6 Assigned – Thursday 7/14

 

Topics:

  • Big-oh notation
  • Boolean arrays, char arrays
  • 2-dimensional arrays initializing, arrays of nonprimitive types
  • Introduction to files
  • Creating text files, Reading text files

 

Week 11 – (7/19 & 7/21)

Readings for this week: 10.6 - 10.8, 8.1 - 8.3

 

Topics:

  • Encrypting/decrypting text
  • Binary files
  • Detecting end-of-file
  • Introduction to GUIs (Swing), Buttons
  • Text/numerical input, Events

 

Week 12 – (7/26 & 7/28)

Readings for this week:  None

 

Project 6 Due – Tuesday 7/26

Final Exam – Thursday 7/28 During Class

 

Topics:

  • Drawing revisited
  • Components
  • Layout managers
  • Review for the final