Course Syllabus

Computer Science 111 and 111L - 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.

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 – 110 points, D – 90 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:





Please be sure to avoid scheduling conflicts with these dates.

CS111 Lab Grading

6 Programming projects, 30 points each, 180 points total

Class Participation 20 points

Needed Point Totals: A – 175 points, B – 150 points, C – 110 points, D – 90 points

Please check the CS 111 Web Page each week for:

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