0% found this document useful (0 votes)
14 views16 pages

Lecture 0

The document outlines the CS2110 course on object-oriented programming and data structures, emphasizing principles of programming, algorithm analysis, and data structures. It details course requirements, grading policies, and resources, while encouraging students to engage actively and seek help when needed. The course is designed for students with some programming experience, regardless of their familiarity with Java.

Uploaded by

dhhadda249
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views16 pages

Lecture 0

The document outlines the CS2110 course on object-oriented programming and data structures, emphasizing principles of programming, algorithm analysis, and data structures. It details course requirements, grading policies, and resources, while encouraging students to engage actively and seek help when needed. The course is designed for students with some programming experience, regardless of their familiarity with Java.

Uploaded by

dhhadda249
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1

Object-oriented programming
and data-structures
Natacha Crooks

CS/ENGRD 2110
SUMMER 2018
Lecture 0: Overview
http://courses.cs.cornell.edu/cs2110/2018su
CS2110 (ENGRD 2110)
2

◻ Object-oriented Programming Principles


⬜ Reasoning about complex problems
◻ Algorithmic Principles
⬜ Algorithmic complexity, analysing algorithms

◻ Data structures
⬜ Linked lists, trees, hash tables, graphs, etc.
◻ Good programming practices
⬜ Testing tools, coding styles
Is CS2110 right for you?
3

◻ Knowledge of Java not required


⬜ Only ~30% of you know Java –others know Matlab, Python …
⬜ Requirement: comfort with some programming language, on the level of
CS1110 (Python based) and CS1112 (Matlab based).
Prior knowledge of OO not required.
⬜ We assume you do not know Java!
⬜ If you know Java, the first 3 weeks will be easier for you but you STILL
have to learn things, probably unlearn what you learned
Course Staff
4

Instructor Natacha Crooks


CS Undergrad -> Cambridge (UK)
PhD Student -> Cornell U. & UT Austin
Research Interests ->
Distributed Systems/ Databases

Teaching Assistants
Chris Mulvaney (Sophomore, ChemEng Major )
Juliet Zhong (Sophomore CS Major )
Hyun Kyo Jung (Junior CS Major )
Lectures and Office Hours
◻ TR 10:00-11.15 am, (in Hollister Hall 110)
⬜ Attendance mandatory
⬜ Send me an email if you can’t make it
⬜ Please ask questions!

◻ Office Hours ( in G13)


⬜ Natacha (nsc36) Every day 12-13
⬜ Hyun (hj283) Mon, Thur: 7-8pm
⬜ Juliet (lz246): Fri: 9-10 am
⬜ Chris (cmm435): Wed: 6-7pm
⬜ Avoid emails, come to OH -> we want to meet you!
Coursework
6

◻ 5-6 programming assignments (40 %)


◻ Final exam (30 %)
◻ Mid-class quiz (10 %)
◻ Daily Homeworks (14 %)
◻ Class Participation (5 %)
◻ Course evaluation (1 %)

Formula will change as course progresses and we make changes


in assignments, give quizzes, etc.
A word of warning!
7

◻ This is not a regular format for a class.

◻ Pace is intense. Don’t fall behind!

◻ Review and revise material every day!

◻ Strong support network. Ask for help early if you are struggling.
Rough Schedule
8

◻ Assignments Due on Wednesday 10 AM.


⬜ Released 1 week before.

◻ Short daily homeworks. Due next day 10 AM.


⬜ Help you learn the course as you go along
⬜ Warn us if you fall behind.
⬜ You will almost always get full credit. Don’t worry.
Course Websites
9

◻ CMS
⬜ Assignments & homeworks posted there.
⬜ Assignments must be submitted to CMS

◻ Piazza
⬜ Ask questions! Clarify misunderstandings
⬜ Students, TAs, Instructor will reply.
⬜ Post anonymously if necessary

◻ Should have received links to both. See me after class if not.


Assignments & Homeworks
10

◻ Assignments
⬜ 5-6 total. Teams of 2. Finding a partner: choose your own or contact your
TA. Piazza can be helpful.
⬜ Released once a week. Do not leave the assignment until the last
minute. Work on it a little every day!

◻ Homeworks
⬜ Daily and alone. To help you check that you understand the material.

◻ Grading policy: 3 points the first day, 4 the second, and 5 each day
thereafter
Academic Integrity… Trust but verify!
11

◻ 98% of you are honest and don’t try to cheat.

◻ We use artificial intelligence tools to check each homework assignment, so


catch the other 2%
⬜ Software is accurate! Tests your code and notices similarities between code
written by different people

◻ Sure, you can fool this software


⬜ … but it’s easier to just do the assignments and if you try to fool it and screw
up, you might fail the assignment or even the whole course

◻ If in doubt ASK!
Java Resources
12

◻ JavaHyperText.
⬜ Curated by Prof. Gries. Contains tutorials and explanations on most topics
in course.
⬜ http://www.cs.cornell.edu/courses/JavaAndDS/

◻ Java Documentation
⬜ online materials at Oracle JDK web site
⬜ https://docs.oracle.com/javase/8/
⬜ Tutorial (my favourite): https://docs.oracle.com/javase/tutorial/java/

◻ Textbooks
⬜ No Mandatory Textbooks
⬜ Thinking in Java 3rd Edition is quite good.
Obtaining Java and Eclipse
13

◻ Follow instructions on our Resources web page


⬜ Make sure you have Java JDK 1.8, if not download and install. We
explain how on the web page.
⬜ Then download and install the Eclipse IDE

◻ Test it out: launch Eclipse and click “new>Java Project”


⬜ This is one of a few ways Java can be used
⬜ When program runs, output is visible
in a little console window
Homework 0
14

◻ Come to one of my office hours this week to introduce yourself and say Hi.

◻ Rest of homework released on CMS.

◻ Install and run your first program in Eclipse.

◻ Due before tomorrow’s class 10 AM


Rough Course Outline
15

◻ First Week: Java Fundamentals and Object-Oriented Principles.

◻ Second Week: Testing and advanced Java features

◻ Third Week: Algorithmic Complexity & Analysis

◻ Fourth/Fifth Week: Data-structures (Linked Lists, Heaps, Trees, Graphs)

◻ Sixth Week: Concurrency & Security


Look out in slides for
16

◻ Principles
⬜ These principles hold independently of the language.

◻ Java Features
⬜ Java-specific functionality that are useful to know

◻ Good Programming Principles


⬜ Conventions, and habits to start acquiring early!

You might also like