Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. RFC on Introduction to Computer Programming Syllabus

RFC on Introduction to Computer Programming Syllabus

Scheduled Pinned Locked Moved The Lounge
csharptutoriallearning
35 Posts 16 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B B Clay Shannon

    I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

    E Offline
    E Offline
    englebart
    wrote on last edited by
    #17

    Compare and align against the work that ACM has done. http://www.acm.org/education/curricula-recommendations[^] http://www.acm.org/education/CS2013-final-report.pdf[^]

    B 1 Reply Last reply
    0
    • Richard Andrew x64R Richard Andrew x64

      Did you also include the section that teaches people how to always ask for "example code" when posting a question on Code Project?

      The difficult we do right away... ...the impossible takes slightly longer.

      F Offline
      F Offline
      Fabio Franco
      wrote on last edited by
      #18

      Richard Andrew x64 wrote:

      Did you also include the section that teaches people how to always ask for "example codegive me codezz asap" when posting a question on Code Project?

      FTFY

      To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

      1 Reply Last reply
      0
      • B B Clay Shannon

        I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

        K Offline
        K Offline
        Kirk 10389821
        wrote on last edited by
        #19

        Clay, I like where it is going... One Headline missing (imo), is Analysis... How seeing a problem, and solving it logically, leads to programming projects. I guess in your terms: Why Does Programming Exist? Because we have inexpensive computer systems that CAN be programmed, and help solve problems. What are Programs and who can Create them? Solutions to specific problems. Anyone who can code. They are born of need/desire for things to be different than they are. For example, wouldn't it be nice if your cell phone would go Silent when you walk into a movie theatre, and then goes back to normal when you leave. Programming is about making that happen. The analysis that goes in first. Which leads to design decisions (which make or break apps)... And the ultimate requirements (GeoFencing vs. BlueTooth "silence" signal). Anyways, just some thoughts. As a software developer, my first position was Programmer/Analyst, and the Analyst portion was the coveted part... So I could be biased. HTH

        B 1 Reply Last reply
        0
        • B B Clay Shannon

          I can't bring myself to go that "plain vanilla," but I did compromise with this iteration: http://jsfiddle.net/clayshannon/LnWAp/4/[^] BTW, say "hey" to your brother Chad for me. I'm a Packers fan from way back. Hopefully he hasn't gone over to the Titans.

          M Offline
          M Offline
          Marc Clifton
          wrote on last edited by
          #20

          B. Clay Shannon wrote:

          BTW, say "hey" to your brother Chad for me.

          I'm an only child. :) Marc

          1 Reply Last reply
          0
          • D dan sh

            B. Clay Shannon wrote:

            Perhaps your definition of the word "many" differs from mine.

            Any article that uses the word many to describe proportion of acceptance or rejection of certain notion is of course doomed. Never use many if you are trying to impose a presumably generalized opinion.

            B. Clay Shannon wrote:

            As to programming expanding your mental horizons, it's commonly accepted. Do some research.

            No it does not. Define mental horizon.

            B. Clay Shannon wrote:

            I think you meant "lose" (the opposite of gain, or win) not "loose" which is the opposite of "tight."

            Are you gonna talk about or grammar and language or content? (Hey loo, gonna is not even a word and this thing which I typed is wrong)

            B. Clay Shannon wrote:

            A major point of the syllabus is that there are myriad ever-changing technologies, but that there are certain basics/constants that are necessary.

            No. Nothing is necessary. Nothing is mandatory. The whole presumption is wrong. If you were to talk about extreme basics of programming regardless of technology, only thing you are left with is Maths. Yes one can debate a lot on this but everything in the end would lead to Maths.

            My CP workspace: Incredibly trivial and probably useless code samples[^]

            C Offline
            C Offline
            C Grant Anderson
            wrote on last edited by
            #21

            I think that you're having a bad day and being argumentative. We all have bad days. Sometimes they go on for quite some time. But do we have to share the badness with others? But the originator of the post has a valid objective - Introducing computer programming to people who know nothing about it. With the presumption that they do. And he's stated his target audience is school kids. He should refine his target audience more but it's a well thought draft and he's asking for constructive input. I think he's doing a good job with what he's got. And with his intentions. We should honor that. - Grant

            D 1 Reply Last reply
            0
            • E englebart

              Compare and align against the work that ACM has done. http://www.acm.org/education/curricula-recommendations[^] http://www.acm.org/education/CS2013-final-report.pdf[^]

              B Offline
              B Offline
              B Clay Shannon
              wrote on last edited by
              #22

              Thanks; aisle czech those out.

              1 Reply Last reply
              0
              • K Kirk 10389821

                Clay, I like where it is going... One Headline missing (imo), is Analysis... How seeing a problem, and solving it logically, leads to programming projects. I guess in your terms: Why Does Programming Exist? Because we have inexpensive computer systems that CAN be programmed, and help solve problems. What are Programs and who can Create them? Solutions to specific problems. Anyone who can code. They are born of need/desire for things to be different than they are. For example, wouldn't it be nice if your cell phone would go Silent when you walk into a movie theatre, and then goes back to normal when you leave. Programming is about making that happen. The analysis that goes in first. Which leads to design decisions (which make or break apps)... And the ultimate requirements (GeoFencing vs. BlueTooth "silence" signal). Anyways, just some thoughts. As a software developer, my first position was Programmer/Analyst, and the Analyst portion was the coveted part... So I could be biased. HTH

                B Offline
                B Offline
                B Clay Shannon
                wrote on last edited by
                #23

                Thanks; I have updated it, and changed the appearance a bit (somebody else's suggestion), and will look at another couple of links; I will post the result (link) when finished.

                1 Reply Last reply
                0
                • B B Clay Shannon

                  I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                  B Offline
                  B Offline
                  B Clay Shannon
                  wrote on last edited by
                  #24

                  Latest iteration is http://jsfiddle.net/clayshannon/LnWAp/11/[^]

                  1 Reply Last reply
                  0
                  • B B Clay Shannon

                    I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                    P Offline
                    P Offline
                    patbob
                    wrote on last edited by
                    #25

                    I think I'd include a section on the differences between software, firmware, FPGAs, etc. The lines between these different types of programming are blurring, so knowledge about one gives some insight into the others. Many items are controlled by firmware these days, from refrigerators to cars. To me, this is the crux of why everybody should have some programming education, not because they should all become programmers, but because it helps people to feel in control of their world rather than at the mercy of it. For example, new cars consist of multiple modules of firmware, all interoperating. An understanding of software in general provides a lot of understanding of why they work they way they do (never needing a tuneup, check-engine light, OBD2 readers, learning adaptive shifting, etc.).

                    We can program with only 1's, but if all you've got are zeros, you've got nothing.

                    B 1 Reply Last reply
                    0
                    • P patbob

                      I think I'd include a section on the differences between software, firmware, FPGAs, etc. The lines between these different types of programming are blurring, so knowledge about one gives some insight into the others. Many items are controlled by firmware these days, from refrigerators to cars. To me, this is the crux of why everybody should have some programming education, not because they should all become programmers, but because it helps people to feel in control of their world rather than at the mercy of it. For example, new cars consist of multiple modules of firmware, all interoperating. An understanding of software in general provides a lot of understanding of why they work they way they do (never needing a tuneup, check-engine light, OBD2 readers, learning adaptive shifting, etc.).

                      We can program with only 1's, but if all you've got are zeros, you've got nothing.

                      B Offline
                      B Offline
                      B Clay Shannon
                      wrote on last edited by
                      #26

                      Thanks, but I think that's "beyond the scope" of this introductory course. It is intended for people as young as middle school and to just "scratch the surface" of the programming world in a "sampler"/"overview" fashion. I appreciate your thoughts on why all should learn *about* programming - to feel more in control of "their world."

                      1 Reply Last reply
                      0
                      • B B Clay Shannon

                        I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                        M Offline
                        M Offline
                        mfagan
                        wrote on last edited by
                        #27

                        I find any discussion about teaching programming to the masses interesting because back in 1996-97 while working on my Master's thesis, I included a programming component in the Computer Skills and Applications class (course for non-computer science majors that introduced students to the Internet, word processors, spreadsheets, and database applications) that I was able to teach at my university. After graduation, I did teach computer science at the community college level for 3 years. Having said that, one thing about writing a syllabus is that one should include outcomes--what should a student be able to do upon completion of this course? You did say that you envision this course to be a one year course--if you're looking at it as a "survey" type course (i.e. learn about these topics but not actually implement anything), then I think a year is fine. If the outcome is for students to be able to develop a web site, desktop application, mobile app, etc., the time frame is far too aggressive for them to have a positive experience (teaching programming is tough--you're teaching people how to problem-solve and it's a building process and students need have time to digest it--and given the target group--grade school/high school--they're brains are just at that point where they're able to think more logically).

                        B 1 Reply Last reply
                        0
                        • M mfagan

                          I find any discussion about teaching programming to the masses interesting because back in 1996-97 while working on my Master's thesis, I included a programming component in the Computer Skills and Applications class (course for non-computer science majors that introduced students to the Internet, word processors, spreadsheets, and database applications) that I was able to teach at my university. After graduation, I did teach computer science at the community college level for 3 years. Having said that, one thing about writing a syllabus is that one should include outcomes--what should a student be able to do upon completion of this course? You did say that you envision this course to be a one year course--if you're looking at it as a "survey" type course (i.e. learn about these topics but not actually implement anything), then I think a year is fine. If the outcome is for students to be able to develop a web site, desktop application, mobile app, etc., the time frame is far too aggressive for them to have a positive experience (teaching programming is tough--you're teaching people how to problem-solve and it's a building process and students need have time to digest it--and given the target group--grade school/high school--they're brains are just at that point where they're able to think more logically).

                          B Offline
                          B Offline
                          B Clay Shannon
                          wrote on last edited by
                          #28

                          Thanks for that; I may use that terminology ("Survey"). Basically, my goal for the students can be deduced from what I would tell them (something like this) at the outset: I will consider this class successful for you if you have reached any of the following conclusions at the end of the class: Now that I understand what programming involves, (a) ...I know that I want to become a programmer, and will explore it further (b) ...I know that I will *never* want to become a programmer, and will focus on other things (c) ...I will be able to relate to future programming coworkers better (they are neither demigods nor hopeless nerds)

                          1 Reply Last reply
                          0
                          • B B Clay Shannon

                            I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                            S Offline
                            S Offline
                            SkysTheLimit
                            wrote on last edited by
                            #29

                            It looks like a good comprehensive overview of programming and what it entails. The only thing that I would suggest is maybe including a short introduction to logic and critical thinking and how it relates to finding good solutions (algorithms) to programming problems. I'm not sure if this is part of the Algorithms section in your outline. Some people enjoy that aspect of programming and others are quite happy just to program according to some specification. In my opinion that is what is exciting about programming, otherwise it is more like being a translator - translating the language of the spec into a programming language (a simplistic view, I know). This also exposes the students to another of the many aspects of programming to help them decide which, if any, is right for them. In the past, I taught a first year university course in 'fundamentals of computing' where most of the class had not had much interaction with a computer before (some had never even switched a computer on) and they struggled with the logical step-wise decomposition of a solution into terms that a computer understands. Of course, most people in developed countries today have more exposure to technology so I'm not sure that this is a big an issue anymore.

                            B 1 Reply Last reply
                            0
                            • S SkysTheLimit

                              It looks like a good comprehensive overview of programming and what it entails. The only thing that I would suggest is maybe including a short introduction to logic and critical thinking and how it relates to finding good solutions (algorithms) to programming problems. I'm not sure if this is part of the Algorithms section in your outline. Some people enjoy that aspect of programming and others are quite happy just to program according to some specification. In my opinion that is what is exciting about programming, otherwise it is more like being a translator - translating the language of the spec into a programming language (a simplistic view, I know). This also exposes the students to another of the many aspects of programming to help them decide which, if any, is right for them. In the past, I taught a first year university course in 'fundamentals of computing' where most of the class had not had much interaction with a computer before (some had never even switched a computer on) and they struggled with the logical step-wise decomposition of a solution into terms that a computer understands. Of course, most people in developed countries today have more exposure to technology so I'm not sure that this is a big an issue anymore.

                              B Offline
                              B Offline
                              B Clay Shannon
                              wrote on last edited by
                              #30

                              Thanks, Wendy. Yes, your thoughts on logic and critical thinking remind me of a couple of books I would recommend and "touch on," one of them being "The Design of Everyday Things" by Donald Norman.

                              1 Reply Last reply
                              0
                              • B B Clay Shannon

                                I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                                M Offline
                                M Offline
                                Member 8117292
                                wrote on last edited by
                                #31

                                "A typical 'Day in the Life' of a Programmer" On this topic I could see it expanded to two categories: 1. A typical day for a programmer in a properly managed department. 2. A typical day in a department ran by a hate driven, non technical, MBA Nazi.

                                B 1 Reply Last reply
                                0
                                • M Member 8117292

                                  "A typical 'Day in the Life' of a Programmer" On this topic I could see it expanded to two categories: 1. A typical day for a programmer in a properly managed department. 2. A typical day in a department ran by a hate driven, non technical, MBA Nazi.

                                  B Offline
                                  B Offline
                                  B Clay Shannon
                                  wrote on last edited by
                                  #32

                                  I get your drift. Unfortunately, having no experience with the former, it would be hard for me to even envision.

                                  M 1 Reply Last reply
                                  0
                                  • B B Clay Shannon

                                    I get your drift. Unfortunately, having no experience with the former, it would be hard for me to even envision.

                                    M Offline
                                    M Offline
                                    Member 8117292
                                    wrote on last edited by
                                    #33

                                    Here's one good starting point. Leadership Some more. IT leader ship failures

                                    1 Reply Last reply
                                    0
                                    • B B Clay Shannon

                                      I have created a syllabus for an "Intro to Programming" course. I am open to suggestions on how to tweak it*. You can see it here: http://jsfiddle.net/clayshannon/LnWAp/[^] * If you have a "better idea" for a syllabus, simply create a "fork" of that and provide the link.

                                      J Offline
                                      J Offline
                                      Jack Zelig
                                      wrote on last edited by
                                      #34

                                      Under "Basic Website Creation", I wouldn't point people towards W3Schools as a resource. They are not affiliated with the W3C and have a bad reputation amongst web professionals. This site will explain more: http://www.w3fools.com/[^] Maybe point them towards a web dev community, such as SitePoint[^] instead.

                                      1 Reply Last reply
                                      0
                                      • C C Grant Anderson

                                        I think that you're having a bad day and being argumentative. We all have bad days. Sometimes they go on for quite some time. But do we have to share the badness with others? But the originator of the post has a valid objective - Introducing computer programming to people who know nothing about it. With the presumption that they do. And he's stated his target audience is school kids. He should refine his target audience more but it's a well thought draft and he's asking for constructive input. I think he's doing a good job with what he's got. And with his intentions. We should honor that. - Grant

                                        D Offline
                                        D Offline
                                        dan sh
                                        wrote on last edited by
                                        #35

                                        Bad day! I have bad months. Proper frustrated. I fight with anyone on anything without considering any fact at all.

                                        My CP workspace: Incredibly trivial and probably useless code samples[^]

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • World
                                        • Users
                                        • Groups