This module focuses on variables in programming, exploring data types, syntax, and operations. Students learn about invoking methods on objects, graphics coordinates, and manipulating geometrical objects, gaining a solid grasp of variable usage in Java.
This module introduces students to the course framework, covering class logistics, staff introductions, and the rationale behind the course's name. Students learn about grading, assignments, extensions, and the honor code. Additionally, they explore Karel, a teaching tool, to ease into programming concepts.
This module dives into Karel programming, teaching commands, algorithms, and the syntax required to run Karel programs. Students learn how to create methods, utilize loops, and implement conditions, culminating in a comprehensive understanding of Karel's functionalities.
In this module, the relationship between Karel and Java is explored. Students identify common errors, learn about comments and pre-conditions, and understand the importance of decomposition in programming. Practical examples demonstrate good software engineering practices.
This module covers the history of computing, differentiating between computer science and programming. Students learn about the compilation process, Java's object-oriented nature, and foundational programming concepts through practical examples, solidifying their understanding of Java's environment.
This module discusses the loop and a half problem, comparing for and while loops. Practical examples like the CheckerBoard program illustrate the use of methods in Java, highlighting the importance of returning objects and effective program structure.
This module emphasizes information hiding as a key concept in programming. Students learn about void return types, parameter passing, and the differences between instance and local variables, with practical examples like the RandomGenerator and RollDice programs.
This module introduces strings, covering their manipulation, visibility rules, and the creation of classes in Java. Students learn about constructors, variable shadowing, and the significance of using 'this' in programming. Practical examples demonstrate how to implement these concepts.
This module delves into the importance of private variables in programming. Students learn about extending classes, method overriding, and the use of interfaces. Practical examples, including the BouncingBall program, emphasize the relevance of private variables in Java.
This module introduces the GImage class and its related classes, exploring event-driven programming concepts. Students learn to respond to mouse and keyboard events through practical examples, enhancing their understanding of interactivity in Java.
This module covers enumeration and character manipulation in Java, focusing on the ASCII subset and character math. Students learn about string processing and utilizing the Character class, enhancing their skills in handling text.
This module focuses on string processing techniques, including tokenization and encryption. Students learn various methods to manipulate strings effectively, fostering a deeper understanding of data handling in programming.
This module reviews pointers and their significance in Java, covering concepts like 'call by reference' and wrapper classes for primitive types. Students learn about file handling, including opening, reading, and writing files, alongside exception handling.
This module explores multi-dimensional arrays, their structure, and practical applications. Students learn about the ArrayList class and methods related to it, with examples demonstrating effective use in programming scenarios.
This module wraps up the topic of multi-dimensional arrays, comparing ArrayLists and arrays. Students learn debugging approaches and how to effectively use the debugger in Eclipse, reinforcing their programming skills.
This module delves into interfaces in Java, explaining their implementation and related concepts like maps and the HashMap class. Students learn about the collection hierarchy, iterators, and gain practical experience through examples.
This module reviews interactors and listeners in Java GUI programming. Students engage with example programs, learning about event handling and layout management, which are essential for creating responsive interfaces.
This module provides an overview of the NameSurfer assignment, discussing component creation and containers in GUI applications. Students learn to implement listeners and extend programs, culminating in practical examples.
This module explores searching and sorting algorithms, teaching students about linear and binary search methods, including efficiency comparisons. Students learn about selection sort and radix sort algorithms, understanding their applications in programming.
This module discusses principles of good software engineering, particularly for managing large datasets. Students learn design principles, explore the collection hierarchy, and analyze real-world examples like FlyTunes, focusing on class definition and data structures.
This module defines key concepts for constructing a social network, including concurrency and threading in Java. Students learn about the Runnable interface and practical examples demonstrating shared data management between threads.
This module introduces the standard Java libraries, explaining JAR files and applet creation. Students learn how to utilize standard libraries without relying on ACM resources, gaining insights into additional Java learning resources.
This module discusses life after Programming Methodology, exploring potential pathways in computer science and other majors. Students receive guidance on career prospects and academic opportunities beyond this foundational course.
This module showcases the Graphics Contest winners, highlighting the creativity and technical skills demonstrated. A review session prepares students for the final exam, including example questions that reinforce learning from the course.