"Software life-cycle. Fundamental concepts of software design. Supporting modern language features. Verification and validation techniques. The course is organized around a major group software project." (catalog)
Essentials of Software Engineering (3rd ed.)
by Tsui, Karam, Bernal
The Mythical Man-Month
by Brooks
Internet Archive Version: here
Class Attendance / Participation (3 dropped) | ~20% |
Quizzes |
~30% |
Homeworks/Project Milestones | ~30% |
Project Demo | ~20% |
As the class progresses I may find it necessary to alter the percentages.
This class is a lot of work. You will have to write computer programs.
Here are some things you will be instructed in:
Starting in week 6 students will be assigned to project teams to implement a class-wide project that will be brainstormed by the class and scoped by the professor. Each team will have a project managers.
Approximately every third week project managers will give a report of the progress of thier team to the class. Project Managers are responsible for reporting, maintaining records of progress, negotiating internal responsibilities and communicating with other teams. Project managers are expected to spend half their time on these activities and the other half on engineering work.
Team members are responsible for delivering their components to the project manager.
I prefer to give many small assignments which build up a picture of overall student learning success rather than to rely on one or two large exams which students may bomb based on non-learning related complications.
At the end of the day, learning requires the active initiative of the student. I consider myself someone who points students in the right direction and can/will explain the fundamentals of a subject matter. I can't actually do the work of learning for a student. That takes effort and self-motivation. I will help to provide structure and incentives for that learning, but you also need to learn how to expand on this subject yourself. In a technical field like this, you will be left behind the field in about six months, regardless of how well I present the subject matter, if you can't keep learning on your own.
I like to stop talking periodically and let students ask questions.
Class attendance will be determined by completing index cards. The index cards are also a means for me to get feedback about the course.
For each class please write your name on a card, the date, your student ID and a comment about the course.
If you would like to submit an anonymous comment, take an extra card and don't put your name on it.
Collecting feedback this way is a useful and different source of input than other media. It helps me track how the class is understanding the material. Something about paper causes students to say different things than they do on a website.
This course has a number of readings, some learning and using of tools, and a multi-step team project
Some of the team project work will require additional research outside of class preparation.
The goal of the labs will be to give you a chance to familiarize yourself with basic software engineering technologies and processes for modern software development.
It is a brave new world. As an instructor it is very difficult to figure out how to navigate the world of laptops, networking and multi-tasking. The landscape of technology and education is moving very fast.
When it comes to taking quizzes as an instructor I often wrestle with figuring out how to make sure people aren't cheating. How can I proctor a quiz and be sure that people aren't relaying their questions via Google glass to someone else or keeping banned information on hand? Should I lock down the classroom? Buy a cell-phone jammer? Then I wonder, if this is the world we live in, then why are we making artificial rules for what the world is like when you take quizzes?
Several quizzes will be assigned covering the assigned readings and discussions in class. The goal of the quizzes is to motivate you to process and learn the material in the text book and lecture.
For this class we are going to implement the following quiz policies:
You can use any archival resources you want - Readings, webpages, etc. Unless otherwise indicated you may not communicate with other people in real-time while a quiz is being administered.
The plan as of now is to roll a die every Thursday. We will execute a quiz 1/3 of time. It will cover the reading material that has not been quizzed yet and will be primarily comprehension based. It will be fast, but you can use written resources.
Some of the quizzes will be replaced with homework review questions that will be more synthesis focussed.
I strive to pick the best-of-class tools to use to administer this class and with which to teach. That requires using multiple websites. They are carefully chosen. Unfortunately, like most of the rest of online activities they are also highly fragmented (not one super-tool). We utilize several online tools in this class. Please familiarize yourself with their use and location. I expect you to check in and use all of them:
Another way in which technology is changing is the way it is used during lecture time.
On the one hand my students are almost always adults. You should be able to choose to use electronics in class if you want. On the other hand there is a world of sophisticated software, marketing and designs that are doing everything they can to get your attention. They are so good at what they do that you don't have control over your own cognition. One thing that is clear - if you have your laptop open, if you are texting, tweeting, pinteresting, doing email, surfing the web, playing candy crush etc, you are not learning as much as people who put away their electronics and focus fully on the class. The truth is you are lousy at multi-tasking and it's hurting your grades because it's preventing you from thinking deeply about anything. Putting away the devices requires discipline that some of you need to learn, but won't unless you are forced.
There's an additional problem though. It turns out that if the person next to you is using a laptop, it hurts your GPA also. Using your laptop is like second-hand smoke. It's not just you hurting yourself, it's you hurting other people as well.
Clay Shirky has written a long article about these problems that is worth considering as we start off a new semester
To try and handle this we are going to reserve the front half of the classroom as a technology-free zone. In these rows you are asked to put away your phones, your tablets, your laptops, your Google glass, your secret-spy earpiece, etc. for the duration of the class. You can takes notes on paper. For those who want the distraction free environment, this is for you.
We have many goals for students taking courses in the Computer Science Program. Some of them are specific to particular courses, but almost all are examples of our Program Learning Outcomes (PLOs).
This are the overarching Computer Science Program Learning Objectives