Course Selection Advice Needed: Numerical Methods vs. Software Engineering vs. Big Data Mining

IntoDarkness

Active Member
This is a random syllabus of SE, a hotch potch TBH

Computer Graphics
Virtual Reality
Procedural Programming
Systems Analysis
Java
Digital Communications
Calculus
Differential Equations
Engineering Statistics
Business and Professional Speaking
Data Warehousing
Biomedical Informatics
Linux Operating System
Visual Basic
Visual C++
i wouldn't call whatever you listed there a syllabus...

a real syllabus is something like below for a 2nd tier engineering school
my undergrad was a 3rd tier engineering school but offered something similar
tier 1: usnews top10
tier 2: usnews top20
tier 3: usnews top30

WeekDayTopicNotes
1​
Tue, Apr 02​
General Logistics​
1​
Thu, Apr 04​
Resume Review​
2​
Tue, Apr 09​
Logistics​
2​
Thu, Apr 11​
UML and Agile/Waterfall​
3​
Tue, Apr 16​
Use Cases, User Stories​
3​
Thu, Apr 18​
Use Cases, User Stories (cont.)​
4​
Tue, Apr 23​
Use Case Diagram and Software Development Methodologies​
4​
Thu, Apr 25​
Design Use Cases and Database Schemas​
5​
Tue, Apr 30​
Design Use Cases and Database Schemas (cont.), Layered Architecture, and Financial Aspects of Software Engineering​
5​
Thu, May 2​
Test Driven Development and Financial Aspects of Software Engineering​
6​
Tue, May 7​
Financial Aspects of Software Engineering (cont.)​
6​
Thu, May 9​
Strategy, Observer Design Patterns​
7​
Tue, May 14​
Decorator, Factory Design Patterns​
7​
Thu, May 16​
Singleton, Command, Adapter, Facade, Template Method, Iterator Design Patterns​
8​
Tue, May 21​
Testing​
 

Daniel Duffy

C++ author, trainer
Ah yes, UML and GOF patterns. My company Datasim was the first in the Netherlands to introduce and promote these tools in the form of education, developing applications and helping companies adapt to the OOP/C++ revolution. It would be fair to say that I am an expert here. UML and GOF peaked around 2000.
These tools are neither necessary nor sufficient for successful software deployment. I am intimately familiar with their strengths and limitations in real life and I have integrated them as part of my more robust methods. I won't go into the details here. But UML and GOF are basically handy documentation and design artefacts. They should not be the main driver of software projects because doing so will lead to sorrow.

To make it into a real engineering process my strategy is:

1. Requirements Analysis
2. System Decomposition or OO Analysis (BTW UML use cases don't work in real life!! (*))
3. OO Design (GOF is one but not the only option)
4. C++ (etc.)
5. Acceptance testing, rollout

(*) I mentioned this to Ivar Jacobson (inventor of use cases) at a conference. I was interrupted by the chairman who called a coffee break. LOL

We integrate UML and GOF (adapted to the current century) into the Baruch Advanced C++ course. The students do a mini-project based on the above 5 steps. We apply them to an option pricing application but it could be any application because I have a defined process for steps 1-5.
It prepares them well IMO for bigger software projects.


Reflecting on this, I don't think UML of GOF should be taught in universities. They are more like products than fundamental principles. More important would be to do OOP properly. And the vendors of UML tools want to buy their extremely expensive CASE tools!
 
Last edited:

Daniel Duffy

C++ author, trainer
"They tend to be very academic with little in the way of learning the 'art' of coding"

Universities tend to turn up their noses at coding, which is a great shame. It's one thing understanding an algorithm on paper but the icing on the cake is when you get the algorithm into the computer.
The best programmers in the Netherlands tend to come from technical high schools (not quite university status.)
 
Last edited:

Daniel Duffy

C++ author, trainer
System and Design Patterns
We discuss the popular design and system patterns that are based on the object-orient model. We concentrate on approximately 20% of the patterns that account for 80% of the effectiveness in software development. We also show how to create next-generation patterns using the multiparadigm programming models that C++11 supports. Class and Component diagrams in UML, Whole-Part pattern, Object-Oriented Metrics,creational patterns, structural patterns, behavioral Patterns, next Generation Design Patterns, examples and applications.

I don't think any other institution offers this breadth and depth of detail.
 

Daniel Duffy

C++ author, trainer
i wouldn't call whatever you listed there a syllabus...

a real syllabus is something like below for a 2nd tier engineering school
my undergrad was a 3rd tier engineering school but offered something similar
tier 1: usnews top10
tier 2: usnews top20
tier 3: usnews top30

WeekDayTopicNotes
1​
Tue, Apr 02​
General Logistics​
1​
Thu, Apr 04​
Resume Review​
2​
Tue, Apr 09​
Logistics​
2​
Thu, Apr 11​
UML and Agile/Waterfall​
3​
Tue, Apr 16​
Use Cases, User Stories​
3​
Thu, Apr 18​
Use Cases, User Stories (cont.)​
4​
Tue, Apr 23​
Use Case Diagram and Software Development Methodologies​
4​
Thu, Apr 25​
Design Use Cases and Database Schemas​
5​
Tue, Apr 30​
Design Use Cases and Database Schemas (cont.), Layered Architecture, and Financial Aspects of Software Engineering​
5​
Thu, May 2​
Test Driven Development and Financial Aspects of Software Engineering​
6​
Tue, May 7​
Financial Aspects of Software Engineering (cont.)​
6​
Thu, May 9​
Strategy, Observer Design Patterns​
7​
Tue, May 14​
Decorator, Factory Design Patterns​
7​
Thu, May 16​
Singleton, Command, Adapter, Facade, Template Method, Iterator Design Patterns​
8​
Tue, May 21​
Testing​
I avoid Singleton like the plague.
For me, high-impact patterns are Builder, Composite, Façade, Mediator, Visitor, Strategy, Bridge.
GOF Observer is awful.
 

Daniel Duffy

C++ author, trainer
Last edited:
Top