Computer Language (Spring 2025)
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
- Understanding Programming Constructs: Develop a deep understanding of Java programming constructs, including syntax, semantics, control structures, and object-oriented principles.
- Problem-Solving Skills: Enhance problem-solving abilities by applying programming knowledge to design and implement software solutions.
- Critical Thinking in Code Analysis: Cultivate the ability to trace, analyze, and evaluate code for correctness, efficiency, and maintainability.
- Software Design and Development: Learn to create modular, reusable, and maintainable software using object-oriented programming (OOP) principles.
- 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)
- Remember: Identify Java syntax and semantics, including variables, methods, and control structures.
- Understand: Explain how Java constructs (e.g., loops, conditional statements) influence program behavior.
- Analyze: Decompose complex programs into components to determine their functionality and relationships.
- Evaluate: Assess existing code for readability, correctness, and adherence to OOP principles.
Producing Code (Writing)
- Apply: Implement basic Java programs using variables, methods, control structures, and OOP concepts.
- 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 | - |