Course Syllabus

Fall 2017 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.

When and Where:​Lecture FS 9:30-10:50 AM, HSLH­133

Please check canvas each week for:

  • Weekly lecture notes
  • Online Coursework

Instructor: Urvashi Juneja

Office Hours: Every Friday 9:00 – 9:30 AM HSLH first floor by the fountain or by appointment.


Required Textbook: Introduction to Java Programming, brief version, 10th edition. Author: Liang ISBN: 978­0­13­359220­7

CMPSCI111 Grading:

In class Quizzes - 25%

Midterm - 25% 

Online Coursework - 10%

Final - 40%

The following grading scale will be used where class participation will resolve borderline cases:

90% - 100% A

80% - 89% B

70% - 79% C

60% - 69% D

< 60% F

Please check dates below for tests:

NO, NO, NO Laptops, cell phones or IPod/MP3 players are to be used during class lectures. Surfing the Internet during class time is reserved for class related web sites. Other non-class related surfing is strictly prohibited. Violations of these rules may result in a penalty reduction of points.

Student Learning Outcomes:

Evaluate the basic concepts of computer programming and analyze 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. Selections (Control Statements), 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 5
  5. Methods (aka functions, procedures, subroutines), Parameters (pass by value), Scope, Lifetime, Overloading Reading Assignment - Chapter 6
  6. Arrays, Looping through arrays, search algorithms, Sort algorithms, Array parameters (pass by reference), 2-D and higher arrays Reading Assignment - Chapter 7 (some 8)
  7. Classes and Objects, Building a class, Using objects, Static variables and methods, Constructors, Reference variables, Visibility modifiers Reading Assignment - Chapter 9
  8. Strings and File I/O, String classes, Open and read/write text files, Intro to exception handling Reading Assignment - Chapters 4 and 12
  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 13
  11. Exception Handling - Parts of Chapters 12, 14, 15, and 16
  12. Recursion, recursive algorithms, Complexity analysis, Binary search algorithm Reading Assignment - Chap. 18


Course Summary:

Date Details Due