Introduction to Scientific Computing and Problem Solving

Welcome to CS4, Introduction to Scientific Computing and Problem Solving . CS4 provides an introduction to using computers to solve STEM (Science, Technology, Engineering, and Mathematics) data analysis, visualization, simulation, and numerical analysis problems. The course begins with an introduction to the basics of programming, accompanied by several applications of fundamental coding elements and concepts. As we do this we will explore some of the breadth of Computer Science as a discipline. The first part of the course (which runs until Spring Break) will be taught in Python. Following this, we will explore more specialized topics related to scientific computing and mathematics that will allow students to access and analyze a number of "real world" problems. The later portion of the course will be taught in MATLAB.

Requirements: No prior programming experience is required to take this course (Python and MATLAB are easy and fun to use!). A calculus course (perhaps in high school) is highly recommended.

If you have any feedback about assignments or the course in general, please fill out the Anonymous Feedback Form to let the course staff know. If you have any academic/SEAS accommodations that we should be aware of, please fill out this form so that the course staff can best support you. We understand that being a student can be stressful and that certain circumstances can affect your performance in the course. Please refer to the syllabus for more information about receiving academic support for CS0040 or email the HTAs or Prof. Gaudette for more information regarding accommodations. You can also find some resources the CS department has compiled for students here and a helpful message from your TAs here

COURSE DOCUMENTS

Quick links, working from home, how do ta hours work, diversity and inclusion goals.

introduction to problem solving in computer science pdf

Jason Gaudette (jegaudet)

Team: Puppies

Welcome to CS4! I am happy to be your instructor this semester. As a research engineer with loads of real-world experience in scientific computing, my goal is to teach you the art and joy of the field. Outside of my main job, I coach kids in FIRST LEGO robotics, volunteer for the IEEE, teach programming and electronics courses, sail a Hobie Cat, and run with my dog Luna."

E-mail us at [email protected] if you have administrative or private questions.

introduction to problem solving in computer science pdf

Griffin Kao (gk16)

Team: Babies

Hi there, I’m a junior from Philadelphia studying computer science and engineering. A fun fact about me is that Kobe Bryant went to my high school!

introduction to problem solving in computer science pdf

Hersh Gupta (hgupta1)

Hey everybody! My name is Hersh and I’m a junior concentrating in chemistry and computational biology. I’m a big sports fan and love going on Netflix binges but never actually finishing the show.

introduction to problem solving in computer science pdf

Joy Bestourous (jbestour)

Hi hello! I'm a junior studying computer science while filling pre-med requirements (and maybe pre-law! Who knows!). I like New York pizza, iced coffee, going to the gym, dancing, and singing Disney songs. Loudly.

E-mail us at [email protected] or post a question (privately!) on Piazza if you have any questions about the course.

introduction to problem solving in computer science pdf

Annie He (ahe6)

Hey y’all! I’m a junior from Dallas, TX concentrating in computational biology. If you don’t see me in the scili, I’m either chilling in my pjs or exploring new restaurants! I also love to rock climb, ski, bungee jump, basically anything adventurous! :)

introduction to problem solving in computer science pdf

Alex Liu (aliu31)

I am a junior concentrating in Applied Mathematics and Computer Science. I’m from Eugene, Oregon and outside of class I am involved with the Socially Responsible Investment Fund, I play golf whenever I get the chance, and I try my best to keep up on practicing the Piano. I also run Brown Data Science, a club that, much like this class, brings educational opportunities related to Data Science to undergraduates of all academic backgrounds.

introduction to problem solving in computer science pdf

Aryan Srivastava (asriva11)

I am a freshman concentrating in CS (probably). I love watching and playing basketball (1v1 me), reading and talking philosophy, and watching artisan videos on youtube! My favorite thing to eat at Brown is a warm Blue Room Chocolate Chip Muffin.

introduction to problem solving in computer science pdf

Ellen Ling (eling)

Hi, I’m a junior from Shanghai studying physics and CS. I like good movies and dance and babies!

introduction to problem solving in computer science pdf

Irene Rhee (irhee)

Sup dudes, my name is Irene and I’m a junior from Corvallis, OR studying computer science! I like to drink my coffee black, am part of a dance group called Daebak (come to our spring show!!), and enjoy dim sum, boba, and tagging people in memes (go like my post on subtle asian traits). My favorite word is lit.

introduction to problem solving in computer science pdf

Joseph Chen (jchen88)

Hey everyone! I’m a junior from California concentrating in Neuroscience and CS, and I’m a big fan of all things related to swimming, playing basketball, Game of Thrones, and stand-up comedy.

introduction to problem solving in computer science pdf

Jarrett Huddleston (jhuddle1)

Hey! I’m a sophomore from Eastern Massachusetts concentrating in computer science. Outside of classes I enjoy camping and music, and I’m always looking for a good book!

introduction to problem solving in computer science pdf

Milla Shin (mshin7)

I’m a junior from Tokyo studying computer science. I like going to the beach. I like food and cooking! I like snowboarding and scuba diving! I love sweet potatoes, avocado, and matcha! Yummy. I like puppies but I like babies too.

introduction to problem solving in computer science pdf

Pedro de Freitas (pfreitas)

Senior from Portland, Maine studying cognitive neuroscience. I’m a lyra performer/instructor who also enjoys painting.

introduction to problem solving in computer science pdf

Solomon Rueschemeyer-Bailey (sruesche)

I am a junior trying not to let school get in the way of college. Come to my hours or my section if you want to learn about: The Bucket Theorem, whether or not true Love exists, and the future of teleportation.

introduction to problem solving in computer science pdf

Tiffany Ding (tding5)

Hi! I’m a sophomore from upstate NY studying applied math, economics, and computer science. When I’m not in the CIT, you can find me going for a run or taking photos for the Brown Daily Herald. I also love puns, penguins, and podcasts!

Introduction to Problem Solving

Cite this chapter.

introduction to problem solving in computer science pdf

  • Ian David Chivers B.Sc., M.Sc., M.B.C.S. C.Eng. 2 &
  • Jane Sleightholme M.Sc. 2  

290 Accesses

The aims are:-

to examine some of the ideas and concepts involved in problem solving;

to introduce the concept of an algorithm;

to introduce two ways of approaching algorithmic problem solving;

to introduce the ideas involved with systems analysis and design, i.e. to show the need for pencil and paper study before using a computer system.

They constructed ladders to reach to the top of the enemy’s wall, and they did this by calculating the height of the wall from the number of layers of bricks at a point which was facing in their direction and had not been plastered. The layers were counted by a lot of people at the same time, and though some were likely to get the figure wrong the majority would get it right... Thus, guessing what the thickness of a single brick was, they calculated how long their ladder would have to be. Thucydides, The Peloponnesian War
‘When I use a word,’ Humpty Dumpty said, in a rather scornful tone, ‘it means just what I choose it to mean — neither more nor less’ The question is,’ said Alice, ‘whether you can make words mean so many different things.’ Lewis Carroll, Through the Looking Glass and What Alice found there .

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Unable to display preview.  Download preview PDF.

Bibliography

Aho A. V., Hopcroft J. E., Ullman J. D., The Design and Analysis of Computer Algorithms , Addison Wesley, 1982.

Google Scholar  

Beckman F. S., Mathematical Foundations of Programming , Addison Wesley, 1981

Bulloff J.J., Holyoke T.C., Hahn S.W., Foundations of Mathematics — Symposium Papers Commemorating the 60 th Birthday of Kurt Godel , Springer Verlag.

Dahl O. J., Dijkstra E. W., Hoare C. A. R., Structured Programming , Academic Press, 1972.

Davis M., Computability and Unsolvability , Dover, 1982.

Davis W. S., Systems Analysis and Design , Addison Wesley, 1983.

Fogelin R. J., Wittgenstein , Routledge and Kegan Paul, 1980.

Godei K., On Formally Undecidable Propositions of Principia Mathematica and Related Systems , Oliver and Boyd.

Hofstader D., The Eternal Golden Braid , Harvester Press.

Hopcroft J. E., Ullman J. D., Introduction to Automata Theory, Languages and Computation , Addison Wesley, 1979.

Kernighan B. W., Plauger P. J., Software Tools , Addison Wesley, 1976.

Knuth D. E., The Art of Computer Programming , Addison Wesley

Millington D., Systems Analysis and Design for Computer Applications , Ellis Horwood, 1981.

Wirth N., Program Development by Stepwise Refinement , Communications of the ACM, April 1971, Volume 14, Number 4, pp. 221–227.

Article   MATH   Google Scholar  

Download references

Author information

Authors and affiliations.

The Computer Centre, King’s College, Strand, London, WC2R 2LS, UK

Ian David Chivers B.Sc., M.Sc., M.B.C.S. C.Eng. & Jane Sleightholme M.Sc.

You can also search for this author in PubMed   Google Scholar

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag London Limited

About this chapter

Chivers, I.D., Sleightholme, J. (1995). Introduction to Problem Solving. In: Introducing Fortran 90. Springer, London. https://doi.org/10.1007/978-1-4471-3031-4_5

Download citation

DOI : https://doi.org/10.1007/978-1-4471-3031-4_5

Publisher Name : Springer, London

Print ISBN : 978-3-540-19940-3

Online ISBN : 978-1-4471-3031-4

eBook Packages : Springer Book Archive

Share this chapter

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Publish with us

Policies and ethics

  • Find a journal
  • Track your research

Library Home

Java, Java, Java: Object-Oriented Problem Solving

(4 reviews)

introduction to problem solving in computer science pdf

Ralph Morelli, Trinity College

Ralph Walde, Trinity College

Copyright Year: 2016

Publisher: Ralph Morelli, Ralph Walde

Language: English

Formats Available

Conditions of use.

Attribution

Learn more about reviews.

introduction to problem solving in computer science pdf

Reviewed by Onyeka Emebo, Assistant Professor, Virginia Tech on 12/28/21

The text adequately addresses areas under Object Oriented Programming using Java as a Programming Language for Introduction to Computer Science courses. It gently introduces basic concepts in computer, objects and java using problem solving... read more

Comprehensiveness rating: 5 see less

The text adequately addresses areas under Object Oriented Programming using Java as a Programming Language for Introduction to Computer Science courses. It gently introduces basic concepts in computer, objects and java using problem solving approaches and gradually builds up to more advanced Java technologies in such a simplified manner that can be easily understood. The text also provides a table of content at the beginning and a summary of points for each chapter with exercises.

Content Accuracy rating: 4

The text content is accurate, without errors and unbiased. There is however some links that needs to be updated.

Relevance/Longevity rating: 4

While the field of computer science with particular emphasis to programming as it relates to this text is constantly evolving, the approach taken by this text to teach the essentials is likely to persist. The code, tested in Java 8, should continue to work with new Java releases. Updates to the text can be done easily by the way it has been written.

Clarity rating: 5

The text is written in a clear and easy to understand manner. The objectives, explanations, examples and exercises are clear and easy to follow. The codes are well commented to aid readability.

Consistency rating: 4

The text is highly consistent in both structure and terminology. It starts each chapter with objectives and outline and concludes with summary, exercises and solutions. However, some codes within the chapters are put in figures while others are not, this could be confusing.

Modularity rating: 5

The text is divided in 17 chapters (0 - 16) and 8 appendices (A – H). Each chapter is further divided into sections and subsections. This breakdown makes it easier for instructors to apportion sections to students at different times within the course.

Organization/Structure/Flow rating: 5

The text is organized in a manner that is logical and it flows well from section to section. The structure makes navigation from chapter to chapter easier.

Interface rating: 3

I reviewed the PDF version and it looks good to a large extent. The links in the table of contents are working properly. There are clickable links within the text to different figures, sections, such as appendices, and external websites. However, there are some issues with some figure titles, e.g., figure 12, 1.10, 2.7, 2.10, 2.14, etc. are cut off. Some hyperlinks for some figures missing e.g., figure 2.8 and some figures don’t have titles.

Grammatical Errors rating: 5

The text contains no grammatical errors.

Cultural Relevance rating: 5

The text is culturally neutral. The examples are unbiased in the way it has been presented.

Reviewed by Ghaith Husari, Assistant Professor, East Tennessee State University on 4/17/20

This book covers Object-Oriented Programming under JAVA. It introduces the concepts of object-oriented programming and they are used for problem-solving. This book covers all the relevant areas of Object-Oriented Programming under Java. Also, it... read more

This book covers Object-Oriented Programming under JAVA. It introduces the concepts of object-oriented programming and they are used for problem-solving. This book covers all the relevant areas of Object-Oriented Programming under Java. Also, it covers more advanced topics such as socket programming and algorithms.

Content Accuracy rating: 5

The Object-Oriented concepts and implementation example shown in code samples are accurate and easy to learn as the code samples are aligned with the concept being discussed. Some links and URLs are out-dated but they have little to no impact on student learning. However, I would add a note that says "some of the links and URLs might not up-to-date. However, they can be found using search engines if necessary"

Programming languages get updated regularly to include new and easier functions to use. While it is impossible for a textbook to include every function, this textbook provides a great learning opportunity that allows students to build the muscle to be able to learn more about Java online. When it comes to Object-Oriented concepts, the book is extremely relevant and up-to-date

The textbook is very easy to understand and the code sample is both clear (code readability) and relevant.

Consistency rating: 5

The text and the terms it contains are consistent. Also, the textbook follows a consistent theme.

The textbook chapters are divided into sections and subsections that are shown also in the table of contents which can be used to visit each section.

The textbook consists of seventeen chapters that are organized in a logical manner. The more general concepts such as problem-solving and programing are placed at the beginning, then the chapters introduce the discuss Object-Oriented Programming come after the general chapters. The more advanced topics such as socket programming and data structures and algorithms come towards the end. This made a lot of sense to me.

Interface rating: 5

The textbook is easily accessible online and it can be downloaded to open with Edge or Adobe Reader without any problems.

No grammar issues have been noticed.

This textbook is neutral and unbiased.

Reviewed by Guanyu Tian, Assistant Professor, Fontbonne University on 6/19/18

This textbook covers Object-Oriented Programming with Java programming language pretty well. It starts with the concept of Objects and problem solving skills and then dive into Java programming language syntax. Overall, it appropriately covers all... read more

Comprehensiveness rating: 4 see less

This textbook covers Object-Oriented Programming with Java programming language pretty well. It starts with the concept of Objects and problem solving skills and then dive into Java programming language syntax. Overall, it appropriately covers all areas of the subject including the main principles of Object-Oriented Programming and Java programming language. In the later chapters, this textbook also introduces advanced topics such as concurrent programming, network/socket programming and data structures. The textbook provides table of contents at the beginning and index of terms at the end. Each chapter also provides a list of key words and a list of important concepts and technique terms.

Content Accuracy rating: 3

The content of the textbook is mostly accurate. Many URLs linked to Java documentations and APIs are not up-to-date.

Many URLs to Java references are not up-to-date and many online samples are not accessible. Nonetheless, the concepts of Object-Oriented Programming and Java programming language syntax are mostly current. Any updates to the contents of the textbook can be implemented with minimal effort.

The text is easy to understand. However, some of the texts are not displayed on adobe reader.

Consistency rating: 3

The text is consistent in terms of framework. Each chapter starts with introduction to a problem, and then discussion and design of the solution with UML diagrams; then Java is used to implement the solution(s). However, there is some level of inconsistency in terms of Java code samples. For example, some Java code examples use appropriate indentations and new lines, but some examples do not. This may confuse students.

Each chapter is divided into different sections and subsections. A student can go to each section of a chapter by clicking it in the Table of Contents.

Organization/Structure/Flow rating: 3

The topics in this text book are organized in a reasonable order. It starts with general concepts of computer and program design, then Objects and Java Programming Language, and then advanced topics in computer programming. It would be better if the textbook starts with Java programming language and then principles of Object Oriented programming.

Some of the texts are not displayed in the reviewer's adobe reader. Many diagrams and figures are poorly drawn. Overall, the interface of the book is one area that needs improvement.

No major grammar issues has been noticed.

The text of this textbook is a neutral and unbiased.

Overall, this textbook covers materials of Object-Oriented Programming with Java taught in first or second-year computer science course. However, the contents of Java programming language has not been up-to-date and the interface of the book is very poor compare to similar books the reviewer has used for learning and teaching the same materials. Some sample codes are not well written or inconsistent in terms of the use of indentation and new lines. Many URLs are obsolete and the web pages are not accessible.

Reviewed by Homer Sharafi, Adjunct Faculty Member, Northern Virginia Community College on 6/20/17

The textbook includes the material that is typically covered in a college-level CS1 course. Using an “early objects” approach and Java as the programming language, the authors go over problem-solving techniques based on object-oriented... read more

The textbook includes the material that is typically covered in a college-level CS1 course. Using an “early objects” approach and Java as the programming language, the authors go over problem-solving techniques based on object-oriented programming principles. In addition to an Index of terms towards the end of the text, each chapter summary includes the technical terms used, along with a bulleted-list of important points discussed in that chapter.

The computer science concepts and the accompanying sample code are accurate and error-free; however, the only issue is the fact that the URLs that make references to various aspects of Java, such as API documentation, JDK, and the Java Language Specification, have not been updated to reflect the fact that Sun Microsystems was acquired by Oracle back in 2010.

Like other software systems, Java is updated on a regular basis; nonetheless, the computer science concepts discussed in the textbook are based on standard undergraduate curriculum taught in a CS1 course. Therefore, any updates to the textbook would need to be with regard to the version of Java with minimal effort.

Clarity rating: 4

The authors deliver clear explanations of the computer science concepts and the accompanying Java language features.

There is a consistent theme throughout much of the text: A topic is introduced and discussed within the context of a problem. Its solution is then designed and explained using UML diagrams; finally, Java is used to illustrate how the solution is implemented on the computer.

Each chapter is divided into sections that can easily be identified within the table of contents. Therefore, it’s fairly easy for a student to pick and choose a section in a chapter and work on the other sections later. Throughout each chapter, there are self-study exercises to incrementally test understanding of the covered material. Solutions to those self-study exercises are then provided towards the end of the chapter. In addition, each chapter includes end-of-chapter exercises that can be used to assess one’s understanding of the computer science concepts as well as the various features of Java.

The book consists of seventeen chapters; however, a typical CS1 course would need the material in the first ten chapters only, and those chapters are set up in a logical manner, allowing one to go through the material sequentially. Depending on how fast he first ten chapters are covered during the course of a semester, an instructor may choose from the last seven chapters in the text to introduce more advanced topics in computer science and/or Java.

Interface rating: 1

The textbook can be accessed online or opened using Acrobat Reader with no problem. There are no issues, as long as navigation is done one page after another manually. However, when browsing through the table of contents (TOC) or the Index, the entries are not set up using any live links. That is, you cannot click on a page number associated with an item within the TOC or the Index to go directly to that page.

Grammatical Errors rating: 3

This reviewer did not come across any such issues, while going through the text.

This is a computing textbook, where the contents are presented using technical terms. Culturally, the textbook is completely neutral and unbiased in terms of how the material is presented.

Table of Contents

  • 0 Computers, Objects, and Java
  • 1 Java Program Design and Development
  • 2 Objects: Defining, Creating, and Using
  • 3 Methods: Communicating with Objects
  • 4 Input/Output: Designing the User Interface
  • 5 Java Data and Operators
  • 6 Control Structures
  • 7 Strings and String Processing
  • 8 Inheritance and Polymorphism
  • 9 Arrays and Array Processing
  • 10 Exceptions: When Things Go Wrong
  • 11 Files and Streams
  • 12 Recursive Problem Solving
  • 13 Graphical User Interfaces
  • 14 Threads and Concurrent Programming
  • 15 Sockets and Networking
  • 16 Data Structures: Lists, Stacks, and Queues

Ancillary Material

  • Ralph Morelli, Ralph Walde

About the Book

We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

The third edition retains many of the features of the first two editions, including:

  • Early Introduction of Objects
  • Emphasis on Object Oriented Design (OOD)
  • Unified Modeling Language (UML) Diagrams
  • Self-study Exercises with Answers
  • Programming, Debugging, and Design Tips.
  • From the Java Library Sections
  • Object-Oriented Design Sections
  • End-of-Chapter Exercises
  • Companion Web Site, with Power Points and other Resources

The In the Laboratory sections from the first two editions have been moved onto the book's Companion Web Site. Table 1 shows the Table of Contents for the third edition.

About the Contributors

Ralph Morelli, Professor of Computer Science Emeritus. Morelli has been teaching at Trinity College since 1985, the same year the computer science major was first offered. More recently, he was one of the Principal Investigators (PIs) for the Humanitarian Free and Open Source Software (HFOSS) project, an NSF-funded effort to get undergraduates engaged in building free and open source software that benefits the public.  In summer 2011 a team of Trinity HFOSS students and faculty traveled to Haiti to build an open source mobile application that helps manage beneficiaries for a humanitarian aid organization. Currently Morelli is the PI of the Mobile CSP project, an NSF-funded effort to train high school teachers in CT and elsewhere to teach the emerging Advanced Placement CS Principles course that is being created by the College Board. The main goal of this NSF initiative is to increase access to computer science among underrepresented groups, including girls, African Americans, and Hispanic Americans.  The Mobile CSP course teaches students to create mobile apps to serve their community.  In summer 2014, a group of 20 Mobile CSP students spent their summer building mobile apps for the city of Hartford. 

Ralph Walde.  Dr. Walde has given Trinity 28 years of distinguished service, first as a Professor of Mathematics and now as a Professor of Computer Science. He was instrumental in helping to establish and nourish computing at Trinity and was one of the founding members of the Computer Science Department.

Contribute to this Page

Browse Course Material

Course info, instructors.

  • Prof. Albert R. Meyer
  • Prof. Adam Chlipala

Departments

  • Electrical Engineering and Computer Science
  • Mathematics

As Taught In

  • Computer Science
  • Applied Mathematics
  • Probability and Statistics

Learning Resource Types

Mathematics for computer science, mit6_042js15_textbook.pdf.

facebook

You are leaving MIT OpenCourseWare

We will keep fighting for all libraries - stand with us!

Internet Archive Audio

introduction to problem solving in computer science pdf

  • This Just In
  • Grateful Dead
  • Old Time Radio
  • 78 RPMs and Cylinder Recordings
  • Audio Books & Poetry
  • Computers, Technology and Science
  • Music, Arts & Culture
  • News & Public Affairs
  • Spirituality & Religion
  • Radio News Archive

introduction to problem solving in computer science pdf

  • Flickr Commons
  • Occupy Wall Street Flickr
  • NASA Images
  • Solar System Collection
  • Ames Research Center

introduction to problem solving in computer science pdf

  • All Software
  • Old School Emulation
  • MS-DOS Games
  • Historical Software
  • Classic PC Games
  • Software Library
  • Kodi Archive and Support File
  • Vintage Software
  • CD-ROM Software
  • CD-ROM Software Library
  • Software Sites
  • Tucows Software Library
  • Shareware CD-ROMs
  • Software Capsules Compilation
  • CD-ROM Images
  • ZX Spectrum
  • DOOM Level CD

introduction to problem solving in computer science pdf

  • Smithsonian Libraries
  • FEDLINK (US)
  • Lincoln Collection
  • American Libraries
  • Canadian Libraries
  • Universal Library
  • Project Gutenberg
  • Children's Library
  • Biodiversity Heritage Library
  • Books by Language
  • Additional Collections

introduction to problem solving in computer science pdf

  • Prelinger Archives
  • Democracy Now!
  • Occupy Wall Street
  • TV NSA Clip Library
  • Animation & Cartoons
  • Arts & Music
  • Computers & Technology
  • Cultural & Academic Films
  • Ephemeral Films
  • Sports Videos
  • Videogame Videos
  • Youth Media

Search the history of over 866 billion web pages on the Internet.

Mobile Apps

  • Wayback Machine (iOS)
  • Wayback Machine (Android)

Browser Extensions

Archive-it subscription.

  • Explore the Collections
  • Build Collections

Save Page Now

Capture a web page as it appears now for use as a trusted citation in the future.

Please enter a valid web address

  • Donate Donate icon An illustration of a heart shape

Introduction to computer science : programming, problem solving, and data structures

Bookreader item preview, share or embed this item, flag this item for.

  • Graphic Violence
  • Explicit Sexual Content
  • Hate Speech
  • Misinformation/Disinformation
  • Marketing/Phishing/Advertising
  • Misleading/Inaccurate/Missing Metadata

[WorldCat (this item)]

plus-circle Add Review comment Reviews

89 Previews

9 Favorites

DOWNLOAD OPTIONS

No suitable files to display here.

PDF access not available for this item.

IN COLLECTIONS

Uploaded by station03.cebu on December 23, 2021

SIMILAR ITEMS (based on metadata)

  • Computer Science and Engineering
  • Introduction to Problem Solving and Programming (Video) 
  • Co-ordinated by : IIT Kanpur
  • Available from : 2009-12-31
  • Watch on YouTube
  • Assignments
  • Transcripts

MyCSTutorial- The path to Success in Exam

THE PATH TO SUCCESS IN EXAM...

Introduction to Problem Solving – Notes

Introduction to problem solving.

  • Steps for problem solving ( analysing the problem, developing an algorithm, coding, testing and debugging).
  • flow chart and
  • pseudo code,

Decomposition

Introduction

Computers is machine that not only use to develop the software. It is also used for solving various day-to-day problems.

Computers cannot solve a problem by themselves. It solve the problem on basic of the step-by-step instructions given by us.

Thus, the success of a computer in solving a problem depends on how correctly and precisely we –

  • Identifying (define) the problem
  • Designing & developing an algorithm and
  • Implementing the algorithm (solution) do develop a program using any programming language.

Thus problem solving is an essential skill that a computer science student should know.

Steps for Problem Solving-

1. Analysing the problem

Analysing the problems means understand a problem clearly before we begin to find the solution for it. Analysing a problem helps to figure out what are the inputs that our program should accept and the outputs that it should produce.

2. Developing an Algorithm

It is essential to device a solution before writing a program code for a given problem. The solution is represented in natural language and is called an algorithm.

Algorithm: A set of exact steps which when followed, solve the problem or accomplish the required task.

Coding is the process of converting the algorithm into the program which can be understood by the computer to generate the desired solution.

You can use any high level programming languages for writing a program.

4. Testing and Debugging

The program created should be tested on various parameters.

  • The program should meet the requirements of the user.
  • It must respond within the expected time.
  • It should generate correct output for all possible inputs.
  • In the presence of syntactical errors, no output will be obtained.
  • In case the output generated is incorrect, then the program should be checked for logical errors, if any.

Software Testing methods are

  • unit or component testing,
  • integration testing,
  • system testing, and
  • acceptance testing

Debugging – The errors or defects found in the testing phases are debugged or rectified and the program is again tested. This continues till all the errors are removed from the program.

Algorithm is a set of sequence which followed to solve a problem.

Algorithm for an activity ‘riding a bicycle’: 1) remove the bicycle from the stand, 2) sit on the seat of the bicycle, 3) start peddling, 4) use breaks whenever needed and 5) stop on reaching the destination.

Algorithm for Computing GCD of two numbers:

Step 1: Find the numbers (divisors) which can divide the given numbers.

Step 2: Then find the largest common number from these two lists.

A finite sequence of steps required to get the desired output is called an algorithm. Algorithm has a definite beginning and a definite end, and consists of a finite number of steps.

Characteristics of a good algorithm

  • Precision — the steps are precisely stated or defined.
  • Uniqueness — results of each step are uniquely defined and only depend on the input and the result of the preceding steps.
  • Finiteness — the algorithm always stops after a finite number of steps.
  • Input — the algorithm receives some input.
  • Output — the algorithm produces some output.

While writing an algorithm, it is required to clearly identify the following:

  • The input to be taken from the user.
  • Processing or computation to be performed to get the desired result.
  • The output desired by the user.

Representation of Algorithms

There are two common methods of representing an algorithm —

Flowchart — Visual Representation of Algorithms

A flowchart is a visual representation of an algorithm. A flowchart is a diagram made up of boxes, diamonds and other shapes, connected by arrows. Each shape represents a step of the solution process and the arrow represents the order or link among the steps. There are standardised symbols to draw flowcharts.

Start/End – Also called “Terminator” symbol. It indicates where the flow starts and ends.

Process – Also called “Action Symbol,” it represents a process, action, or a single step. Decision – A decision or branching point, usually a yes/no or true/ false question is asked, and based on the answer, the path gets split into two branches.

Input / Output – Also called data symbol, this parallelogram shape is used to input or output data.

Arrow – Connector to show order of flow between shapes.

Question: Write an algorithm to find the square of a number. Algorithm to find square of a number. Step 1: Input a number and store it to num Step 2: Compute num * num and store it in square Step 3: Print square

The algorithm to find square of a number can be represented pictorially using flowchart

introduction to problem solving in computer science pdf

A pseudocode (pronounced Soo-doh-kohd) is another way of representing an algorithm. It is considered as a non-formal language that helps programmers to write algorithm. It is a detailed description of instructions that a computer must follow in a particular order.

  • It is intended for human reading and cannot be executed directly by the computer.
  • No specific standard for writing a pseudocode exists.
  • The word “pseudo” means “not real,” so “pseudocode” means “not real code”.

Keywords are used in pseudocode:

Question : Write an algorithm to calculate area and perimeter of a rectangle, using both pseudocode and flowchart.

Pseudocode for calculating area and perimeter of a rectangle.

INPUT length INPUT breadth COMPUTE Area = length * breadth PRINT Area COMPUTE Perim = 2 * (length + breadth) PRINT Perim The flowchart for this algorithm

introduction to problem solving in computer science pdf

Benefits of Pseudocode

  • A pseudocode of a program helps in representing the basic functionality of the intended program.
  • By writing the code first in a human readable language, the programmer safeguards against leaving out any important step.
  • For non-programmers, actual programs are difficult to read and understand, but pseudocode helps them to review the steps to confirm that the proposed implementation is going to achieve the desire output.

Flow of Control :

The flow of control depicts the flow of process as represented in the flow chart. The process can flow in

In a sequence steps of algorithms (i.e. statements) are executed one after the other.

In a selection, steps of algorithm is depend upon the conditions i.e. any one of the alternatives statement is selected based on the outcome of a condition.

Conditionals are used to check possibilities. The program checks one or more conditions and perform operations (sequence of actions) depending on true or false value of the condition.

Conditionals are written in the algorithm as follows: If is true then steps to be taken when the condition is true/fulfilled otherwise steps to be taken when the condition is false/not fulfilled

Question : Write an algorithm to check whether a number is odd or even. • Input: Any number • Process: Check whether the number is even or not • Output: Message “Even” or “Odd” Pseudocode of the algorithm can be written as follows: PRINT “Enter the Number” INPUT number IF number MOD 2 == 0 THEN PRINT “Number is Even” ELSE PRINT “Number is Odd”

The flowchart representation of the algorithm

flow_chart_if_else

Repetitions are used, when we want to do something repeatedly, for a given number of times.

Question : Write pseudocode and draw flowchart to accept numbers till the user enters 0 and then find their average. Pseudocode is as follows:

Step 1: Set count = 0, sum = 0 Step 2: Input num Step 3: While num is not equal to 0, repeat Steps 4 to 6 Step 4: sum = sum + num Step 5: count = count + 1 Step 6: Input num Step 7: Compute average = sum/count Step 8: Print average The flowchart representation is

flow_chart_repetition

Once an algorithm is finalised, it should be coded in a high-level programming language as selected by the programmer. The ordered set of instructions are written in that programming language by following its syntax.

The syntax is the set of rules or grammar that governs the formulation of the statements in the language, such as spelling, order of words, punctuation, etc.

Source Code: A program written in a high-level language is called source code.

We need to translate the source code into machine language using a compiler or an interpreter so that it can be understood by the computer.

Decomposition is a process to ‘decompose’ or break down a complex problem into smaller subproblems. It is helpful when we have to solve any big or complex problem.

  • Breaking down a complex problem into sub problems also means that each subproblem can be examined in detail.
  • Each subproblem can be solved independently and by different persons (or teams).
  • Having different teams working on different sub-problems can also be advantageous because specific sub-problems can be assigned to teams who are experts in solving such problems.

Once the individual sub-problems are solved, it is necessary to test them for their correctness and integrate them to get the complete solution.

Computer Science Answer Key Term 2 Board Examination

  • Input Output in Python

introduction to problem solving in computer science pdf

Related Posts

society law ethics

Society, Law, and Ethics: Societal Impacts – Notes

Data structure: stacks – notes.

Class 12 computer science Python revision tour - I

Python Revision Tour I : Basics of Python – Notes

python module math random statistic

Introduction to Python Module – Notes

sorting_techniques_bubble_insertion

Sorting Techniques in Python – Notes

Dictionary handling in python – notes, tuples manipulation in python notes, list manipulation – notes, leave a comment cancel reply.

You must be logged in to post a comment.

You cannot copy content of this page

introduction to problem solving in computer science pdf

IMAGES

  1. Introductory Problem Solving in Computer Science PDF

    introduction to problem solving in computer science pdf

  2. Introduction To Problem Solving In Computer Science Ppt

    introduction to problem solving in computer science pdf

  3. Problem Solving in Computer Science

    introduction to problem solving in computer science pdf

  4. Intro problem solving lec notes

    introduction to problem solving in computer science pdf

  5. (PDF) Steps of Problem Solving in Computer Science

    introduction to problem solving in computer science pdf

  6. INTRODUCTION TO PROBLEM SOLVING IN COMPUTER SCIENCE

    introduction to problem solving in computer science pdf

VIDEO

  1. CS101_Topic087

  2. LN1 Ch2 Beginning Problem Solving Concepts I 1

  3. Computational thinking & Problem Solving (Computer Science)

  4. Problem Solving: Mastering a Key Skill in English

  5. Mastering Data Structures and Algorithms in C and C++

  6. BCSL-013

COMMENTS

  1. PDF An Introduction to Computer Science and Problem Solving

    COMP1405/1005 - An Introduction to Computer Science and Problem Solving Fall 2011 - 4- There are also other types of programming languages such as functional programming languages and logic programming languages. According to the Tiobe index (i.e., a good site for ranking the popularity of programming languages), as of February 2011 the 10 most

  2. PDF Iˇ˝ˆ˘ ˝ ˘ˇ ˝˘ Pˆ˘ ˙ S˘ ˇ

    and thus problem solving is an essential skill that a computer science student should know. It is pertinent to mention that computers themselves cannot solve a problem. Precise step-by-step instructions should be given by us to solve the problem. Thus, the success of a computer in solving a problem depends on how correctly

  3. PDF Unit 2: Problem Solving

    Introduction. In order for students to become "computational thinkers" they need experience solving a wide range of problems and the opportunity to experiment with a variety of solution strategies. This unit begins with an introduction to the problem solving process. Students are asked to solve new problems by planning a strategy, designing ...

  4. PDF Introduction to Problem Solving in Computer Science CS 2104

    I -- Catalogue Description. This course introduces the student to a broad range of heuristics for solving problems in a range of settings that are relevant to computation. Emphasis on problem-solving techniques that aid programmers and computer scientists. Heuristics for solving problems "in the small" (classical math and word problems ...

  5. PDF Problem Solving Basics and Computer Programming

    First, lay out your starting node, as every one of your programs will have these. Start. Next, begin adding your program elements sequentially, in the order that your problem description indicated. Connect the elements of your flowchart by uni-directional arrows that indicate the flow of your program.

  6. PDF Computer Science 111 Introduction to Computer Science I

    Computer science is not so much the science of computers as it is the science of solving problems using computers. Eric Roberts • This course covers: • the process of developing algorithms to solve problems • the process of developing computer programs to express those algorithms • other topics from computer science and its applications

  7. PDF Chapter 0 Introduction to Problem-Solving

    Computer Science can be summarized with two simple words: problem solving. Computer Science is the study of problems, problem-solving, and the solutions that come out of this problem-solving process. Given a problem, the goal is to develop an algorithm to solve the problem. An algorithm is a step-by-step list of instructions to solve the problem.

  8. PDF CS2104: Introduction to Problem Solving

    CS2104: Introduction to Problem Solving Fall 2016 Layne T. Watson Departments of Computer Science, Mathematics, ... "Puzzle-based learning for engineering and computer science," IEEE Computer, 43(4), 2010, pp. 20--28. Errors in Reasoning • Goal: Identify common types of errors and avoid them. • Many of these come up in the WASI

  9. PDF Introductory Problem Solving in Computer Science

    KEYWORDS: problem solving, programming, functional, imperative, cross-curricular, software engineering. 1. Introduction The original motivation behind this work was to develop material to assist a group of students in the first year of our Computer Science degree who were having difficulties across the course as a whole.

  10. Lecture 3: Problem Solving

    Introduction to Computer Science and Programming. ... Introductory Programming Courses. Archived DSpace Course. Problem Solving. Lecture 3: Problem Solving. Viewing videos requires an internet connection ... Course Info Instructor Prof. John Guttag; Departments Electrical Engineering and Computer Science; As Taught In Spring 2011 Level ...

  11. CS2104: Introduction to Problem Solving in Computer Science

    CS2104: Introduction to Problem Solving in Computer Science. This course introduces the student to a broad range of heuristics for solving problems in a range of settings. Emphasis on problem-solving techniques that aid programmers and computer scientists. Heuristics for solving problems ''in the small'' (classical math and word problems ...

  12. Introduction to Computational Thinking: Problem Solving, Algorithms

    Acquire general techniques for problem solving; Seegeneral and concrete algorithmic techniques; Program solutions that are both computationally efficient and maintainable; Who This Book Is For . Those new to programming and computer science who are interested in learning how to program algorithms and working with other computational aspects of ...

  13. CS4: Introduction to Scientific Computing and Problem Solving

    CS4 provides an introduction to using computers to solve STEM (Science, Technology, Engineering, and Mathematics) data analysis, visualization, simulation, and numerical analysis problems. The course begins with an introduction to the basics of programming, accompanied by several applications of fundamental coding elements and concepts. As we ...

  14. PDF Exploring Computer Science

    Exploring Computer Science professional development is a necessary condition in offering an ECS course. Curricular Approach Exploring Computer Science teaches the creative, collaborative, interdisciplinary, and problem-solving nature of computing with instructional materials that feature an inquiry-based approach to learning and teaching.

  15. PDF CS 2104: Introduction to Problem Solving in Computer Science

    computation in problem solving. Learning Objectives Having successfully completed this course, the student will be able to: Identify skills and personality traits of successful problem solvers. Apply standard problem-solving heuristics to aid in problem solving related to computer science. Apply problem-solving techniques to programming ...

  16. PDF Introduction to Problem Solving

    • to examine some of the ideas and concepts involved in problem solving; • to introduce the concept of an algorithm; • to introduce two ways of approaching algorithmic problem solving; • to introduce the ideas involved with systems analysis and design, i.e. to show the need for pencil and paper study before using a computer system.

  17. PDF Programming Building Blocks

    a computer program is called software development. 2.1 The software engineering method for problem solving The software engineering method is a way to approach problem solving using a computer program and has the following five steps: 1. Specify the problem requirements. Describe the problem completely and unambiguously. 2.

  18. Java, Java, Java: Object-Oriented Problem Solving

    About the Book. We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the "objects first" approach to programming and problem solving that was characteristic of the first two ...

  19. (PDF) Steps of Problem Solving in Computer Science

    In more general terms, problem solving is. part of a larger process that encompasses problem determination, de-. duplication, analysis, diagnosis, repair, and other steps. 3. Other problem solving ...

  20. MIT6_042JS15_textbook.pdf

    MIT6_042JS15_textbook.pdf Download File DOWNLOAD. Course Info Instructors ... Computer Science. Mathematics. Applied Mathematics. Probability and Statistics. Learning Resource Types ... theaters Lecture Videos. notes Lecture Notes. assignment Problem Sets. grading Exams. Download Course. Over 2,500 courses & materials Freely sharing knowledge ...

  21. Introduction to computer science : programming, problem solving, and

    Introduction to computer science : programming, problem solving, and data structures ... Nance, Douglas W; Singh, Bhagat, 1940-; Nance, Douglas W. Introduction to computer science Autocrop_version ..5_books-20210916-.1 Bookplateleaf 0002 ... Pdf_module_version 0.0.17 Ppi 360 Rcs_key 24143 ...

  22. NPTEL :: Computer Science and Engineering

    NPTEL :: Computer Science and Engineering - Introduction to Problem Solving and Programming. Courses. Computer Science and Engineering. Introduction to Problem Solving and Programming (Video) Syllabus. Co-ordinated by : IIT Kanpur. Available from : 2009-12-31.

  23. Introduction to Problem Solving

    Step 1: Find the numbers (divisors) which can divide the given numbers. Step 2: Then find the largest common number from these two lists. A finite sequence of steps required to get the desired output is called an algorithm. Algorithm has a definite beginning and a definite end, and consists of a finite number of steps.

  24. Identification of Problem-Solving Techniques in Computational Thinking

    The PDF-Xchange viewer was used to screen the articles. This application was chosen because it has a word search engine that reads a single PDF article or all PDF articles in a folder, and it executes word searches similar to a web search engine. ... Learn problem-solving ideas from computer science included core concepts of computational ...