Principles of Programming

I am teaching Principles of Programming (CSE110) this Summer (2020). I have taught this course for three years –Summer 2020, Summer 2019, Summer 2018, and Summer 2017.

CSE110 is an introductory course to programming using the Java programming language. It requires no previous background in programming and concentrates on problem solving using Java, algorithm design, structured programming, fundamental algorithms and techniques, and computer systems concepts.

Syllabus

version Summer 2018

Lectures

This course includes 31 lectures and the following topics are covered: classes, methods, and variables; data types; math class; input and formatted output; if statement; nested if-else; switch statement and operator ?; while loop; for loop; object-oriented programming; classes and objects; methods; methods: constructor, toString, getter, and setter; keywords null and this; arrays; references: parameters and arrays of objects; arrays as parameters; searching algorithms; searching and sorting; sorting; searching and sorting in arrays of objects; 2D arrays; multidimensional arrays; and recursion.

My slides for each lecture are available below:

  1. Course Presentation
  2. Introduction to Java
  3. Classes, Methods, and Variables
  4. Primitive Data Types
  5. Primitive Data Types
  6. Math Class
  7. Input and Formatted Output
  8. Conditional Statements
  9. Nested if-else Statements
  10. switch Statement and Operator ?
  11. First Midterm Review
  12. Loops: while and do/while Statements
  13. Loops: for Statements
  14. Loops and Conditional Statements
  15. Object-Oriented Programming
  16. Classes and Objects
  17. Methods
  18. Second Midterm Review
  19. Methods: constructor, getter, and setter
  20. toString method, null, and this
  21. Practice
  22. Arrays
  23. Arrays II
  24. References
  25. References as Parameters
  26. Recursion
  27. Searching Algorithms
  28. Sorting
  29. Bidimensional Arrays
  30. Multidimensional Arrays
  31. Final Review