Course Description
This course introduces advanced Computer Science topics, focusing on C++ and Java. Topics include Object-Oriented Programming, pointers, memory management, file I/O, Heap vs Stack, deep and shallow copy, and data structures. Java topics cover OOP, inheritance vs composition, abstraction, interfaces, polymorphism, GUI, and App development.
Instructor: Yuni Xia (yuxia@iu.edu)
Office Hours: Tuesday and Thursday, 1:00 - 2:30pm, IT323
Lab Sessions: View Lab Sessions
Textbooks: Essential C, C++ Programming, Introduction to Java, Data Structures and Algorithms in Python
Grading Policy: Assignments 30%, Final Project 20%, Midterm 20%, Final Exam 20%, Attendance 10%
Class Schedule and Topics - Fall 2023
- Week 1: Introduction to C++ Programming
- Week 2: C++ Standard Template Library, Functions
- Week 3: C++ Type casting, exception handling, and templates
- Week 4: C++ References, pointers, memory management, and file I/O
- Week 5: C++ Object Oriented Programming, Header Files, UML Diagrams, Makefiles
- Week 6: C++ Composition, Heap vs Stack, Deep and Shallow Copy
- Week 7: Midterm Preperation
- Week 8: Introduction to Java
- Week 9: Java OOP, inheritance vs composition, File IO
- Week 10: Java Data Types, maps, pairs, wrapper classes
- Week 11: Java Abstraction, interfaces, polymorphism
- Week 12 & 13: Introduction to datastructures: array, linked list, stack, queue, tree
- Week 14: Introduction to GUI, App development
- Week 15: Final Project Presentations
- Week 16: Final Exam
Course Materials and Communications
All class information, including lecture notes, videos, and assignments, will be available on Canvas.
Homework and Exams
Assignments are due on the indicated dates. No late submissions accepted. Exams will be announced in class, with no make-up exams provided.
Welcome to the CSCI 240 Knowledge Repository. Explore visualizations of data structures and algorithms or browse through our notes.