Free text answers on our December 10, 2020, engagement instrument

1. The team engagement practices that were both used by my team and useful to the project were:

Listening to everyone's ideas and usign reason to choose the most sutiable blend of ideas for our endevaors.

Communication. Weekly meetings: We met several times a week in order to communicate ideas and make sure everyone was on the same page. Group chat: Over discord, the location of weekly meetings and all messages sent between group members. Fantastic way to log all communications, as well as quickly update each other about project events/concerns. Also used to store links and impotant project screenshots.

Testing: We outlined the workflow for starting the project for ease of access in bug hunting

I did find it interesting to see everyones Gallup strengths when we first met. As we worked throughout the semester, the those traits definitely came out in people and played to our advantages. We were able to leverage everyones strengths which ultimately helped us create a really balanced team - one of the most balanced teams I've been on for a course which is good.

Our team made sure to meet and discuss how our work was going every week. We'd try to work together as much as possible on things as well. Definitely the scrum meetings where we just did demos of what we worked on were super helpful in keeping our team together and on the right track.

We had a group chat, discord, that let us communicate with our team members everyday. It shows who is online, and lets us create different channels for different purposes, as well as send notifications to people if something is important. Thus, we were basically in communication with eachother everyday. This was key in keeping people engaged. The weekly reports by team members helped me gauge how I was doing within the group, and also let me reflect on my performance each week.

Discussions regarding prior course/technology experience was very helpful in dividing up tasks. Furhtermore, discussions on expectations (i.e. the team charter) was also helpful in setting the tone for the semester.

We had sprint meetings weekly as well as recap meetings weekly. Every Sunday and Wednesday we met, talked about anything interesting going on in life before going into meetings for the week. These kept everyone engaged and on the same page. We broke into additional sub-teams that allowed additional meetings to be made seperately of our two weekly meetings. Using slack to communicate throughout the day. Ice breakers definitely helped the most in terms of team engagement! Weekly meetings on Saturday's and frequent team meetings after every class

We were on zoom a lot, which helped us get to know each other. We also had a really active Slack channel where we talked about the project and were able to interact in a casual way.

COMMUNICATION -- That was key. Making sure that we as a team communicated and understood what was expected of us. We used discord to commmunicate. At first we only talked once a week, but as the semested progressed we started talking alot more. Now we talk everyday.

To answer this question: None. But I think we would have benefited from weekly group debriefs.

During one of the casual debreifs (conversations) we had, we talked about what we learned from this course and the struggles we have had while developing this project. I think conversations like this connect us more - this humanize us on the same level and build lasting relationships.

To be honest, I did not find my team atomsphere very engaging this semester. Most members of my teams are commited in doing their work, but they showed very little interest in building a good team atomsphere or a community. I think a big reason is that all of us are constantly stressed our about this project, therefore we were never really in the mood of building moral or community. While I always try to be as specific and as helpful as possible in my weekly mentoring tips, I have been getting unhelpful comments like "good job" and "nice work" for weeks. And we pretty much only talk about work. While this has been a valuable experience, I wish I have had the chance to interact with my teammates more as a fellow student rather than a stressed out student.

We made sure to have a minimum of one meeting a week for the team, and one meeting with the client. this ensured that everybody was getting facetime with each other and keeping their head in the game. We also used Slack to great effect.

We have set expectations every week to keep everyone in our team engaged. By keeping a goal in mind, we can develop and abide by the timeline of the project until the project delivery.

We used slack, trello and had weekly meetings through zoom. Slack and the zoom meetings were the most useful for team engagement but not as much as I would have wished. We didn't really do anything to promote team bonding which I feel like would have been really beneficial to the team. Since it felt like we were all strangers and didn't want to overstep.

Stakeholder Meetings: Meeting at least every other week with (client1) and (client2) helped clarify requirements and VLEARN expectations.

Meetings with Dr. Purtilo: Dr. Purtilo provided invaluable Mentor insight in how to make (project) successful.

Frequent team meetings: The team met at least twice weekly as a group to discuss requirements and tasking. Additionally, the sub-teams also met during the week to ensure that tasks were being addressed in a timely manner.

Chat/Voice/Video Tools: The use of Discord as a chat tool further contributed to enriched communication during over the course of the development activities.

Extra-curricular activities: There were extra-curricular activities such as a game night with other CMSC435 teams which helped boost team morale.

Frequent check-ins (daily) on discord, similar to standups in real life. Weekly check-ins with customer.

I think the useful practices were the objective lists and biweekly meetings. So we would make objective lists for our subteams to keep track of what we were doing and what needed to be done. We would share these lists with our teams during the biweekly meetings, but also kept a living list of the objectives of each subteam in an objectives tab on discord. The debrief during the biweekly meetings of each teams subgoals just provided more in depth information on what we would be doing and also what happened to the previous goals so that they could be completed. We would ask each other to display what we had to done for the week for each subteam, and would make sure to state what each person in each subgroup contributed to. This made sure everyone was on task and knew what they were doing, if they didnt we would discuss it to resolve any uncertainties and keep everyone on track.

Weekly team meetings on Saturdays to state our goals for the week were helpful for planning. Also, meetings after class were great for catching up on our day to day responsibilities and goals. Some group sessions we spent getting to know each other were helpful as we grew closer as teammates (and friends). I found the peer mentoring very useful. It let me comment on other peoples engagement as well as let me know what my teammates think of my own engagement. Using this showed that teammates pick up the slack when rated poorly. Communication efforts were also essential. Having a group Slack or Discord helped us stay in comms at all times in an organized fashion.

I think solving problems directly with each other and getting to talk to each other about it. When we were working in agile mode, we were doing things extremely quick and gettings things done very quickly.

"Do the right thing" Communication was the biggest that that got us through the semester. Also it definitely helped when we finally realized and took advantage of our different strengths. Lastly and most importantly, it helped when we had a person leading the discussion/group. (Student) and I took leadership roles during the times and evey now and then, we would simply defer to the person who knew the most on the current topic at hand. The best thing that worked for us was each person know when to step up an when to step down.

If I understand the meaning of "team engagement" correctly, my team did a lot of group bonding. We did talk about things that unrelated to the project that really helped to get to know the people in my group. Although, I will say that certain people in my group were completely uninterested in getting to know the other group members. Otherwise, I think we kept everyone on track with the Slack since we used the @Name feature pretty freely to get someone's attention.

Pair programming which I don't think we did enough of and I say this because pair programming is particularly inefficient at writing quality code, which would have helped us early on to standardize our code as well as help our groupmates who weren't as familiar with our tech stack understand it. Using GITLAB issue boards or somethig similar, which is another thing we didn't do enough of, because these issues allow us to pinpoint exactly what needs to get done, whi is doing it, how long it is going to take them and even create a post to handle all of the questions and comments regarding that issue. Not to mention that these are tied to actual branches which makes codebase managment far easier.

Role tasking. Utilizing the skills of each team member. Goal setting.

Regular Meetings -- the entire team met at least three times a week (after each class + every saturday) in order to update eachother on what we've been working on, plans for the future, and anything that is stopping is from making progress on what we're working on.

Become friends with your group-members: after the group started to get more friendly/familiar with eachother, we were able to count on eachother to commit to doing work/getting the job done.

Peer-Mentoring Feedback: Being able to give feedback to my teammates weekly has been extremely helpful in my opinion. Sometimes, there are things said during meetings that may fall through the cracks, so being able to reinforce our communication lines with this system has been extremely helpful. I personally check my feedback every week so that I know has been working and has not been working with my work/efforts.

Regular Communication: Throughout the semester, the team has been using Slack as our primary form of communication when we are not meeting via Zoom. through Slack, we have been able to keep eachother posted on what we are doing/planning to do. This form of communication has been especially effective -- note that our Slack group has had some much activity that we received a warning this morning that we are almost at capacity for messages in for a free slack group (10,000 messages)

We utilized our Discord server for voice calls and pair programming to enable communication between developers. However, we did not maximize our engagement outside of the project itself due to conflicting meeting times. Also with all 7 of us being guys, there was this almost an implicit sense of camaraderie even though I wouldn't necessarily consider most of my teammates my friends. There were a lot of aspects of the social dynamics that we really took for granted

My team utilized weekly meetings where we discussed the work we did, the current work we're doing, and what work needs to be done the following week. We also held each other to strong communication standards through Slack and being available for a call whenever possible (as we believed that face-to-face calls were better than simple text communication). These were useful for the project as it was a very collaborative context, and both of these practices helped us maintain a synergistic timeline.

The creation of sub-teams to split up work on the project, setting up frequent and regular group meetings, use of open channel communications (Discord), and note-taking/goal-setting during meetings.

The trello board and Slack messaging were both critical for our success to the project. From the start we transitioned our Gaant chart to a trello and started working. I feel like the team always understood the amount of work ahead of us, and becuase of that, planned accordingly. We never had nights of hackathons becuase we were working continuously.

Code early.

Gazetted team and client meetings that kept everyone updated on the developments of the project. Additionally, the use of slack which eased communication.

Weekly meetings and laying out objectives were crucial to the team's success. Frequent communication and dividing up the work into sub teams was also immensely valuable. Having one person serve as the contact for the POCs was also a smart choice, and we were able to effectively communicate with them throughout the semester because of this.

Regular meetings might bring forth the idea of questionably pointless corporate type meetings but I think it was good we could find times to meet and collaborate. We made an effort to share what materials we were referencing in a "learning-links" tab on Slack

Peer mentoring (kept me involved and aware of my shortcomings), weekly meetings with either you(the professor), the client or the team.

We created a slack and all agreed to leave notifications on, so it was relatively easy to get a hold of anyone at anytime. Weekly team meetings and small group meetings throughout the week really helped to bring everyone on the same page as well. For the members that couldn't make it to the meeting, we tried our best to write detailed notes for review purposes later. We also really encouraged ice breakers for a while, making meetings more relaxed and allowed us the opportunity to get to know each other more. To be honest, getting to know people seemed like a waste of time to me at first, but then I learned that working with people you know is so much for fun than working with strangers, so it was worth it in the end.

I thought the gallup exercise and the IDP was pretty useful. It helped us get a quick view on what our characteristics are and what role we should probabaly do.

2. If I could make ONE change to CMSC435 to make it a great class, it would be:

More focus on software arichtecutre patterns and development methods

Perhaps a FAQ for early questions would be useful. A place to go and read early funamentals, or maybe even some snippets of slides to help. As stated by Purtilo, early planning is critical for any development, so learning those fundamentals asap would always be beneficial.

The one change I would make is create an assignments page. It was a bit annoying to find details about an assignment scattered across various blog posts and also speckled through the project timeline page. This made expectations a bit unclear sometimes.

If it could only not be online, I feel like this class would have been more fun. I definitely would have liked to spend more time with my team like game nights and such, but COVID has prevented that.

I wish there was an assignment page. Of course, checking the blog often is important, but if I ever want to look at previous assignments for references, scrolling through the blog makes it difficult to find them.

I would get rid of or shorten the scrimmages at the beginning of the semester. The project was the most helpful and exciting part, so focusing more time towards that would be great.

This question implies that the class is not already great. Since "great" is subjective I will say that it would be nice if the class scrimmages were shorter to give more time for the key project.

The only thing I would only change is slightly more time to work on our main projects. The scrimmages were helpful but if the timeline was slightly shortened we would

This class is the most useful class I have ever taken at UMD! The one thing I would change was modifying the ethics exercises because I think it would be more beneficial if they focussed on both sides of the arguments instead of just one.

If we could start on the main stuff earlier? Because other classes got in the way

Do a better job at matching teammates and assigning projects base on everyone's skills and personalities.

I would say just start the semester project first, without the scrimmage. I think that our project could definitely benefitted from an extra few weeks of development and getting to know each other.

If we can use ELMS that would be good! Looking through course dashboard and other websites to find information could result in confusions or overlooking some information.

Add a day of mandatory team bonding, even through zoom - through breakout rooms.

I think starting the main team project a little earlier would have resulted in a more polished product at the end of the course. A better quality project would have increased my course satisfaction. I think I understand the rationale of the scrimmages, but I would be inclined to consolidate the scrimmages and allow more time for the main project.

The green light proposal process seemed a bit verbose. I understand the sentiment and I believe that it is an essential part of the project, but perhaps shortening the process/proposal could give teams more time to develop. Although, I thought the course was a very valuable learning experience overall.

Maybe switch to a different file sharing service that has the same logging capabilities as we encountered numerous problems in file sharing our unity files. There would be times where we would go to sleep and wake up the next day to notice negative progress in comparison to when we went to sleep, and had to work to fix these issues due to out of date files that were not updated by the SVN.

More guidance on writing a project proposal. At times I felt we struggled when drafting our proposal. We weren't entirely sure what some sections entailed and found inconsistencies in some outlines. It would have been nice to know which example proposals are bad and which are acceptable. We were unsure if some examples we viewed were worth learning from.

I think that giving more incremental steps on how to get involved in the process. I felt like I was rushed to learn things really quickly on the fly and

Add more specifications to what is expected of each final deliverable (ie. acceptanct test report, cost estimate report...)

Truthfully, this class was very intense and insanely stresful, but I don't think I would change much about it. Things are timed and spaced out well enough. However, I will say that the time between the Proposal accpetion and the CDR felt a little short, but on the other hand, I'm glad it was due befor thanksgiving becuase I'm pretty sure things would have turned out differently( and not in a good way) for our group.

One thing I would say is make it very easy for students to find information in the blog. If an assignment is due soon, maybe link the project timeline page and specify exacly where to find submission details and expectations. There were times during the semester where I was scrambling to find out how to format a submission for an assignment because I didn't know the project timeline page contained that information.

I would have liked if we had a rotational "manager" on our team. So each week a different person would act as the manager for the group. I found that one of the issues my team faced came from a lack of leadership. It would be nice to have someone dedicated to organization and planning. Also, it would be good practice for each person to do that. They could be graded for their work as manager, but that is more work for you, so I don't think it's necessary.

To be honest nothing major but maybe when the teams were trying to get a greenliight it would have been helpful to see more past press releases and proposals for references.

More time between deadlines

LET GROUPS USE GIT OVER SVN!!!! I understand why we used SVN for the smaller assignments like the scrimmages, but using SVN for bigger projects did not make a lot of sense to me since the branch/merge features with git would have been extremely useful. Also, having students practice git in this class would be excellent practice for when we start working in the industry.

I think because of COVID-19 this was a problem, but if the whole class could meet in person and play games with one another. I think the one night after the CDR where we all played games on Zoom as a class was very fun - but it honestly felt like a whole section of the class was not fully engaged. Obviously with extenuating circumstances, it's hard to compare an online version of the class with an in-person version, but I'd expect an in-person class to be more engaging.

It would be to communicate different methodologies in more detail (such as Agile development). This would've helped everyone in the team get on the same page from an outside force (class material) rather than just trying to find our own way (which was still a really good learning experience).

To include more examples or small exercises for demonstrating concepts shown in lecture slides rather than simply explaining the concepts. Show it in action.

Code reviews from professionals. Often times we are learning a new framework or language and don't know best practices. Some reviews or advice from professionals could be helpful. Maybe 435 industry alumni could be of assistance?

Let the students free to choose what project to work on.

Student can choose what project they work on.

Starting the projects earlier such that ample time is awarded to be fully engaged in the projects.

The only thing I would change is possibly using a VCS that's more intuitive. This could stem from me not fully mastering SVN, but I personally think GitHub is easier and more intuitive, especially with a unity project. There were numerous times where we made "negative" progress trying to find overwritten files that were lost in previous revisions.

Maybe to encourage earlier development of just making a product, there could be additional earlier deadlines to see minimal working bits and pieces? Obviously this could be met with a lot flack from students.

I think this class could benefit greatly from a tempering of expectations. Particularly what got me was, after all the work and involvement leading up to the CDR, there was an insinuation that we somehow should've had it sooner. That was crushing for all of us considering we had put in all of our time on the project. I put off pretty much every other assignment.

There was this feeling of needing perfection (or close to it) even given the lack of true industrial experience. While it's true that learning experiences came from that scenario, it is also true that this class often made me feel like garbage. If I didn't already have confidence that this was what I wanted to do and that most development positions aren't this crushing, I may not have pursued this field further.

I realize you're giving us tough love and the idea that minds need to be worked hard to grow, but I think CMSC435 would do well to consider its scope and how it can introduce these things without overwhelming its students. It's hard to articulate these things so I hope the point is clear.

If I could make ONE change to CMSC435 I would add more resources for the technical elements of the projects/scrimmages. I understand that the purpose of the scrimmages and the project is to really encourage creativity and have everyone work together to figure things out and "do the right thing". However I think I spent a very long time stressing and panicking because I have no idea how to do the coding/programming part of the assignment, despite being at every lecture and paying attention to everything in class. I know this is not a coding class, but having some resources to reference off from would have been really awesome. I also never knew this throughout the semester, is it ok to ask you for coding questions? For example, I did not know how to link a website to a database, would that have been an okay chance to get some hints from you? Spirit guide please guide us forward :D.

Have teams to bonding exercises that have nothing to do working. In my team we said were going to but we never did and so a small part of the group were able to connect while others still seemed like strangers.

Put slides to the repo

I would like to make a huge group project as a whole class, and every team work on different parts. I know it would be very hard to do for grading and organizing reasons, but it just sound very interesting and we could make more complicated projects!

3. The one thing that most gets in the way of me doing my best work in CS here at UM is:

My mental health issues

Poor advising at the UMD CS department prevents me from meeting influential people and taking interesting influential classes. I wish I had better guidance in my decisions and aren't just praying what my friends tell me is correct.

Not sure if this is the answer you are looking for but my own tiredness.

The amount of work for all of my classes. Sometimes it feels like there just isn't enough time to do it all, so I end up having to let some assignments go just because I feel like my choice is either to run myself into the ground every week, or not complete everything.

The family situation that happened during the middle of the semester during a pandemic.

A lack of courses focused more on industry-relevant learning as opposed to theoritical/research-focused material.

Layering time between seperate projects. I get so involved in one class's projects that I do not submit my best work for other classes.

I would have loved to have more experience working with a team in other computer science classes.

The amount of class work I have in other classes gets in the way of how much time I can spend on my CS projects.

nothing

This is just me, but I often don't feel like I belong to this program. In the past years, I barely felt related to other CS students and what they are passionate about. Consequently, it is difficult for me to stay motivated and know where I am going without finding my belonging in this program. It's probably because I am not as geeky as other CS students, or it's probably because we don't have enough diversity in this program. I don't know.

Financial concerns, paying bills, etc. I pay all my own ills so being a student at the same time can cause conflicts.

I would say my business course load can get in the way of doing my best work in CS. I realize that my two CS courses every semester usually takes up more time than all of my business courses combined in the semester. This may be natural due to the design of CS courses. However, keeping other assignments in mind, it may be difficult to do my best work in all courses. This semester, for example, I am taking BMGT 403 concurrently with CMSC 435. Both of these courses take more time than other courses.

Not having enough time

I think the biggest challenge that I have experienced is the gap between my understanding of what is expected of me verses my Instructor's expectations. There are many topics in CS that are both difficult to articualte and difficult to understand. Minimizing this expectation gap would have allowed me to be more productive here at UMD. In some cases, expectations that were communicated morphed during the course of a class projects, which adds to the frustration that I have experienced.

The time constraints of other classes :( I wish I could have spent more time working on cs.

Most of the time that would just be unclear requirements of what is needed from me. It's a huge time sink and hassle to have to investigate and interview TAs or professors on what needs to be done exactly and what are the exact details of what you want or when is it due. It would be great to just be able to work without having any doubts that really slow down my work.

Overlapping projects. Some projects are extremely time consuming so often you have to sacrifice a perfect socre on one to have more time to work on the other. I'm not sure how this problem can be fixed. Honestly, I don't think it can. On my own end, I could probably work on my time managment skills.

Is myself. Doing my best work means nothing when everyone is just infinitely more capable than you.

Sleeping

My own procrastination. Sometimes I self sabotage when I don't fell enough pressure to get something done. I'll usually wait till the last minute, before any real work really begins. Sometimes it works out and other times it doesn't. This clas put plent of pressure on me though, so I did my best to stay active most of the times. Another factor would be classes and professors that are handled poorly. This class was actually one of the better ones in terms of the structure and how expectations were expressed. But I have had classes where, I don't feel the pressure to perform because the professor themselves don't give me that feeling. I've been in classes where professors only show up to class one time and then never again. I've had classes where I was just sitting down in lecture watching my professor readind powepoint after powerpoint and not really engaging with me or the class. Classes like that really strip me of all motivation.

This was the first semester where I worked on a project that was truly whatever I (and my team) wanted. In all my past classes, we are given the cut and dry projects where everyone creates basically the same program. I found that this allowed for a lot more exploration and I wish that a class like this existed earlier in the CS program.

Is myself. I say that because my ability, motivation and focus all change at times like most people but for myself I think I needed to be taught a lesson in the pitfalls of procrastination. This applies to my whole group really as we only made significant progress when we were behind and there was a sense of urgency introduced. I think the fluctuation of these 3 characteristics is what holds me back because at times it can be the difference between the amount of effort, time and other considerations which are conduicive ot one doing their best work.

Other priorities (jobs)

The terrible internet on campus. Especially during a time that is 99% online, I should never be worried about having internet stable-enough to not lag during extended Zoom meetings.

My other classes. I am a coding geek at heart and code will rush out of my fingers when I'm focus on it, but there were so many other classes that, to be fair, were inconsequential to my success in CS at UMD, and held me back in the amount of complete effort I could contribute to my projects and work.

Every class assigning work as though it's the only class I'm taking.

Motivation or believing that the work I do in college will actually help me in my future career. Of all the classes I've taken in college, I felt that this class was definitely the most applicable to real-life.

I feel like in this class I was given the chance to problem solve. I don't feel like I've been given the chance to problem solve in any other class. Even when classes are project based, you're simply searching for a solution the instructors want you to find. I understand a 435 style and pedegogy might not be feasible for massive courses, but how cool would it be if there was a 435 equivalent that was ML focused or cyber focused.

Another 4XX ENEE class.

Obnoxious TA's who make you feel dumb for not grasping a concept fast. Some of them use condescending tones that make you regret asking for helpin the first place.

My EE classes :), just kidding (mostly). Besides work for other classes, I would say miscommunication and having to redo things because files were either lost or requirements not understood. Or restrictions I was not aware of until later. I know this is one of the reasons it was such a big component of the course.

I think I have some very bad tendencies about waiting to do things, but I feel I genuinely do better if I sit down and do a lot of work at once instead of constantly over time.

In general, the lack of teamwork in the lower level courses is troubling. I didn't learn how to use GitHub until my internship. I feel as if I'm still making up the lost time in the lower level courses.

This is probably a very personal reason but combined with online classes and some personal health problems I have had a really hard time focusing this semester. I grew up in a family where it was said that any problem with focusing, learning, motivating yourself, is a problem of personality and personal integrity. I think it is fair to say that I have really tried and blamed and bashed on myself more than anybody else for not being able to learn as well this year. However the fact is that I simply couldn't, I did what I can while I could and then I would "waste" a lot of time not being able to do anything. I think although stressful, being in a team helped me do a little better. I wanted to work with people and I didn't want to be the slacker in the team.

Not getting to do projects that i enjoy and mostly just working to pass unit tests.

Team work

I think it's how all 400 level classes are alwasy full. I really want to take some classes but I couldn't because I could never get it :(

4. The obstacles that prevent me from knowing what is expected of me in this degree program are:

Me skipping class.

In all of my time at UMD, only in my second to last semester I understand what is actually done in a real software engineering job, and what is requried to attain such a job, and that was mostly from self research. It doesn't make sense to me that this information isn't shoved down your throat when you are a lower classmen so you can be better prepared and understand your field more, considering majority of job positions are "Software Engineering."

Of course the online situation is difficult to navigate, but other than that I think I have a good idea of what is expected of me overall.

I'm not in the CS degree program, so I guess I already don't know what's expected of me. Grad school doesn't really make any sense to me. I'm absolutely unsure of what's expected of me and I'd like to have someone in the admin office to just sit me down and tell me what I need to do to graduate.

The main obstacles are myself. All the sources are there online, I just have to look them up.

The open-endedness of upper level course selection may be an obstacle, and receiving assistance in choosing a combination of upper-level courses that properly prepare me for graduation would be helpful.

Degree Program Structure, most classes up until this one have not shown what real world programs are like or how to apply the things we've learned from previous classes.

The only issue that came up this semester the transition to online school. Because I was stuck at home for the majority of my time, sometimes it was difficult to pay attention all day and difficult to have access to required materials.

Not knowing what courses would most benefit me in the real world/job market. The first 2 years do not really help you that much in understanding what you want to do with your career.

nothing. It was all written down. Its just alot of stuff tho

I personally don't have any industry experiences. Partially becasue I don't intend to stay in the industry after I graduate, and therefore I have never intentionally seeked for them. But I think I would have a different opinion if I had more guidence on where is this degree leading me. For example, Why/how would a course benefit my future career as a software engineer? Why am I learning this technology and how is it being used in the industry?

Time constraints caused by having to work and go to class at the same time probably, although that wasn't an issue this semester since I had quit my job.

I would not say there are any obstacles that I have known of. I might just be too busy working on assignments and have not got a chance to look at the expectations.

Nothing.

I think poor verbal and written communication has been a big obstacle. Vagueness associated with project requirements has also been a problem as it has caused me to waste a lot time. Another frustrating aspect that has bothered me are half-baked or flawed tests that have been created by TAs. These tests often give the impression that project expectations have been met, but I have submitted projects that have passed all tests, but I received a poor grade because these tests gave a false impression and did not fully verify the Instructor expectations.

Upper level courses are all over the place. It seems like missing out on certain classes could be extremely detrimental for someone entering the industry.

The professors giving me incomplete information on what needs to be done or what is expected of me. If everything was more explicit it would let do everything with confidence knowing what I am doing is right without any question in my mind which would vastly speed up the devlopment process because you don't have to account for if you need to change it different requirements.

It is pretty clear what is expected from me in this degree program.

Me being too oblivious of the clues left around me and I just don't know what I'm going for so I just keep screwing up to the point where I don't know myself anymore.

N/A

The program itself on some level. I've taken plenty of classes that teach me how to code in Java, but none of them really taught me the principle of software development. I think the ciriculum needs to be adjusted. When I first came into this class, I felt very overwhelmed and under prepared. I was shocked at how many things I didn't know initially. I think UMD puts too much emphasis on just coding and not enough on software development.

I think a lot of CS classes focus too much on exams and not as much on practical knowledge. Obviously, it's necessary in some classes like 250 or 351, but others felt like the exams were more trivia then actually testing the skills I've gained in the class. I would also say working independently definitely limited what I learned on certain projects since I was left with myself and StackOverflow. There were times where I learned more from talking for 1 minute with another student in the class than I did after 1 hour googling by myself.

Lack of clear direction from administrators, unlike 435 and Purtilo there aren't many classes that are so focussed with you coming away with life lessons because more courses are concerned with testing your development with the information and consdierations of the major like technological understanding, coding ability, etc.

Covid (lack of in person engagement). Other priorities (job). Comuting to campus (missing out on most campus activites)

N/A

I generally know what is expected of me in this degree program, but because of my wide variety of classes and finite amount of time in a day, it is hard to address every single one of those aspects. I'm sure if I pursued just a CS degree instead of a double major with Economics, I would have been more able to do so.

I don't face many obstacles that prevent me from know what is expected of me. On a class-by-class basis, the biggest obstacle that prevents me from knowing what is expected is the organization methods. Each class (and each professor) has their own way of organizing class resources and communicating expecations, which is a pretty big obstacle that makes it harder to determine what is expected of me.

Vagueness or lack of communication in those expectations? This question itself is unclear to me.

This answer may sound sarcastic, but it isn't. I don't think anyone has ever told me what is expected of me in this degree program or explained learning outcomes to me.

The design was kind of unclear. But my teammates worked hard to deliver the info from client.

Lack of flexibility and closed minded professors. Some professors make minimal effort to make the goal of the class understanding concepts rather than just getting a good grade. For example, when students suggest an alternative to better grasp concepts, they are not open to it. Especially since most of the professors are older hence more rigid.

When professors are unavailable, or I receive incomplete information about what I need to do for a project. I know part of this is the "discovery" (edge cases not specified, or implementation defined decisions) though. TAs which are unreachable can also be blockers, since I tend to often have questions about an assignment.

The first thing that comes to mind is an antiquated online infrastructure. That thing is impossible to use.

Everyone in computer science are doing a little bit of a different thing. Some people are in research programs, some people are doing their own project, some people are active in hackatons, some people have internships and co-op work all throughout. I always feel less intelligent than other students, or simply feeling that I am just not as good as a programmer. Sometimes I get confused about what I'm suppose to know at this stage of my education, or what am I capable/should be capable of doing. Social media portrayed computer scientists to be a very cool and independent job. I never considered myself a scientist. Instead of typing non stop on a screen hacking into other people's laptop, I spend 90% of the time googling, looking through stack overflow forums, or my notes. I think we should let people know that this is reality, not you as an individual being slow and incompetent. Searching and communicating is computer science.

I know what is expected of me, i think.

Any awful lectures and slides

This is probably the same for all schools, but I think for cs, companies are expecting more than what we learn in school. If you don't do side project or learn other algortihmns, it's almost impossbile to do good in interviews. Also, I didn't know hiring period was so early, it would be nice if the school could tell me that, although I understand it is my responsiblity to know that.

5. The best way to predict when students will be compatible members of a successful team is:

When there skills complment each other.

If they are open to communication early, or in the event that they are not, they solve that quickly. At the end of the day, being available and compassionate is the best way to complete work and have the team like you. If you are unreasonable when life happens with other members, if you speak behind other members backs rather than addressing conflict directly, easier side paths rather than what's right will always lead in damage to the team.

I think that empathy is one of the most important, and often overlooked traits of a sucessful team member. The other most important trait is communication. In my own experiences, the main reason I would complain about a team I was on would be if the communication was bad. You could have the 7 smartest kids at UMD on a team but if none of them can relate to each other on a human level or communicate effectively then they will likely have a hard time.

I think if they have similar work ethics the team will be successful. If everyone is driven to do good work and get it done on time the team will be compatible. If only some of the team members are, then I think this generates a lot of tension in the team because only some people are doing things.

If nobody on the team cares I think it could go either way where absolutely nothing gets done, or they might try to rush things at the end to complete them. Either way, this team wouldn't do well on their own merit, which I think is better than some of them succeeding on the backs of other team members actually doing the work.

Gallup Strengths is a decent way to find compatable team members, but another good way is to look at experience past projects. I feel like the past experience some people on my team, made our project more successful, and our team gel better than it would have otherwise.

I think the best predictive element of team member compatibility is to see if the team members have similar goals, expectations, and motivations for the given class/project.

The way Purtilo did it by analyzing students' activity levels in simple tasks (scrimages) and matching students with likewise levels of activity.

I think the way we were separated in teams this semester worked relatively well. Although I wish to have received more help from some team members, I believe the team I was given was adequate and complimented my strengths and helped me work on my weaknesses. I learned a lot about my own work ethics and how I work in a team based environment. I really enjoyed working with my team with all its perfections and flaws :')

I think looking at their personalities is the most important but also the most difficult. Personalities can tell you which people are going to be the leaders, who might butt heads and who might get along. I'm not sure. At first i would have like to choose my team members but i ended up liking my teammates in the end.

I think a team functions at its best when all the members have complementary skills and personalities. Speaking from my experience at IFTTT this semester, I think we would have been a lot less stressed if any one of us had some background on mobile development, which is the core of this project. This is also partially our fault, though.

Complementary personality types, similar skill levels with maybe one or two people at a higher level, and a diversity of skill types.

I would say the scrimmage teams can be a good way to determine if they are compatible members. Since in scrimmage teams, they will interact with each other and determine if all of them are good at working with each other.

The gallup strengths were a good indicator. I would suggest not putting friends together so that everyone can meet each other for the first time. The prediction for our team was good for the most part. The Questmetrics team is mostly compatible.

I don't think there is necessarily a silver bullet when it comes to selecting compatible team members. In my experience, folks who exhibit humility, respect for others, honesty, and a strong work ethic tend to be successful in a team. I think the above atributes were on display within the (project) team and as a team we agreed to work in a respectful manner when we compiled our team charter. I think a mutual commitment to quality and living by the Golden Rule contributes significantly to the compatibility of any team.

How often and clearly they communicate, PROACTIVELY.

A great indicator of compatibility is meme tastes. If they like the same types of memes then they are more compatible then those who don't. Theres also if you choose each other. If someone chooses another person that makes them compatible.

If their individual skills balance eachother out. Both technical skills and soft skills. Technical skill diversity allows for workloads to be split fairly. Soft skill diversity allows for members to assume rolls they feel most comfortable in and improves team dynamics. For example, if every memeber was steadfast and stubborn, there may be stupid arguments that steal time and add to project costs.

Seeing passion and drive from everyone

By the end of the proposal/green light period, it became obvious who were the leaders in the group, who were strong team members, and who just followed.

I think the best way would be the way you've been doing it. It's a combimation of many metrics. I can't really speak on how effective other teams were, but my team came together very well on this project and I believe that part of that was the metrics you used. Please be as specific as possible in answering the following.

Hard to say since I would like to say that there should be at least one person who is more of a leader, but in a group project, this can leave people frustrated. I think matching people up based on skills that one person has and the other doesn't (and vice versa) is the best way to create groups.

Their professionalism and responsibility for the goods and the bads. I say this because the best team members in our group didn't necessarily write the best code at times but they always communicated what was going on and what they were actually doing (which meant taking ownership of their mistakes as well). Professional students also cared about "the process" and doing everything the right way out of principle which also aided the group as opposed to just going off on their own and writing code. The degree to which they can form friendships and feel comfortable expressing their views to each other

Compatibility with Gallup-Strenghts or something similar like Myers-Briggs. Also social-engagement within the team is very important, I have noticed that the members of this group that are less social are less likely to step up to volunteer for work or stay the extra hour or two to get the job done. A team's collective will to succeed is the most important factor in succeeding.

From what I saw, it was the difference between expected delivery vs actual delivery. Those who exceeded their expected delivery were the most compatible members of the team and made me want to work with them more. Those whose actual delivery faltered gave me a sense that my teammates were incapable of extrapolating realistic goals and that the product was going to be a pipe dream. There were also many times where team members would thoughtlessly brag about their proficiency in a certain area and later down the line in the project, it ended up hurting us due to their need to (re)learn everything.

One possible way to look at the compatibility is the IDP themes that we had to each do and group people based on their traits. However, I believe that this doesn't tell us the full story. I strongly believe that every team will find a way to work together and unite to achieve the common goal of getting a good grade in the class.

Putting groups of friends together. I had a friend in the smaller team project which helped a lot to make that as successful as possible, and in the larger team project two pairs of friends, even when I knew no one in the group, made working on the project feel less forced and more productive for everyone. I'd keep using the engagment metrics from the scrimmages. Also mainly asking who they want on their team and who they don't want.

I dont know the absolute answer but for me, the best way is probably reviewing resumes from other people.

If students have a shared hobby or preference. Usually, when people have something they relate to, they tend to flock together like brds of the same feather. For example, simple icebreaker games during class that help you identify people who share similar interests. The best and only real way is to know the student prior to potentially being on a team or being a friend/observing them in another class. This is obviously not the case when students don't know each other. I found the Gallup polls somewhat helpful in this regard, but even knowing people's strengths don’t give a complete picture of work ethic. In many ways it becomes an educated gamble in my opinion, but that's just my experience.

If they're willing to just pick up something and work on it, but only in the interest of doing it properly instead of just having it be done.Please be as specific as possible in answering the following.

This is a hard one. My best guess is *when* they are working. Meshing students that do their best work under a crunch and those that work slowly over a long time is a recipe for disaster.

I think its great to pair students with different experiences together. Our team had a very dynamic background in backend and frontend, so we were able to separate work and teach each other throughout the way. I also think having a few very motivated and energetic member helps to bring the whole team up. Since the spirit guide cannot be next to us at all times and remind us to keep working, these teammates are the pushing forces behind the project.

I don't think there is way to tell prior, i think compatibility works when teammates try to get to know each other and find things to connect on.

The way that the team hold meetings

I really think it's the personality. Coding skills are great, but I think working with someone you found comportable working with really helps. Also, coding skills can be learned fast but leadership and sense of team work can't.