COMS W1004: Introduction to Computer Science and Programming in Java

From the directory of courses: "A general introduction to computer science for science and engineering students interested in majoring in computer science or engineering. Covers fundamental concepts of computer science, algorithmic problem-solving capabilities, and introductory Java programming skills"

The course is exactly as described above and more. While enrolled you will learn how to program in the Java programming language but I hope that is not all you will learn from this course. Computer Science opens your mind to a different way of thinking and I hope you learn to utlitize this new way of thinking and bring it with you going forward.

Going forward it is important to understand that this website, for the most part, has been constructed solely for fun and you SHOULD NOT use this site as a substitute for courseworks, doing so will not end well for you most likely and I assume no responsibility for the choices you make moving forward. That being said, this site will be used to host any resources developed by myself. When I first started doing this job for Professor Cannon all of my resources lived solely on courseworks. After the second iteration of the course, I made a GitHub repository to store all the resources and pointed everyone to that. The problem with that is a lot of people do not totally understand how to navigate a repository, so this site is the abstraction that resulted from that.

The attached notes in the schedule below are based off the Spring 2023 lectures, so there may be some extra content that is not necessary or some information may be missing. It is YOUR job to determine this information for yourself, these notes are NOT a substitute for going to lecture. That being said, students have always found an alternative explanation helpful. It is also important to note all resources hosted are the originals made by me, there may be some files on courseworks that have made some modifications from the originals, I believe in the originals so they shall stay as such.

Date Lecture Notes Due
Tue Jan 16 Introduction and Preliminary Definitions
Thur Jan 18 Algorithmic Problem Solving I Week 1 Notes
Tue Jan 23 Algorithmic Problem Solving II
Thur Jan 25 Introduction to Codio and Java Fundamentals I Week 2 Notes
Fri Jan 26 No Lecture; Homework Due HW 1
Tue Jan 30 Java Fundamentals II: Iteration and Conditionals
Thur Feb 1 Object Oriented Programming I: Writing and Using Classes Week 3 Notes
Fri Feb 2 No Lecture; Homework Due HW 2
Tue Feb 6 Young Alumni Panel
Thur Feb 8 Object Oriented Programming II: Using Classes, the String Class Week 4 Notes
Fri Feb 9 No Lecture; Homework Due HW 3
Tue Feb 13 Java Fundamentals III: More on the String Class
Thur Feb 15 Object Oriented Programming III: More on Classes Week 5 Notes
Fri Feb 16 No Lecture; Homework Due HW 4
Tue Feb 20 Why what we learned Matters I
Thur Feb 22 Midterm 1 Practice
Tue Feb 27 Class Design: Top Down Design
Thur Feb 29 Object Oriented Programming IV: Even More Use of Classes Week 7 Notes
Fri Mar 1 No Lecture; Homework Due HW 5
Tue Mar 5 Java Fundamentals IV: Arrays and ArrayLists
Thur Mar 7 Java Fundamentals V: Using Arrays and ArrayLists Week 8 Notes
Fri Mar 8 No Lecture; Homework Due HW 6
Tue Mar 12 - Thur Mar 14 Spring Break
Tue Mar 19 Java Fundamentals VI: Using Arrays and ArrayLists
Thur Mar 21 Putting it all Together Week 9 Notes
Fri Mar 22 No Lecture; Homework Due HW 7
Tue Mar 26 Java Fundamentals VII: File Reading and Exceptions
Thur Mar 28 Java Fundamentals VIII: File Reading and Exceptions Continued Week 10 Notes
Fri Mar 29 No Lecture; Homework Due HW 8
Tue Apr 2 Object Oriented Programming V: Inheritance
Thur Apr 4 Object Oriented Programming VI: Polymorphism Week 11 Notes
Fri Apr 5 No Lecture; Homework Due HW 9
Tue Apr 9 Why what we learn Matters II Week 12 Notes
Thur Apr 11 Midterm II Practice
Tue Apr 16 Java Fundamentals IX: Recursion
Thur Apr 18 Java Fundamentals X: Recursion II + Javadoc Week 13 Notes
Fri Apr 19 No Lecture; Homework Due HW 10
Tue Apr 23 Software Development Fundamentals I: Testing: Open Box & Closed Box
Thur Apr 25 Final Exam Overview Week 14 Notes
Fri Apr 26 No Lecture; Homework Due HW 11
CANCELED Final Exam Practice