Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Questions tagged [curriculum-design]

The curriculum of a Computer Science course is a sequence of planned subjects that the students will be taught in the course. This tag should be used for questions asking for guidance on designing parts of that sequence, the entire sequence or questions related to the preferred order in which to teach subjects. Question relating to a single lesson should NOT receive this tag.

50
votes
8answers
16k views

Students can solve programming exercises but not explain their solutions. What to do?

I've seen too many cases when a student has completed a programming exercise (without cheating) but can't say, for example, what type of values a variable contains during program runtime (in case of ...
49
votes
11answers
29k views

How bad is a Computer Science course that doesn't teach Design Patterns?

I'm at final year of my graduation in Computer Science in Brazil. The university that I study is one of the best in the country and my passion is for Software Engineering. It disappoints me, in ...
49
votes
9answers
7k views

What are healthy, productive ways to encourage students to progress to more advanced constructs as opposed to staying with the familiar?

In my experience, there are always students who are resistant to moving to more advanced constructs. They want to stay with what they already know. For example, when they are taught arrays, they ...
23
votes
15answers
2k views

What program follows “hello, world”?

You've just demoed your first bit of code in whatever language you're teaching. The requisite "hello, world" has been said. The program has been compiled (or interpreted) and run. Now what? There has ...
22
votes
10answers
7k views

How important is learning Binary for first-year college students?

I teach my freshmen Binary because I'm old school I guess. I do want them to know how data is stored and that means Binary to me. How do others feel? Is it a must learn early or a nice to have if ...
21
votes
11answers
5k views

What could be the possible advantages of teaching Scheme as first programming language?

When I started my Computer Science studies, Scheme was the first thing we learned in our first programming course. Almost 8 years later, I ask a friend of mine, and it seems that they are still ...
21
votes
9answers
6k views

How can I convince my fellow CS teachers that reaching every student is a worthwhile goal?

I tried hard, in the latter part of my career, reach every student in every class period that I taught. That this may be an unreachable goal is of little interest to me. I think that I must do this. ...
19
votes
6answers
6k views

How do you teach Big O to high schoolers with varying degrees of math exposure?

My second semester programming curriculum includes a searching and sorting unit and mentions Big O notation, giving the notation for each search and sort we implement. It does not show the ...
19
votes
11answers
679 views

Should assembly language be taught in an introductory course (or soon after)?

Should ye ole' fashioned assembly language be taught to help students develop a sense of how actual underlying computational hardware supports/allows running their higher-level or more abstract ...
19
votes
10answers
4k views

What ethical practices do students (as potential software engineers) need to be trained in?

The kinds of things that people with technical training can do have societal impacts, both for good and evil. Programmers are building the future. One future nightmare is Skynet. Many problems in ...
18
votes
2answers
334 views

How does one create a balanced AI curriculum in light of the popularity of Deep Learning?

During the past decade, interest in machine learning has exploded, especially due to the many and growing successes of deep learning approaches using convolutional and other neural networks. To those ...
17
votes
6answers
2k views

Order to Teach Topics in an Intro Programming Class

This is a question for those of you who have an intro class before AP Computer Science (or maybe even just an intro class). What order do you teach the topics in your intro class? I start with if ...
15
votes
7answers
397 views

Teaching a blind high school student

I am teaching a blind high school student in my APCSA class. All students are using a combination of CodeHS and Project Lead the Way curriculum. Neither of these are very friendly to my blind ...
13
votes
11answers
3k views

What should be included in a best practices C course?

At our University, we have in the first semester a very difficult C Introductory Course, that consists of presenting a shortened version of the language specification: What are for/while loops, if ...
13
votes
6answers
528 views

How should educators ensure their curriculum remains relevant over time?

I'm sure we can agree that there are some parts of theoretical CS that are unlikely to change - topics such as computation theory (Turing machines, automata) will be useful and applicable for many ...
13
votes
4answers
478 views

The impact of switching to Java 10

Java 9 and 10 were both released recently -- Java 9 was released on Sep. 21st, 2017 and Java 10 was released on Mar. 21st 2018. These two releases contain some very big changes: Java becomes modular ...
12
votes
9answers
1k views

How to teach students not to use jump statements

We all know goto is the spawn of satan. To learners though, it seems easy and quick. In simple, short program codes having a goto or two won't turn the code into unreadable spaghetti code. So students ...
12
votes
6answers
389 views

Is it more effective to teach low level languages before high level ones or vice versa?

When structuring a Computer Science curriculum, which prepares students most effectively for a career in technology today? Consider the following scenarios over a student's college career: Starting ...
11
votes
1answer
1k views

What belongs in a low-math undergraduate AI elective besides ML?

The primarily undergraduate institution at which I teach does not have an Artificial Intelligence course. We do have classes on Data Analysis and Machine Learning: DATA 150: Introduction to Data ...
11
votes
6answers
456 views

Programming curriculum for elderly students

I have created a basic computer education project for an audience of elderly students (over 50 years old). The course is very basic, with lessons from "How to turn on/off your home computer" to "...
10
votes
5answers
898 views

Curriculum choice for AP Computer Science Principles

I will be student teaching an AP Computer Science Principles class next year and have run into an issue. All of the high schools around us are using the Code.org curriculum but from talking to ...
10
votes
6answers
322 views

Encourage students to be independent

As is often the case, there is usually more than one way to approach a problem or task. Currently, my students use what they were taught in the lessons (which is expected). When they stumble upon a ...
10
votes
4answers
655 views

What would be reasonable to include in an Introduction to AI class for a 7th-8th grade after school program?

The class meets just 8 times for 2.5 hours weekly, aimed at 7-8th graders with very basic programming skills. Possibilities off the top of my head: computer learning (neural nets and/or genetic ...
9
votes
3answers
564 views

How to supplement Khan Academy

First: I'm a coder, not a teacher. That said, I led a 4-session "Coding for Teens" class at a local library this month using Khan Academy (KA). I'm contemplating scheduling another series maybe in ...
9
votes
2answers
160 views

Does/should a CS education include information about responsible use of human subjects in research

We had a question over at academia.se about what responsibility a PhD supervisor has for teaching students about the use of human subjects in research. In some fields it is obvious that a research ...
9
votes
3answers
370 views

Agile / SCRUM Course Structure: Downsides? Resources?

I am planning to teach an undergraduate-level course on mobile application development. I have been thinking about the best way to structure such a course, and am starting to believe that an agile ...
9
votes
2answers
681 views

Should I teach modern web development in an introductory programming course? How?

I'm currently teaching a introductory programming class in a technological university course (FYI, this is a type of university course that is not a BS). The recommended language to use for this ...
9
votes
4answers
262 views

How to effectively teach strings and string literal constants?

I am teaching a general introductory CS course to 18-19 year olds, with Python3 as a support language, and I am not satisfied with how some students respond to strings and string literals. That is ...
8
votes
5answers
202 views

How can I incorporate agile development into CS1/CS2 courses?

I would like my students to get the most out of the course by experiencing an agile development structure in their projects. Currently I give 5 assignments, each building on the previous one and ...
8
votes
4answers
254 views

Should unit testing be taught in introductory programming classes?

I understand the advantages of test-driven development, but should unit testing be taught/used in CS1 (the introductory class) for computer science students learning? I am aware of researchers saying ...
8
votes
6answers
824 views

Why isn't Functional Programming Taught First?

We've recently gone through the process of selecting an intern from a local university to join our team for the summer. We are using F# and almost exclusively using functional programming techniques ...
8
votes
3answers
217 views

What does a certification program for CS high school teachers need to include?

If a high school math or science teacher was going to begin teaching computer science, what do they need to know? I know of many teachers given this responsibility without any training for it. Since ...
8
votes
3answers
188 views

How to teach algorithms: implementation or application?

One unit of CS50 AP's curriculum focuses on three main sorting algorithms: bubble sort, selection sort, and insertion sort. There is also discussion of something more efficient like merge sort. One ...
8
votes
2answers
354 views

Teaching information security to students without basic IT knowledge

Context I've been mandated by the university of Tokyo to teach Information security courses during my working hours (initiation level). We are 3 teachers, 2 security researchers employed by the ...
7
votes
5answers
354 views

Teaching high-level versus low-level concepts

In creating a general introductory course on computers or computing (programming and/or CS), does one mostly present high level concepts (recursion, computational complexity, concurrency, etc.), ...
7
votes
3answers
890 views

Introducing image processing - Should I teach the math

During the summer I am teaching a programming workshop for students in a high school computer science major. The purpose of the workshop is to introduce them to image processing, and to have them ...
7
votes
5answers
156 views

Instructional Methods for In-class Code Demos

When demoing code in class, I have tried at least three different methods of instruction: Write code live and have students type along Write code live and have students follow my logic while only I ...
7
votes
4answers
107 views

Opportunities for Interdepartmental Collaboration

At my current school site (high-school level, 14-18 year olds), I am the only full-time CS teacher. While I don't mind working on my own, there are occasions where I think that collaborating on ...
7
votes
3answers
181 views

Teaching syntactic sugar

When I show my code to students I tutor, they ask about "all those things in my code", which refers (quite vaguely) to things such as shortened ifs, post\...
7
votes
1answer
386 views

How Can I Apply Spaced Repetition To Teaching CS?

Lately I've been seeing quite a bit on the importance of spaced repetition in retention of skills. My job is to level up a group of C# developers and I'm trying to figure out how to apply the idea of ...
7
votes
2answers
178 views

Placement of App Inventor in high school CS curriculum

Over the past couple days I've had my first opportunity to dive into App Inventor. It has quite frankly blown my mind. I had always (mistakenly) grouped it with Scratch, Snap!, etc. as "just another ...
6
votes
12answers
613 views

For a beginner, is it better to start with C or a higher level language?

Some friends of mine, over the years, asked me suggestions on what to study for learning how to code. Most of them had no real final purpose, just wanted to be able to understand programming and be ...
6
votes
6answers
259 views

Should I Provide Answers To Exercises?

I'm preparing some exercises to introduce software developers who have no experience with Scheme to the language. Part of the exercises are simple things like: ...
6
votes
3answers
512 views

Is SICP appropriate for an advanced high school CS course?

One of the most influential texts in computer science is Structure and Interpretation of Computer Programs. Before changing to a Python-based approach, MIT used this book for their introductory ...
6
votes
4answers
330 views

What statistics should be in a computer science degree?

My university has decided that it should give a core (that is compulsory) statistics class to its computer science undergraduates. This opens the interesting question of what should be in such a ...
6
votes
10answers
388 views

When teaching Web Development, should server or client side come first?

I teach full stack web development because the purpose of the course is to give an overview of how a complete website is created, from SQL for database management to HTML/CSS/JS for front-end to ruby ...
6
votes
7answers
386 views

How to overcome the TDD/BDD time fallacy

I've observed an unusual thing happen when teachers try to introduce Test-Driven Development (TDD) or Behavior-Driven Development (BDD) to their classes. Even though the teachers invariably encourage ...
6
votes
5answers
314 views

Benefits of explaining low-level architecture in a programming class

When teaching an intermediate or advanced highschool programming class that also touches on general CS concepts (algorithms, etc), what are the benefits of explaining low-level computer architecture? ...
6
votes
5answers
257 views

Show students the consequences of their design decisions

In my experience, university students spend years writing throw away code. They develop assignments, get them auto-marked, then move on. On the other hand, professional developers are plagued by the ...
6
votes
2answers
168 views

What is a good design for a Capstone Course in CS?

Some Computer Science programs in the US have a course that is informally referred to at a Capstone Course that attempts to bring together most of what the student has learned. The course may be ...