Computer Language (Spring 2025)

Author

Josue Obregon

Computer Language

Course Outline

In this module, students will gain a comprehensive introduction to Java programming, focusing on both foundational and advanced aspects of software development. The course begins with an introduction to computer programming concepts, including input/output operations, variables, calculations, and conditional statements. It progresses to advanced programming constructs such as loops, methods, debugging, and working with lists, arrays, and strings. Students will then delve into object-oriented programming (OOP), exploring core principles, deeper concepts, and practical applications. Topics include inheritance, interfaces, class diagrams, packages, and exception handling. The course emphasizes problem-solving and critical thinking, preparing students to design, analyze, and implement robust software solutions.

Through hands-on projects and a final assessment, students will apply their learning to develop well-structured Java programs. By the end of the semester, students will have a strong foundation in Java programming principles, tools, and workflows, equipping them for real-world software development tasks.

General Course Objectives

  1. Understanding Programming Constructs: Develop a deep understanding of Java programming constructs, including syntax, semantics, control structures, and object-oriented principles.
  2. Problem-Solving Skills: Enhance problem-solving abilities by applying programming knowledge to design and implement software solutions.
  3. Critical Thinking in Code Analysis: Cultivate the ability to trace, analyze, and evaluate code for correctness, efficiency, and maintainability.
  4. Software Design and Development: Learn to create modular, reusable, and maintainable software using object-oriented programming (OOP) principles.
  5. Practical Application: Apply learned concepts in a complex project that mimics real-world programming tasks.

Educational Objectives

By the end of this course, students will be able to:

Interpreting Code (Reading)

  1. Remember: Identify Java syntax and semantics, including variables, methods, and control structures.
  2. Understand: Explain how Java constructs (e.g., loops, conditional statements) influence program behavior.
  3. Analyze: Decompose complex programs into components to determine their functionality and relationships.
  4. Evaluate: Assess existing code for readability, correctness, and adherence to OOP principles.

Producing Code (Writing)

  1. Apply: Implement basic Java programs using variables, methods, control structures, and OOP concepts.
  2. Create: Design, implement, and debug a Java application that demonstrates modularity, inheritance, polymorphism, and encapsulation.

Course Calendar

Here you can find all the dates and times for lectures, assignments, readings, and so on. Below is the general calendar for the class. Please keep in mind that it might slightly vary every semester.

  • You are expected to finish readings before class. They are chosen and designed to enhance lecture topics and learning.
Week Topic Slides Readings
1 Introduction to Programming and Java Slides
2 Reading input and Strings Slides
3 Variables and calculation with numbers Slides Part1
Slides Part2
4 Conditional statements Slides
5 Repeating functionality Slides
6 Methods Slides 1
Slides 2
7 Lists Slides
8 Midterm -
9 Arrays and Strings Slides Part1
Slides Part2
10 Object-Oriented Programming Slides - Head First Java, Chapter 2
11 Object-Oriented Programming II Slides Part1
Slides Part2
- Programming paradigms
12 Inheritance Slides Part1
Slides Part2
- Primitive and reference variables
- Objects and References
- Similarity of Objects
13 Interfaces Slides - Class diagrams
14 Presentation and Review of Final Project -
15 Final examination -