Course Syllabus

Computer Science 111 - Introduction to Algorithms and Programming: Java

Course Description: This course is an introduction to algorithms, their representation, design, structuring, analysis and optimization. It requires implementation of algorithms as structured programs in a high level language. This course will use Java and students will be expected to write and execute Java programs in the lab section.

Please check the CS 111 Web Page each week for:

Required Text:

Grading: Grading will be based on the following breakdown:

Homework 20% 40 points

Quiz 1 10% 20 points

Midterm 20% 40 points

Quiz 2 10% 20 points

Final 30% 60 points

Participation 10% 20 points

Needed Point Totals: A 175 points, B 150 points, C 120 points, D 100 points

NO, NO, NO Laptops, cell phones or Ipod/MP3 players are to be used during class lectures. Laptops may ONLY be used during lab time. Surfing the Internet during class time is reserved for class related web sites. EBay, chat rooms, sports sites and other non class related surfing is strictly prohibited. Violations of these rules may result in a penalty reduction of points.

Important Dates:

Day: Evening:
Day: Evening:
Day: Evening:
Day: Evening:
Please be sure to avoid scheduling conflicts with these dates.

Lab Grading (Prof. Ferguson Only): Grading will be based on the following breakdown:

6 Programming projects 90% 30 points each 180 point total

Participation 10% 20 points

Needed Point Totals: A 175 points, B 150 points, C 120 points, D 100 points

Student Learning Outcomes:
Evaluate the basic concepts of computer programming and analyse their impact on algorithms, problem solving and program implementation.

Course Outline

  1. What is a computer, Binary Representation of Information, Programming Languages, Java, Java Byte Code, Java Virtual Machine, First Java Program Reading Assignment - Chapter 1
  2. Java Language Elements, Variables and data types, Strings, Syntax and Semantics, Programming Errors, Debugging Reading Assignment - Chapter 2
  3. Control Statements (Selections), if, if-else, switch, Relational and logic operators, Precedence and Associativity Reading Assignment - Chapter 3
  4. Loops: while, do-while, for, break and continue Reading Assignment - Chapter 4
  5. Methods (aka functions, procedures, subroutines), Parameters (pass by value), Scope, Lifetime, Overloading Reading Assignment - Chapter 5
  6. Arrays, Looping through arrays, search algorithms, Sort algorithms, Array parameters (pass by reference), 2-D and higher arrays Reading Assignment - Chapter 6 (some 7)
  7. Classes and Objects, Building a class, Using objects, Static variables and methods, Constructors, Reference variables, Visibility modifiers Reading Assignment - Chapter 8
  8. Strings and File I/O, String classes, Open and read/write text files, Intro to exception handling Reading Assignment - Chapters 9 and 14
  9. Inheritance, Class hierarchy, Constructors, Private-Protected-Public, Polymorphism Reading Assignment - Chapters 10 and 11
  10. Abstract classes, Interfaces, Object Oriented Design and Patterns Reading Assignment - Chapter 15
  11. Applets, Swing, AWT, Exception Handling, Event Drivien and GUI programming Reading Assignment - Parts of Chapters 12, 13, 14, 16, 17 and 18
  12. Recursion, recursive algorithms, Complexity analysis, Binary search algorithm Reading Assignment - Chapter 20