OIM3600 - Computer Science for Business Students

contain

Agenda

  • Introducing yourself
  • Introduction to the course
    • What is this course about?
    • How to Learn CS and Programming?
  • Code Representations
  • Hardware
OIM3600

Welcome! How are you doing?

Please introduce yourself, including:

  • Who are you? Where did you come from?
  • Which year are you in? What’s your best moment at Babson so far?
  • What is your concentration? Are you going to rule the world with that?
  • Why did you decide to take this class?
  • Do you have any programming experience?
  • How was your summer? Did you do anything exciting or just binge on Netflix?
  • How can we remember you? Tell a fun fact or a boring fact about yourself.
OIM3600

About Me

  • Instructor: Zhi Li (李直)
  • Email: zli@babson.edu
  • Office Hours (Babson Hall 216D):
    • Monday: 11:45AM - 12:45PM
    • Wednesday: 5:00PM - 6:00PM
    • Online via Webex: by appointment
    • Read: What are office hours?
  • I will send an email after each class, including:
    • Summary of the class
    • Exercise/Homework Due
    • Recommendations
OIM3600

A Quick Survey (https://pollev.com/zli101)

  1. What programming languages have you used or heard of?
  2. What text editors or IDEs have you used for coding?
  3. Have you used Git/GitHub before?
  4. Have you created any websites before?
  5. How often do you use ChatGPT (or other AI tools) for learning purposes?
  6. What aspect(s) of computer science or programming do you find mysterious or intriguing?
OIM3600

What is this course about?

OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600
OIM3600

Learn how to program in C

OIM3600

Learn how to program in Python

OIM3600

Learn how to program in SQL

OIM3600

Learn how to program in JavaScript

OIM3600

Learn how to program in any language

OIM3600

Learn how to program

OIM3600

Learn how to solve problems

OIM3600

Learn how to write algorithms

OIM3600

Learn how to write code

OIM3600

What ultimately matters in this course is not so much where you end up relative to your classmates, but where you end up relative to yourself when you begin.

OIM3600

Syllabus

  • Course Description and Learning Objectives
  • Exercises / Assignments
  • Term Project
  • Grading
  • Course Policies
OIM3600

What is Computer Science?

OIM3600

Computer Science Areas of Study

  • Mathematics: Discrete mathematics, Computing theories, and math foundations.
  • Systems: OS, Compilers, Distributed Systems, Embedded Systems, IoT, ...
  • Programming: Data Structures, Algorithms, Paradigms, Languages, ...
  • Network: Network Protocols, Cloud Computing, Cybersecurity, ...
  • Software Engineering: Analysis, Design, Development, Testing, Lifecycle, ...
  • Data: Databases, Data Science, Data Mining, Big Data Analytics, ...
  • AI: Machine Learning, Deep Learning, AI Applications, ...
  • Computer Graphics
  • HCI (Human-Computer Interaction)
  • CS+X: Biology, Chemistry, Finance, Business, Linguistics, ...
OIM3600
OIM3600

How to Learn CS and Programming?

OIM3600

Programming is hard.

DO NOT take the “couch potato” approach

Practice!

Practice!

Practice!

DO NOT copy and paste!

OIM3600

Ask Questions

Ask Questions the Smart Way

DO NOT panic!

  • Almost everyone hits a rough patch in the course at some point.
  • Don't let it discourage you.
  • It's normal!
OIM3600

What if you got "stuck"

  • Take a break
  • Break the problem down
  • Keep trying
  • Debug
  • Ask for help
OIM3600

More on Learning to Code

  • People who are new to programming don’t know what it’s like to be a programmer or take a programming course.
  • Having unrealistic expectations, such as expecting things to work perfectly the first time, can easily lead to disappointment.
    • It's important not to give up at the first sign of an error.
  • Expect:
    • to spend hours, entire nights, even days getting things to work
    • to learn a lot by yourself.
  • The real learning happens when you encounter obstacles and overcome them.
  • Avoid relying on spoon-fed answers, as it can lead to weaker problem-solving skills in the long run.
OIM3600

How to Cheat without Being Caught

  • Cheating Tips:
    • Do not submit code that has a matching md5sum as your friend's code.
    • Don't share your code with others if it is supposed to be individual work.
    • Changing comments or spaces won’t save you - tokenization catches all.
    • Renaming variables or copying parts of code? Still detectable.
    • Using code from the internet or GenAI? A big no-no for beginners.
  • If you still decide to cheat, the only way to cheat safely is to actually do the work and learn something!
OIM3600

Generative AI Policy

  • AI tools like ChatGPT and Copilot can be helpful, but they are also a shortcut that prevents you from learning.
  • You may use them for generating ideas, explaining concepts, clarifying error messages, or reviewing code you've already written.
    • Be sure to acknowledge and cite any AI tools used, including the tool name and the output provided.
  • Using GenAI tools directly for exercises, homework assignments, quizzes, or similar tasks is considered an academic integrity violation.
OIM3600

Collaboration Policy

  • For final projects and other specified group projects, you may work in a team and submit a single, joint assignment.
    • It's important to review and follow the guidelines as it may vary per project.
    • You also have the option to work independently.
  • Forming study groups is encouraged.
    • However, for group work, share code only with your assigned partner.
    • For individual work, sharing code with anyone is prohibited.
  • To truly learn, make sure you independently write your own code.
  • Any violation of this policy will be addressed under the school's academic misconduct rules and may result in course failure
OIM3600
OIM3600

https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html